mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			Merge branch 'master' of github:OpenIPC/firmware
						commit
						f202e1ed66
					
				|  | @ -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 | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
|  | @ -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" |  | ||||||
								
									
									
										
											14
										
									
									Makefile
									
									
									
									
								
								
							
							
										
											14
										
									
									Makefile
									
									
									
									
								|  | @ -2,6 +2,20 @@ | ||||||
| ROOT_DIR      := $(CURDIR) | ROOT_DIR      := $(CURDIR) | ||||||
| BR_VER        := 2021.02.12 | BR_VER        := 2021.02.12 | ||||||
| BR_DIR        := $(ROOT_DIR)/buildroot-$(BR_VER) | 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) | BR_EXT_DIR    := $(ROOT_DIR)/br-ext-chip-$(PLATFORM) | ||||||
| SCRIPTS_DIR   := $(ROOT_DIR)/scripts | SCRIPTS_DIR   := $(ROOT_DIR)/scripts | ||||||
| #BOARDS       := $(shell ls -1 $(BR_EXT_DIR)/configs)
 | #BOARDS       := $(shell ls -1 $(BR_EXT_DIR)/configs)
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../../../../patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch | ||||||
								
									
									
										
											749
										
									
									building.sh
									
									
									
									
								
								
							
							
										
											749
										
									
									building.sh
									
									
									
									
								|  | @ -1,20 +1,15 @@ | ||||||
| #!/bin/bash | #!/bin/bash | ||||||
| # | # | ||||||
| # OpenIPC.org | v.20220813 | # OpenIPC.org (c) | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| BR_VER=2021.02.12 | BR_VER=2021.02.12 | ||||||
| 
 | 
 | ||||||
