Merge branch 'master' of github:OpenIPC/firmware

pull/357/head
Igor Zalatov (from Citadel PC) 2022-08-14 21:24:26 +03:00
commit f202e1ed66
25 changed files with 672 additions and 1878 deletions

12
.github/CODEOWNERS vendored 100644
View File

@ -0,0 +1,12 @@
## @file
# CODEOWNERS
#
# Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
* @ZigFisher
* @p0i5k
* @cronyx
* @dimerr
* @widgetii

View File

@ -1,149 +0,0 @@
name: "Hi3516Dv200 "
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Dv200
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Dv200 firmware
id: build-hi3516dv200-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516dv200-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516dv200_openipc all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516DV200" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516DV200" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.hi3516dv200
mv rootfs.squashfs rootfs.squashfs.hi3516dv200
md5sum rootfs.squashfs.hi3516dv200 > rootfs.squashfs.hi3516dv200.md5sum
md5sum uImage.hi3516dv200 > uImage.hi3516dv200.md5sum
tar -cvzf $ARCHIVE_FW *hi3516dv200*
- name: Build Hi3516Dv200 SDK
id: build-hi3516dv200-sdk
continue-on-error: true
run: |
ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE/output
make sdk
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516dv200-firmware.outcome != 'success' || steps.build-hi3516dv200-sdk.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516DV200}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: "openipc.hi3516dv200-br.tgz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload SDK to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_SDK }}
asset_name: "arm-openipc-hi3516dv200-linux-musleabi_sdk-buildroot.tar.gz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,130 +0,0 @@
name: "Hi3516Ev200 (fpv)"
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Ev200 (fpv)
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
echo "BOARD=hi3516ev200" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Ev200 (fpv) firmware
id: build-hi3516ev200-fpv-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-fpv-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_fpv all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.${BOARD}
mv rootfs.squashfs rootfs.squashfs.${BOARD}
md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}*
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516ev200-fpv-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (fpv)}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: openipc.${{ env.BOARD }}-fpv-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,149 +0,0 @@
name: "Hi3516Ev200 "
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Ev200
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Ev200 firmware
id: build-hi3516ev200-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516ev200-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516ev200_openipc all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516EV200" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516EV200" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.hi3516ev200
mv rootfs.squashfs rootfs.squashfs.hi3516ev200
md5sum rootfs.squashfs.hi3516ev200 > rootfs.squashfs.hi3516ev200.md5sum
md5sum uImage.hi3516ev200 > uImage.hi3516ev200.md5sum
tar -cvzf $ARCHIVE_FW *hi3516ev200*
- name: Build Hi3516Ev200 SDK
id: build-hi3516ev200-sdk
continue-on-error: true
run: |
ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE/output
make sdk
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516ev200-firmware.outcome != 'success' || steps.build-hi3516ev200-sdk.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516EV200}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: "openipc.hi3516ev200-br.tgz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload SDK to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_SDK }}
asset_name: "arm-openipc-hi3516ev200-linux-musleabi_sdk-buildroot.tar.gz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -0,0 +1,266 @@
name: build
on:
pull_request:
types:
- synchronize
- reopened
- opened
paths-ignore:
- '**.md'
push:
branches:
- production
tags:
- "v*"
paths-ignore:
- '**.md'
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
toolchain:
name: Build toolchain
runs-on: ubuntu-latest
env:
CHIP: hi3516ev200
outputs:
sdk-file: ${{ steps.build-sdk.outputs.sdk-file }}
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Build Buildroot SDK
id: build-sdk
run: |
set -x
make prepare
make BOARD=unknown_unknown_${CHIP}_openipc br-sdk
SDK_PATH=$(find output/images -name "*_sdk-buildroot.tar.gz")
echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV
SDK_FILE=$(basename $SDK_PATH)
echo "SDK_FILE=$SDK_FILE" >> $GITHUB_ENV
echo "::set-output name=sdk-file::$SDK_FILE"
- uses: actions/upload-artifact@v3
with:
name: ${{ env.SDK_FILE }}
path: ${{ env.SDK_PATH }}
retention-days: 1
buildroot:
name: Build firmware
needs: toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform:
- hi3516ev200
- hi3516ev300
- hi3518ev300
- hi3516dv200
release:
- lite
- ultimate
include:
- platform: hi3516ev200
release: fpv
- platform: hi3516ev300
release: fpv
exclude:
- platform: hi3516dv200
release: ultimate
env:
HAS_NAND: ${{ matrix.release == 'ultimate' }} && (${{ matrix.platform == 'hi3516ev300' }} || ${{ matrix.platform == 'hi3516ev200' }})
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- uses: actions/download-artifact@v3
with:
name: ${{ needs.toolchain.outputs.sdk-file }}
- name: Build firmware
run: |
BOARD=unknown_unknown_${{ matrix.platform }}
if [ "${{ matrix.release }}" != "lite" ]; then
SUFF="${{ matrix.release }}-"
BOARD="${BOARD}_${{ matrix.release }}"
else
BOARD="${BOARD}_openipc"
fi
NORFW_PATH="${GITHUB_WORKSPACE}/output/images/openipc.${{ matrix.platform }}-${SUFF}br.tgz"
echo "NORFW_PATH=$NORFW_PATH" >> $GITHUB_ENV
NORFW_FILE=$(basename $NORFW_PATH)
echo "NORFW_FILE=$NORFW_FILE" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
CONF_PATH=$(find . -name "${BOARD}_defconfig")
echo Using ${{ needs.toolchain.outputs.sdk-file }}
echo "BR2_TOOLCHAIN_EXTERNAL=y" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED=y" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_PATH=\"/tmp/extsdk\"" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX=\"arm-openipc-linux-musleabi\"" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_GCC_8=y" >> $CONF_PATH
LIBC="musl"
echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(TOPDIR)/../scripts/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH
mkdir /tmp/extsdk
tar xvf ${{ needs.toolchain.outputs.sdk-file }} --strip-components=1 -C /tmp/extsdk >/dev/null
make BOARD=$BOARD all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.${{ matrix.platform }}
mv rootfs.squashfs rootfs.squashfs.${{ matrix.platform }}
md5sum rootfs.squashfs.${{ matrix.platform }} > rootfs.squashfs.${{ matrix.platform }}.md5sum
md5sum uImage.${{ matrix.platform }} > uImage.${{ matrix.platform }}.md5sum
tar -cvzf $NORFW_PATH uImage* *rootfs.squashfs.${{ matrix.platform }}*
# TODO: infer from configs
if [ "$HAS_NAND" == "true" ]; then
NANDFW_PATH="${GITHUB_WORKSPACE}/output/images/openipc.${{ matrix.platform }}-nand-br.tgz"
echo "NANDFW_PATH=$NANDFW_PATH" >> $GITHUB_ENV
NANDFW_FILE=$(basename $NANDFW_PATH)
echo "NANDFW_FILE=$NANDFW_FILE" >> $GITHUB_ENV
mv rootfs.ubi rootfs.ubi.${{ matrix.platform }}
mv rootfs.ubifs rootfs.ubifs.${{ matrix.platform }}
md5sum rootfs.ubifs.${{ matrix.platform }} > rootfs.ubifs.${{ matrix.platform }}.md5sum
tar -cvzf $NANDFW_PATH uImage* *rootfs.ubi*.${{ matrix.platform }}*
fi
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: ${{ !env.ACT && failure() && github.event_name != 'pull_request' }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${{ matrix.platform }} (${{ matrix.release }})}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT && github.event_name != 'pull_request' }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT && github.event_name != 'pull_request' }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.NORFW_PATH }}
asset_name: ${{ env.NORFW_FILE }}
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload NAND FW to release
if: ${{ !env.ACT && github.event_name != 'pull_request' && env.HAS_NAND }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.NANDFW_PATH }}
asset_name: ${{ env.NANDFW_FILE }}
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT && github.event_name != 'pull_request' }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$NORFW_PATH" -F caption="$TG_HEADER"

View File

@ -1,148 +0,0 @@
name: "Hi3516Ev200 (ultimate)"
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Ev200 (ultimate)
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
echo "BOARD=hi3516ev200" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Ev200 (ultimate) firmware
id: build-hi3516ev200-ultimate-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz"
ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.${BOARD}
mv rootfs.squashfs rootfs.squashfs.${BOARD}
mv rootfs.ubi rootfs.ubi.${BOARD}
mv rootfs.ubifs rootfs.ubifs.${BOARD}
md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}*
tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}*
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516ev200-ultimate-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload NAND FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW_NAND }}
asset_name: openipc.${{ env.BOARD }}-nand-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,130 +0,0 @@
name: "Hi3516Ev300 (fpv)"
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Ev300 (fpv)
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
echo "BOARD=hi3516ev300" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Ev300 (fpv) firmware
id: build-hi3516ev300-fpv-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-fpv-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_fpv all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.${BOARD}
mv rootfs.squashfs rootfs.squashfs.${BOARD}
md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}*
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516ev300-fpv-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (fpv)}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: openipc.${{ env.BOARD }}-fpv-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,149 +0,0 @@
name: "Hi3516Ev300 "
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Ev300
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Ev300 firmware
id: build-hi3516ev300-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516ev300-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516ev300_openipc all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516EV300" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516EV300" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.hi3516ev300
mv rootfs.squashfs rootfs.squashfs.hi3516ev300
md5sum rootfs.squashfs.hi3516ev300 > rootfs.squashfs.hi3516ev300.md5sum
md5sum uImage.hi3516ev300 > uImage.hi3516ev300.md5sum
tar -cvzf $ARCHIVE_FW *hi3516ev300*
- name: Build Hi3516Ev300 SDK
id: build-hi3516ev300-sdk
continue-on-error: true
run: |
ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE/output
make sdk
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516ev300-firmware.outcome != 'success' || steps.build-hi3516ev300-sdk.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516EV300}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: "openipc.hi3516ev300-br.tgz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload SDK to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_SDK }}
asset_name: "arm-openipc-hi3516ev300-linux-musleabi_sdk-buildroot.tar.gz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,148 +0,0 @@
name: "Hi3516Ev300 (ultimate)"
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3516Ev300 (ultimate)
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
echo "BOARD=hi3516ev300" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3516Ev300 (ultimate) firmware
id: build-hi3516ev300-ultimate-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz"
ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.${BOARD}
mv rootfs.squashfs rootfs.squashfs.${BOARD}
mv rootfs.ubi rootfs.ubi.${BOARD}
mv rootfs.ubifs rootfs.ubifs.${BOARD}
md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}*
tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}*
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3516ev300-ultimate-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload NAND FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW_NAND }}
asset_name: openipc.${{ env.BOARD }}-nand-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,149 +0,0 @@
name: "Hi3518Ev300 "
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3518Ev300
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3518Ev300 firmware
id: build-hi3518ev300-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3518ev300-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_hi3518ev300_openipc all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3518EV300" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3518EV300" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.hi3518ev300
mv rootfs.squashfs rootfs.squashfs.hi3518ev300
md5sum rootfs.squashfs.hi3518ev300 > rootfs.squashfs.hi3518ev300.md5sum
md5sum uImage.hi3518ev300 > uImage.hi3518ev300.md5sum
tar -cvzf $ARCHIVE_FW *hi3518ev300*
- name: Build Hi3518Ev300 SDK
id: build-hi3518ev300-sdk
continue-on-error: true
run: |
ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE/output
make sdk
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3518ev300-firmware.outcome != 'success' || steps.build-hi3518ev300-sdk.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3518EV300}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: "openipc.hi3518ev300-br.tgz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload SDK to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_SDK }}
asset_name: "arm-openipc-hi3518ev300-linux-musleabi_sdk-buildroot.tar.gz"
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -1,148 +0,0 @@
name: "Hi3518Ev300 (ultimate)"
on:
push:
branches:
- production
tags:
- "v*"
schedule:
- cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for Hi3518Ev300 (ultimate)
runs-on: ubuntu-latest
steps:
- name: Checkout
id: checkout
uses: actions/checkout@v2
- name: Install build dependencies
run: |
make install-deps
mkdir -p tmp
if [ ! -z "$ACT" ]; then
apt install -y cpio rsync bc
echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV
# Mitigate #325 issue
apt install -y pip && pip install cmake
fi
- name: Free disk space
if: ${{ !env.ACT }}
run: |
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)
df -h
- name: Prepare buildroot
id: prepare
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [ -z "$HEAD_TAG" ]; then
TAG_NAME="latest"
RELEASE_NAME="Development Build"
PRERELEASE=true
else
TAG_NAME=${{ github.ref }}
RELEASE_NAME="Release ${{ github.ref }}"
PRERELEASE=false
fi
echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
echo "BOARD=hi3518ev300" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build Hi3518Ev300 (ultimate) firmware
id: build-hi3518ev300-ultimate-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz"
ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz"
echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1
[[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1
cd ${GITHUB_WORKSPACE}/output/images
mv uImage uImage.${BOARD}
mv rootfs.squashfs rootfs.squashfs.${BOARD}
mv rootfs.ubi rootfs.ubi.${BOARD}
mv rootfs.ubifs rootfs.ubifs.${BOARD}
md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum
md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum
tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}*
tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}*
- name: Send error message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-hi3518ev300-ultimate-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}"
TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
-F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
exit 2
- name: Create release
if: ${{ !env.ACT }}
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.TAG_NAME }}
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: ${{ env.PRERELEASE }}
- name: Upload NOR FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW }}
asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Upload NAND FW to release
if: ${{ !env.ACT }}
uses: svenstaro/upload-release-action@v2
continue-on-error: true
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ env.ARCHIVE_FW_NAND }}
asset_name: openipc.${{ env.BOARD }}-nand-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- name: Send binary file to telegram channel
if: ${{ !env.ACT }}
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -2,6 +2,20 @@
ROOT_DIR := $(CURDIR)
BR_VER := 2021.02.12
BR_DIR := $(ROOT_DIR)/buildroot-$(BR_VER)
ifeq ($(PLATFORM),)
ifneq ($(BOARD),)
FULL_PATH := $(shell find br-ext-chip-* -name "$(BOARD)*_defconfig")
ifeq ($(FULL_PATH),)
FULL_PATH := $(error Cannot find anything for $(BOARD))
else ifneq ($(shell echo $(FULL_PATH) | wc -w), 1)
FULL_PATH := $(error For provided '$(BOARD)' multiple options found: $(FULL_PATH))
endif
PLATFORM := $(shell echo $(FULL_PATH) | cut -d '/' -f 1 | cut -d '-' -f 4 )
endif
endif
BR_EXT_DIR := $(ROOT_DIR)/br-ext-chip-$(PLATFORM)
SCRIPTS_DIR := $(ROOT_DIR)/scripts
#BOARDS := $(shell ls -1 $(BR_EXT_DIR)/configs)