| MAX_KERNEL_SIZE=0x200000               #    2MiB,  2097152 | MAX_KERNEL_SIZE=0x200000              #    2MiB,  2097152 | ||||||
| MAX_KERNEL_SIZE_ULTIMATE=0x300000      #    3MiB,  3145728 | MAX_KERNEL_SIZE_ULTIMATE=0x300000     #    3MiB,  3145728 | ||||||
| MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480  # ~3.9MiB,  4097152 | MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480 # ~3.9MiB,  4097152 | ||||||
| MAX_ROOTFS_SIZE=0x500000               #    5MiB,  5242880 | MAX_ROOTFS_SIZE=0x500000              #    5MiB,  5242880 | ||||||
| MAX_ROOTFS_SIZE_ULTIMATE=0xA00000      #   10MiB,  10485760 | 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 |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| fresh() { | fresh() { | ||||||
|   echo -e "\nThe start-stop times\n" >/tmp/openipc_buildtime.txt |   echo -e "\nThe start-stop times\n" >/tmp/openipc_buildtime.txt | ||||||
|  | @ -38,24 +33,24 @@ should_fit() { | ||||||
| 
 | 
 | ||||||
| rename() { | rename() { | ||||||
|   if grep -q ultimate_defconfig ./output/.config || grep -q fpv_defconfig ./output/.config; then |   if grep -q ultimate_defconfig ./output/.config || grep -q fpv_defconfig ./output/.config; then | ||||||
|       should_fit uImage $MAX_KERNEL_SIZE_ULTIMATE |     should_fit uImage $MAX_KERNEL_SIZE_ULTIMATE | ||||||
|       should_fit rootfs.squashfs $MAX_ROOTFS_SIZE_ULTIMATE |     should_fit rootfs.squashfs $MAX_ROOTFS_SIZE_ULTIMATE | ||||||
|   else |   else | ||||||
|       should_fit uImage $MAX_KERNEL_SIZE |     should_fit uImage $MAX_KERNEL_SIZE | ||||||
|       should_fit rootfs.squashfs $MAX_ROOTFS_SIZE |     should_fit rootfs.squashfs $MAX_ROOTFS_SIZE | ||||||
|   fi |   fi | ||||||
|   mv -v ./output/images/uImage ./output/images/uImage.${soc} |   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.squashfs ./output/images/rootfs.squashfs.${SOC} | ||||||
|   mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio |   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/rootfs.tar ./output/images/rootfs.${SOC}.tar | ||||||
|   date >>/tmp/openipc_buildtime.txt |   date >>/tmp/openipc_buildtime.txt | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| rename_initramfs() { | rename_initramfs() { | ||||||
|   should_fit uImage $MAX_KERNEL_SIZE_EXPERIMENTAL |   should_fit uImage $MAX_KERNEL_SIZE_EXPERIMENTAL | ||||||
|   mv -v ./output/images/uImage ./output/images/uImage.initramfs.${soc} |   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.cpio ./output/images/rootfs.${SOC}.cpio | ||||||
|   mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar |   mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar | ||||||
|   date >>/tmp/openipc_buildtime.txt |   date >>/tmp/openipc_buildtime.txt | ||||||
|   echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" |   echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" | ||||||
| } | } | ||||||
|  | @ -64,561 +59,170 @@ autoup_rootfs() { | ||||||
|   echo -e "\n" |   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 |   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" |   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" |   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" |   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 |   ./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 | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 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 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ################################################################################# | ################################################################################# | ||||||
| 
 | 
 | ||||||
| ambarella-s3l() { | FUNCS=( | ||||||
|   soc="s3l" |   ambarella-s3l | ||||||
|   fresh && make PLATFORM=ambarella BOARD=unknown_unknown_${soc}_openipc all && rename | 
 | ||||||
| } |   ak3918ev200 | ||||||
| 
 |   ak3916ev300 | ||||||
| ################################################################################# |   ak3918ev300 | ||||||
| 
 | 
 | ||||||
| ak3918ev200() { |   fh8833v100 | ||||||
|   soc="ak3918ev200" |   fh8852v100 | ||||||
|   fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename |   fh8852v200 | ||||||
| } |   fh8852v210 | ||||||
| 
 |   fh8856v100 | ||||||
| ak3916ev300() { |   fh8856v200 | ||||||
|   soc="ak3916ev300" |   fh8856v210 | ||||||
|   fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename |   fh8858v200 | ||||||
| } |   fh8858v210 | ||||||
| 
 | 
 | ||||||
| ak3918ev300() { |   gk7101 | ||||||
|   soc="ak3918ev300" |   gk7101s | ||||||
|   fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename |   gk7102 | ||||||
| } |   gk7102s | ||||||
| 
 | 
 | ||||||
| ################################################################################# |   gk7205v200 | ||||||
| 
 |   gk7205v200_ultimate | ||||||
| fh8833v100() { |   gk7205v200_fpv | ||||||
|   soc="fh8833v100" |   gk7205v200_iscom | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   gk7205v200_ufanet | ||||||
| } |   gk7205v210 | ||||||
| 
 |   gk7205v300 | ||||||
| fh8852v100() { |   gk7205v300_ultimate | ||||||
|   soc="fh8852v100" |   gk7205v300_fpv | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   gk7605v100 | ||||||
| } | 
 | ||||||
| 
 |   gm8135 | ||||||
| fh8852v200() { |   gm8136 | ||||||
|   soc="fh8852v200" | 
 | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3516cv100 | ||||||
| } |   hi3518ev100 | ||||||
| 
 | 
 | ||||||
| fh8852v210() { |   hi3516cv200 | ||||||
|   soc="fh8852v210" |   hi3518ev200 | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3518ev200_domsip | ||||||
| } |   hi3518ev200_hs303 | ||||||
| 
 |   hi3518ev200_ultimate | ||||||
| fh8856v100() { | 
 | ||||||
|   soc="fh8856v100" |   hi3516cv300 | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3516cv300_ultimate | ||||||
| } |   hi3516ev100 | ||||||
| 
 | 
 | ||||||
| fh8856v200() { |   hi3516av100 | ||||||
|   soc="fh8856v200" |   hi3516av100_ultimate | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3516dv100 | ||||||
| } |   hi3516dv100_ultimate | ||||||
| 
 | 
 | ||||||
| fh8856v210() { |   hi3519v101 | ||||||
|   soc="fh8856v210" |   hi3516av200 | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3516av200_ultimate | ||||||
| } | 
 | ||||||
| 
 |   hi3516av300 | ||||||
| fh8858v200() { |   hi3516cv500 | ||||||
|   soc="fh8858v200" |   hi3516dv300 | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | 
 | ||||||
| } |   hi3516dv200 | ||||||
| 
 |   hi3516ev200 | ||||||
| fh8858v210() { |   hi3516ev200_dozor | ||||||
|   soc="fh8858v210" |   hi3516ev200_eltis | ||||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3516ev200_vixand | ||||||
| } |   hi3516ev200_ultimate | ||||||
| 
 |   hi3516ev300 | ||||||
| ################################################################################# |   hi3516ev300_dev | ||||||
| 
 |   hi3516ev300_fpv | ||||||
| gk7101() { |   hi3516ev300_glibc | ||||||
|   soc="gk7101" |   hi3516ev300_tehshield | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3516ev300_ultimate | ||||||
| } |   hi3518ev300 | ||||||
| 
 |   hi3518ev300_ultimate | ||||||
| gk7101s() { | 
 | ||||||
|   soc="gk7101s" |   hi3536cv100 | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename |   hi3536dv100 | ||||||
| } |   hi3536dv100_vixand | ||||||
| 
 | 
 | ||||||
| gk7102() { |   msc313e | ||||||
|   soc="gk7102" |   msc313e_baresip | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename |   msc316dc | ||||||
| } |   msc316dm | ||||||
| 
 | 
 | ||||||
| gk7102s() { |   nt98562 | ||||||
|   soc="gk7102s" |   nt98566 | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename |   nt98566_polcam | ||||||
| } | 
 | ||||||
| 
 |   rv1109 | ||||||
| gk7205v200() { |   rv1126 | ||||||
|   soc="gk7205v200" | 
 | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename |   ssc325 | ||||||
| } |   ssc333 | ||||||
| 
 |   ssc335 | ||||||
| gk7205v200_ultimate() { |   ssc335_blackbird | ||||||
|   soc="gk7205v200" |   ssc335_goodcam | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename |   ssc335_initramfs | ||||||
| } |   ssc335_musl | ||||||
| 
 |   ssc335_portal | ||||||
| gk7205v200_fpv() { |   ssc335_rotek | ||||||
|   soc="gk7205v200" |   ssc335_tiandy | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename |   ssc337 | ||||||
| } |   ssc337_kama | ||||||
| 
 | 
 | ||||||
| gk7205v200_iscom() { |   ssc335de | ||||||
|   soc="gk7205v200" |   ssc337de | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_iscom all && rename | 
 | ||||||
| } |   t10 | ||||||
| 
 |   t20 | ||||||
| gk7205v200_ufanet() { |   t30 | ||||||
|   soc="gk7205v200" |   t31 | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ufanet all && rename |   t31_vixand | ||||||
| } | 
 | ||||||
| 
 |   xm510 | ||||||
| gk7205v210() { |   xm530 | ||||||
|   soc="gk7205v210" |   xm550 | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ) | ||||||
| } | 
 | ||||||
| 
 | copy_function() { | ||||||
| gk7205v300() { |   test -n "$(declare -f "$1")" || return | ||||||
|   soc="gk7205v300" |   eval "${_/$1/$2}" | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | } | ||||||
| } | 
 | ||||||
| 
 | uni_build() { | ||||||
| gk7205v300_ultimate() { |   BOARD=$FUNCNAME | ||||||
|   soc="gk7205v300" |   SOC=$(echo $BOARD | cut -d '_' -f 1) | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename | 
 | ||||||
| } |   set -e | ||||||
| 
 |   if [ "$(echo $BOARD | cut -d '_' -f 2)" == "" ]; then | ||||||
| gk7205v300_fpv() { |     BOARD="${BOARD}_openipc" | ||||||
|   soc="gk7205v300" |   elif [ "$BOARD" == "hi3518ev200_hs303" ]; then | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename |     BOARD=hi3518ev200_openipc | ||||||
| } |     NEED_AUTOUP=1 | ||||||
| 
 |   fi | ||||||
| gk7605v100() { | 
 | ||||||
|   soc="gk7605v100" |   fresh | ||||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename |   make BOARD=unknown_unknown_${BOARD} all | ||||||
| } |   if [ "$BOARD" == "ssc335_initramfs" ]; then | ||||||
| 
 |     rename_initramfs | ||||||
| ################################################################################# |   else | ||||||
| 
 |     rename | ||||||
| gm8135() { |   fi | ||||||
|   soc="gm8135" | 
 | ||||||
|   fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename |   if [ ! -z "$NEED_AUTOUP" ]; then | ||||||
| } |     autoup_rootfs | ||||||
| 
 |   fi | ||||||
| gm8136() { | } | ||||||
|   soc="gm8136" | 
 | ||||||
|   fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename | for i in "${FUNCS[@]}"; do | ||||||
| } |   copy_function uni_build $i | ||||||
| 
 | done | ||||||
| ################################################################################# |  | ||||||
| 
 |  | ||||||
| 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 |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| ################################################################################# | ################################################################################# | ||||||
| 
 | 
 | ||||||
|  | @ -627,7 +231,7 @@ xm550() { | ||||||
| # Build firmware | # Build firmware | ||||||
| ####### | ####### | ||||||
| # | # | ||||||
| # ambarella-s3l                   # testing.. | # ambarella-s3l                 # testing.. | ||||||
| # | # | ||||||
| ####### | ####### | ||||||
| # | # | ||||||
|  | @ -782,4 +386,3 @@ xm550() { | ||||||
| # | # | ||||||
| 
 | 
 | ||||||
| echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" | echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
| #
 | #
 | ||||||
| ################################################################################
 | ################################################################################
 | ||||||
| 
 | 
 | ||||||
| LIBEVENT_OPENIPC_VERSION = 99fd68abde4a59b90148db733fc51a7256cbd320 | LIBEVENT_OPENIPC_VERSION = 86b5d2e951eaa88cb5fed2be23fa5af85facad4a | ||||||
| LIBEVENT_OPENIPC_SITE = $(call github,libevent,libevent,$(LIBEVENT_OPENIPC_VERSION)) | LIBEVENT_OPENIPC_SITE = $(call github,libevent,libevent,$(LIBEVENT_OPENIPC_VERSION)) | ||||||
| LIBEVENT_OPENIPC_INSTALL_STAGING = YES | LIBEVENT_OPENIPC_INSTALL_STAGING = YES | ||||||
| LIBEVENT_OPENIPC_LICENSE = BSD-3-Clause, OpenBSD | LIBEVENT_OPENIPC_LICENSE = BSD-3-Clause, OpenBSD | ||||||
|  |  | ||||||
|  | @ -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? | ||||||
|  | @ -3,7 +3,8 @@ | ||||||
| # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config | # 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 | date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release | ||||||
| if grep -q fpv_defconfig ${BR2_CONFIG}; then | if grep -q fpv_defconfig ${BR2_CONFIG}; then | ||||||
|     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release |     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release | ||||||
|  |  | ||||||
|  | @ -3,7 +3,8 @@ | ||||||
| # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config | # 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 | date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release | ||||||
| if grep -q fpv_defconfig ${BR2_CONFIG}; then | if grep -q fpv_defconfig ${BR2_CONFIG}; then | ||||||
|     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release |     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release | ||||||
|  |  | ||||||
|  | @ -3,7 +3,8 @@ | ||||||
| # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config | # 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 | date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release | ||||||
| if grep -q fpv_defconfig ${BR2_CONFIG}; then | if grep -q fpv_defconfig ${BR2_CONFIG}; then | ||||||
|     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release |     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
		Loading…
	
		Reference in New Issue