View File

@ -0,0 +1 @@
../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch

View File

@ -0,0 +1 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1 @@
../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch

View File

@ -0,0 +1 @@
../../../../../patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch

View File

@ -1,20 +1,15 @@
#!/bin/bash
#
# OpenIPC.org | v.20220813
# OpenIPC.org (c)
#
BR_VER=2021.02.12
MAX_KERNEL_SIZE=0x200000 # 2MiB, 2097152
MAX_KERNEL_SIZE_ULTIMATE=0x300000 # 3MiB, 3145728
MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480 # ~3.9MiB, 4097152
MAX_ROOTFS_SIZE=0x500000 # 5MiB, 5242880
MAX_ROOTFS_SIZE_ULTIMATE=0xA00000 # 10MiB, 10485760
clone() {
sudo apt-get update -y ; apt-get install -y bc build-essential git unzip rsync autotools-dev automake libtool
git clone --depth=1 https://github.com/OpenIPC/firmware.git
}
MAX_KERNEL_SIZE=0x200000 # 2MiB, 2097152
MAX_KERNEL_SIZE_ULTIMATE=0x300000 # 3MiB, 3145728
MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480 # ~3.9MiB, 4097152
MAX_ROOTFS_SIZE=0x500000 # 5MiB, 5242880
MAX_ROOTFS_SIZE_ULTIMATE=0xA00000 # 10MiB, 10485760
fresh() {
echo -e "\nThe start-stop times\n" >/tmp/openipc_buildtime.txt
@ -38,24 +33,24 @@ should_fit() {
rename() {
if grep -q ultimate_defconfig ./output/.config || grep -q fpv_defconfig ./output/.config; then
should_fit uImage $MAX_KERNEL_SIZE_ULTIMATE
should_fit rootfs.squashfs $MAX_ROOTFS_SIZE_ULTIMATE
should_fit uImage $MAX_KERNEL_SIZE_ULTIMATE
should_fit rootfs.squashfs $MAX_ROOTFS_SIZE_ULTIMATE
else
should_fit uImage $MAX_KERNEL_SIZE
should_fit rootfs.squashfs $MAX_ROOTFS_SIZE
should_fit uImage $MAX_KERNEL_SIZE
should_fit rootfs.squashfs $MAX_ROOTFS_SIZE
fi
mv -v ./output/images/uImage ./output/images/uImage.${soc}
mv -v ./output/images/rootfs.squashfs ./output/images/rootfs.squashfs.${soc}
mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio
mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar
mv -v ./output/images/uImage ./output/images/uImage.${SOC}
mv -v ./output/images/rootfs.squashfs ./output/images/rootfs.squashfs.${SOC}
mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${SOC}.cpio
mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar
date >>/tmp/openipc_buildtime.txt
}
rename_initramfs() {
should_fit uImage $MAX_KERNEL_SIZE_EXPERIMENTAL
mv -v ./output/images/uImage ./output/images/uImage.initramfs.${soc}
mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio
mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar
mv -v ./output/images/uImage ./output/images/uImage.initramfs.${SOC}
mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${SOC}.cpio
mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar
date >>/tmp/openipc_buildtime.txt
echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)"
}
@ -64,561 +59,170 @@ autoup_rootfs() {
echo -e "\n"
curl -L -o ./output/images/u-boot-hi3518ev200-universal.bin https://github.com/OpenIPC/firmware/releases/download/latest/u-boot-hi3518ev200-universal.bin
echo -e "\n"
./output/host/bin/mkimage -A arm -O linux -T firmware -n 'OpenIPC v.2.2.7' -a 0x000000000000 -e 0x000000050000 -d ./output/images/u-boot-hi3518ev200-universal.bin ./output/images/autoupdate-uboot.img
D=$(date "+%y.%m.%d")
RELEASE=$(echo OpenIPC v${D:0:1}.${D:1})
./output/host/bin/mkimage -A arm -O linux -T firmware -n $RELEASE -a 0x0 -e 0x50000 -d ./output/images/u-boot-hi3518ev200-universal.bin ./output/images/autoupdate-uboot.img
echo -e "\n"
./output/host/bin/mkimage -A arm -O linux -T kernel -C none -n 'OpenIPC v2.2.7' -a 0x000000050000 -e 0x000000250000 -d ./output/images/uImage.${soc} ./output/images/autoupdate-kernel.img
./output/host/bin/mkimage -A arm -O linux -T kernel -C none -n $RELEASE -a 0x50000 -e 0x250000 -d ./output/images/uImage.${SOC} ./output/images/autoupdate-kernel.img
echo -e "\n"
./output/host/bin/mkimage -A arm -O linux -T filesystem -n 'OpenIPC v.2.2.7' -a 0x000000250000 -e 0x000000750000 -d ./output/images/rootfs.squashfs.${soc} ./output/images/autoupdate-rootfs.img
}
sdk() {
make br-sdk
}
upload() {
TFTP_SERVER="root@172.17.32.17:/mnt/bigger-2tb/Rotator/TFTP"
echo -e "\n\nStart transferring files to the TFTP server...\n"
scp -P 22 -r ./output/images/rootfs.squashfs.* ./output/images/uImage.* ${TFTP_SERVER}
}
tg_message() {
#TG_TOKEN=
#TG_CHANNEL=
TG_REPLY="${TG_REPLY:=No comment.\nAll details will come later.}"
TG_MESSAGE=$(echo -e "\xF0\x9F\x8C\x8D PARADOX" "%0A${TG_REPLY}")
#
curl -s -k --connect-timeout 30 --max-time 30 -X POST \
https://api.telegram.org/bot${TG_TOKEN}/sendMessage -d chat_id="${TG_CHANNEL}" -d disable_notification="true" -d text="${TG_MESSAGE}" >/dev/null 2>&1
./output/host/bin/mkimage -A arm -O linux -T filesystem -n $RELEASE -a 0x250000 -e 0x750000 -d ./output/images/rootfs.squashfs.${SOC} ./output/images/autoupdate-rootfs.img
}
#################################################################################
ambarella-s3l() {
soc="s3l"
fresh && make PLATFORM=ambarella BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
ak3918ev200() {
soc="ak3918ev200"
fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename
}
ak3916ev300() {
soc="ak3916ev300"
fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename
}
ak3918ev300() {
soc="ak3918ev300"
fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
fh8833v100() {
soc="fh8833v100"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8852v100() {
soc="fh8852v100"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8852v200() {
soc="fh8852v200"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8852v210() {
soc="fh8852v210"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8856v100() {
soc="fh8856v100"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8856v200() {
soc="fh8856v200"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8856v210() {
soc="fh8856v210"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8858v200() {
soc="fh8858v200"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
fh8858v210() {
soc="fh8858v210"
fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
gk7101() {
soc="gk7101"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7101s() {
soc="gk7101s"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7102() {
soc="gk7102"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7102s() {
soc="gk7102s"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7205v200() {
soc="gk7205v200"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7205v200_ultimate() {
soc="gk7205v200"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename
}
gk7205v200_fpv() {
soc="gk7205v200"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename
}
gk7205v200_iscom() {
soc="gk7205v200"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_iscom all && rename
}
gk7205v200_ufanet() {
soc="gk7205v200"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ufanet all && rename
}
gk7205v210() {
soc="gk7205v210"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7205v300() {
soc="gk7205v300"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
gk7205v300_ultimate() {
soc="gk7205v300"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename
}
gk7205v300_fpv() {
soc="gk7205v300"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename
}
gk7605v100() {
soc="gk7605v100"
fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
gm8135() {
soc="gm8135"
fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename
}
gm8136() {
soc="gm8136"
fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
hi3516cv100() {
soc="hi3516cv100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3518ev100() {
soc="hi3518ev100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
hi3516cv200() {
soc="hi3516cv200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3518ev200() {
soc="hi3518ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3518ev200_domsip() {
soc="hi3518ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_domsip all && rename
}
hi3518ev200_hs303() {
soc="hi3518ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename && autoup_rootfs
#PLATFORM=hisilicon make br-linux-{dirclean,rebuild}
#PLATFORM=hisilicon make br-mbedtls-openipc-{dirclean,rebuild}
}
hi3518ev200_ultimate() {
soc="hi3518ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
#################################################################################
hi3516cv300() {
soc="hi3516cv300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516cv300_ultimate() {
soc="hi3516cv300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
hi3516ev100() {
soc="hi3516ev100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
hi3516av100() {
soc="hi3516av100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516av100_ultimate() {
soc="hi3516av100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
hi3516dv100() {
soc="hi3516dv100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516dv100_ultimate() {
soc="hi3516dv100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
#################################################################################
hi3519v101() {
soc="hi3519v101"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516av200() {
soc="hi3516av200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516av200_ultimate() {
soc="hi3516av200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
#################################################################################
hi3516av300() {
soc="hi3516av300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516cv500() {
soc="hi3516cv500"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516dv300() {
soc="hi3516dv300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
hi3516dv200() {
soc="hi3516dv200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516ev200() {
soc="hi3516ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516ev200_dozor() {
soc="hi3516ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_dozor all && rename
}
hi3516ev200_eltis() {
soc="hi3516ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_eltis all && rename
}
hi3516ev200_vixand() {
soc="hi3516ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_vixand all && rename
}
hi3516ev200_ultimate() {
soc="hi3516ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
hi3516ev300() {
soc="hi3516ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3516ev300_dev() {
soc="hi3516ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_dev all && rename
}
hi3516ev300_fpv() {
soc="hi3516ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_fpv all && rename
}
hi3516ev300_glibc() {
soc="hi3516ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_glibc all && rename
}
hi3516ev300_tehshield() {
soc="hi3516ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_tehshield all && rename
}
hi3516ev300_ultimate() {
soc="hi3516ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
hi3518ev300() {
soc="hi3518ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3518ev300_ultimate() {
soc="hi3518ev300"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
}
hi3536cv100() {
soc="hi3536cv100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3536dv100() {
soc="hi3536dv100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename
}
hi3536dv100_vixand() {
soc="hi3536dv100"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_vixand all && rename
}
#################################################################################
msc313e() {
soc="msc313e"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
msc313e_baresip() {
soc="msc313e"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_baresip all && rename
}
msc316dc() {
soc="msc316dc"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
msc316dm() {
soc="msc316dm"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
nt98562() {
soc="nt98562"
fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_openipc all && rename
#PLATFORM=novatek make br-linux-{dirclean,rebuild}
}
nt98566() {
soc="nt98566"
fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_openipc all && rename
}
nt98566_polcam() {
soc="nt98566"
fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_polcam all && rename
}
#################################################################################
rv1109() {
soc="rv1109"
fresh && make PLATFORM=rockchip BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
rv1126() {
soc="rv1126"
fresh && make PLATFORM=rockchip BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
ssc325() {
soc="ssc325"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
ssc333() {
soc="ssc333"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
ssc335() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
ssc335_blackbird() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_blackbird all && rename
}
ssc335_goodcam() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_goodcam all && rename
}
ssc335_initramfs() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_initramfs all && rename_initramfs
}
ssc335_musl() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_musl all && rename
}
ssc335_portal() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_portal all && rename
}
ssc335_rotek() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_rotek all && rename
}
ssc335_tiandy() {
soc="ssc335"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_tiandy all && rename
}
ssc337() {
soc="ssc337"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
ssc337_kama() {
soc="ssc337"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_kama all && rename
}
#################################################################################
ssc335de() {
soc="ssc335de"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
ssc337de() {
soc="ssc337de"
fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename
}
#################################################################################
t10() {
soc="t10"
fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename
}
t20() {
soc="t20"
fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename
}
t30() {
soc="t30"
fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename
}
t31() {
soc="t31"
fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename
}
t31_vixand() {
soc="t31"
fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_vixand all && rename
}
#################################################################################
xm510() {
soc="xm510"
fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename
}
xm530() {
soc="xm530"
fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename
}
xm550() {
soc="xm550"
fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename
}
FUNCS=(
ambarella-s3l
ak3918ev200
ak3916ev300
ak3918ev300
fh8833v100
fh8852v100
fh8852v200
fh8852v210
fh8856v100
fh8856v200
fh8856v210
fh8858v200
fh8858v210
gk7101
gk7101s
gk7102
gk7102s
gk7205v200
gk7205v200_ultimate
gk7205v200_fpv
gk7205v200_iscom
gk7205v200_ufanet
gk7205v210
gk7205v300
gk7205v300_ultimate
gk7205v300_fpv
gk7605v100
gm8135
gm8136
hi3516cv100
hi3518ev100
hi3516cv200
hi3518ev200
hi3518ev200_domsip
hi3518ev200_hs303
hi3518ev200_ultimate
hi3516cv300
hi3516cv300_ultimate
hi3516ev100
hi3516av100
hi3516av100_ultimate
hi3516dv100
hi3516dv100_ultimate
hi3519v101
hi3516av200
hi3516av200_ultimate
hi3516av300
hi3516cv500
hi3516dv300
hi3516dv200
hi3516ev200
hi3516ev200_dozor
hi3516ev200_eltis
hi3516ev200_vixand
hi3516ev200_ultimate
hi3516ev300
hi3516ev300_dev
hi3516ev300_fpv
hi3516ev300_glibc
hi3516ev300_tehshield
hi3516ev300_ultimate
hi3518ev300
hi3518ev300_ultimate
hi3536cv100
hi3536dv100
hi3536dv100_vixand
msc313e
msc313e_baresip
msc316dc
msc316dm
nt98562
nt98566
nt98566_polcam
rv1109
rv1126
ssc325
ssc333
ssc335
ssc335_blackbird
ssc335_goodcam
ssc335_initramfs
ssc335_musl
ssc335_portal
ssc335_rotek
ssc335_tiandy
ssc337
ssc337_kama
ssc335de
ssc337de
t10
t20
t30
t31
t31_vixand
xm510
xm530
xm550
)
copy_function() {
test -n "$(declare -f "$1")" || return
eval "${_/$1/$2}"
}
uni_build() {
BOARD=$FUNCNAME
SOC=$(echo $BOARD | cut -d '_' -f 1)
set -e
if [ "$(echo $BOARD | cut -d '_' -f 2)" == "" ]; then
BOARD="${BOARD}_openipc"
elif [ "$BOARD" == "hi3518ev200_hs303" ]; then
BOARD=hi3518ev200_openipc
NEED_AUTOUP=1
fi
fresh
make BOARD=unknown_unknown_${BOARD} all
if [ "$BOARD" == "ssc335_initramfs" ]; then
rename_initramfs
else
rename
fi
if [ ! -z "$NEED_AUTOUP" ]; then
autoup_rootfs
fi
}
for i in "${FUNCS[@]}"; do
copy_function uni_build $i
done
#################################################################################
@ -627,7 +231,7 @@ xm550() {
# Build firmware
#######
#
# ambarella-s3l # testing..
# ambarella-s3l # testing..
#
#######
#
@ -782,4 +386,3 @@ xm550() {
#
echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)"

View File

@ -4,7 +4,7 @@
#
################################################################################
LIBEVENT_OPENIPC_VERSION = 99fd68abde4a59b90148db733fc51a7256cbd320
LIBEVENT_OPENIPC_VERSION = 86b5d2e951eaa88cb5fed2be23fa5af85facad4a
LIBEVENT_OPENIPC_SITE = $(call github,libevent,libevent,$(LIBEVENT_OPENIPC_VERSION))
LIBEVENT_OPENIPC_INSTALL_STAGING = YES
LIBEVENT_OPENIPC_LICENSE = BSD-3-Clause, OpenBSD

View File

@ -0,0 +1,149 @@
From patchwork Thu Sep 17 06:19:48 2020
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ard Biesheuvel <ardb@kernel.org>
X-Patchwork-Id: 11781619
Return-Path:
<SRS0=6281=C2=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
[172.30.200.123])
by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7EA96CA
for <patchwork-linux-arm@patchwork.kernel.org>;
Thu, 17 Sep 2020 06:20:24 +0000 (UTC)
Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by mail.kernel.org (Postfix) with ESMTPS id 758BF208E4
for <patchwork-linux-arm@patchwork.kernel.org>;
Thu, 17 Sep 2020 06:20:24 +0000 (UTC)
Authentication-Results: mail.kernel.org;
dkim=pass (2048-bit key) header.d=lists.infradead.org
header.i=@lists.infradead.org header.b="asIIUop8";
dkim=fail reason="signature verification failed" (1024-bit key)
header.d=kernel.org header.i=@kernel.org header.b="Dfh0zH+Q"
DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 758BF208E4
Authentication-Results: mail.kernel.org;
dmarc=fail (p=none dis=none) header.from=kernel.org
Authentication-Results: mail.kernel.org;
spf=none
smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID:
Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
:Resent-Message-ID:In-Reply-To:References:List-Owner;
bh=Lo1QvkycLV/7qa6tRuaKU+043GrCtYRFDvZNpiyIHFs=; b=asIIUop8zx9VLyP8RxH3FSnpIB
goa+Fn9zbDfPdm1XBArYJdBUQkptX0eK5ggte4+RtYnD6jtYPnDQ1atbG+LXFXdCGBPPGD7Ec0NCz
2rf7GocaLxeNTnfrTrLiyeLitFTbrFsfog6LNatG/wbNnekF7ykhcZ7bzwvfMVNbAYwx0vMjCBUDv
yaOUflwQYiTda6AkoJnj1IISdIYLgkCEIzyDVq3rIFW3BA+m5EhmhXKI2gcksipSVuIsbux+px9ZV
v42wJcIXgnVA+qJct1MFfxvPN1vQBL9aLZclNOcXNmKZD8Q09LA4yNxvFkRoNLlBOPKYSN6XHmtJn
mAF9oPSw==;
Received: from localhost ([::1] helo=merlin.infradead.org)
by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
id 1kInGx-0003LG-UJ; Thu, 17 Sep 2020 06:20:00 +0000
Received: from mail.kernel.org ([198.145.29.99])
by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
id 1kInGv-0003Kq-Ma
for linux-arm-kernel@lists.infradead.org; Thu, 17 Sep 2020 06:19:58 +0000
Received: from e123331-lin.nice.arm.com (unknown [91.140.120.15])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by mail.kernel.org (Postfix) with ESMTPSA id 9D4CD20707;
Thu, 17 Sep 2020 06:19:54 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
s=default; t=1600323596;
bh=ziD1S262d4AhvP0HlkLo4WCfu8gkBuZJo+18GfJki9c=;
h=From:To:Cc:Subject:Date:From;
b=Dfh0zH+QgFdYO0gLoboRtZhySJAl+bjUHgIo8kCQVGjvzCWF7i2BSPEKZiFbSIEGm
fFSTDES62ApoJHYwFnIAtXQMpjV7DYbIoeuFScbKPT4lMxCYpo/X7ffl/+OEWMkRAK
4Unu4CMR1SVL+8a4DZhSoF74nrvGspRqV5Nh1iTI=
From: Ard Biesheuvel <ardb@kernel.org>
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: vfp: force non-conditional encoding for external Thumb2
tail call
Date: Thu, 17 Sep 2020 09:19:48 +0300
Message-Id: <20200917061948.12403-1-ardb@kernel.org>
X-Mailer: git-send-email 2.17.1
X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
X-CRM114-CacheID: sfid-20200917_021957_811961_126E0A54
X-CRM114-Status: GOOD ( 13.51 )
X-Spam-Score: -8.2 (--------)
X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary:
Content analysis details: (-8.2 points)
pts rule name description
---- ----------------------
--------------------------------------------------
-5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/,
high trust [198.145.29.99 listed in list.dnswl.org]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-0.0 SPF_PASS SPF: sender matches SPF record
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily
valid
-0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
envelope-from domain
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
author's domain
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
-3.0 DKIMWL_WL_HIGH DKIMwl.org - Whitelisted High sender
X-BeenThere: linux-arm-kernel@lists.infradead.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <linux-arm-kernel.lists.infradead.org>
List-Unsubscribe:
<http://lists.infradead.org/mailman/options/linux-arm-kernel>,
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
List-Subscribe:
<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
Cc: ndesaulniers@google.com, linux@armlinux.org.uk, stable@vger.kernel.org,
Ard Biesheuvel <ardb@kernel.org>
MIME-Version: 1.0
Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
Errors-To:
linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
Nick reports that the following error is produced in some cases when
using GCC+ld.bfd to build the ARM defconfig with Thumb2 enabled:
arch/arm/vfp/vfphw.o: in function `vfp_support_entry':
(.text+0xa): relocation truncated to fit: R_ARM_THM_JUMP19 against
symbol `vfp_kmode_exception' defined in .text.unlikely section in
arch/arm/vfp/vfpmodule.o
$ arm-linux-gnueabihf-ld --version
GNU ld (GNU Binutils for Debian) 2.34
Generally, the linker should be able to fix up out of range branches by
emitting veneers, but apparently, it fails to do so in this particular
case, i.e., a conditional 'tail call' to vfp_kmode_exception(), which
is not defined in the same object file.
So let's force the use of a non-conditional encoding of the B instruction,
which has more space for an immediate offset.
Cc: <stable@vger.kernel.org>
Reported-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
arch/arm/vfp/vfphw.S | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
index 4fcff9f59947..f1468702fbc9 100644
--- a/arch/arm/vfp/vfphw.S
+++ b/arch/arm/vfp/vfphw.S
@@ -82,6 +82,7 @@ ENTRY(vfp_support_entry)
ldr r3, [sp, #S_PSR] @ Neither lazy restore nor FP exceptions
and r3, r3, #MODE_MASK @ are supported in kernel mode
teq r3, #USR_MODE
+THUMB( it ne )
bne vfp_kmode_exception @ Returns through lr
VFPFMRX r1, FPEXC @ Is the VFP enabled?

View File

@ -3,7 +3,8 @@
# Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config
#
date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release
D=$(date "+%y.%m.%d")
echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release
date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release
if grep -q fpv_defconfig ${BR2_CONFIG}; then
echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release

View File

@ -3,7 +3,8 @@
# Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config
#
date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release
D=$(date "+%y.%m.%d")
echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release
date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release
if grep -q fpv_defconfig ${BR2_CONFIG}; then
echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release

View File

@ -3,7 +3,8 @@
# Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config
#
date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release
D=$(date "+%y.%m.%d")
echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release
date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release
if grep -q fpv_defconfig ${BR2_CONFIG}; then
echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release
@ -20,4 +21,4 @@ if ! grep -q ^BR2_PACKAGE_WIFIBROADCAST=y ${BR2_CONFIG}; then
rm -f ${TARGET_DIR}/usr/lib/libstdc++*
fi
rm -f ${TARGET_DIR}/usr/bin/gdbserver
rm -f ${TARGET_DIR}/usr/bin/gdbserver

View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
shopt -s nullglob
if [ $# -eq 0 ]; then
$0 1 | sort
#$0 1 | sort | uniq
else
for D in br-ext-chip-*; do
for CF in $D/configs/*; do
BR2_VER=$(grep BR2_DEFAULT_KERNEL_VERSION $CF)
if [ ! -z $BR2_VER ]; then
VENDOR=$(echo $CF | cut -d - -f 4 | cut -d / -f 1 | sed -r 's/\<./\U&/g')
VER=$(echo $BR2_VER | cut -d \" -f 2 | awk -F . '{printf "%s_%s", $1, $2}')
GCC_VER=$(sed -rn "s/^BR2_GCC_VERSION_([0-9]*)_X=y/\1/p" $CF)
ARCH=$(sed -rn "s/^BR2_(arm[a-z0-9_]+)=y/\1/p" $CF)
if [ -z "$ARCH" ]; then
ARCH=$(sed -rn "s/^BR2_(cortex_[a-z0-9_]+)=y/\1/p" $CF)
fi
if [ -z "$ARCH" ]; then
ARCH=$(sed -rn "s/^BR2_(arm)=y/\1/p" $CF)
else
# Here we have something from ARM modern family
HF=$(sed -rn "s/^BR2_ARM_EABI(HF)=y/\1/p" $CF | tr '[:upper:]' '[:lower:]')
if [ ! -z "$HF" ]; then
ARCH="${ARCH}_${HF}"
fi
fi
if [ -z "$ARCH" ]; then
ARCH=$(sed -rn "s/^BR2_(mips_[a-z]*)=y/\1/p" $CF)
fi
LIBC=$(sed -rn "s/^BR2_TOOLCHAIN_BUILDROOT_LIBC=\"(.*)\"/\1/p" $CF)
SOC=$(echo $CF | cut -d _ -f 3)
# $GCC_VER
echo $ARCH $LIBC $VER $VENDOR $CF
fi
done
done
fi