mirror of https://github.com/OpenIPC/firmware.git
Move project
parent
74756a9103
commit
3afbc7ef1f
|
@ -0,0 +1,129 @@
|
||||||
|
name: OpenIPC for Hi3516Ev200
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
tags:
|
||||||
|
- "v*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_core:
|
||||||
|
name: OpenIPC v2.0 for Hi3516Ev200
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
id: checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install build dependencies
|
||||||
|
id: install
|
||||||
|
run: |
|
||||||
|
make install-deps
|
||||||
|
mkdir -p tmp
|
||||||
|
|
||||||
|
- name: Free disk space
|
||||||
|
id: freshing
|
||||||
|
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 -j$(($(nproc)+1)) BOARD=unknown_unknown_hi3516ev200_openipc all
|
||||||
|
tar -C ${GITHUB_WORKSPACE}/output/images -cvzf $ARCHIVE_FW rootfs.squashfs uImage
|
||||||
|
|
||||||
|
- 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 warning 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 5 --max-time 15"
|
||||||
|
TG_NOTIFY="Warning, Buildroot compiling error..."
|
||||||
|
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"
|
||||||
|
|
||||||
|
- name: Create release
|
||||||
|
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 FW to release
|
||||||
|
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
|
||||||
|
uses: svenstaro/upload-release-action@v2
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
file: ${{ env.ARCHIVE_SDK }}
|
||||||
|
asset_name: "arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
|
||||||
|
tag: ${{ env.TAG_NAME }}
|
||||||
|
overwrite: true
|
||||||
|
|
||||||
|
- name: Send binary file to telegram channel
|
||||||
|
env:
|
||||||
|
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
|
||||||
|
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
|
||||||
|
run: |
|
||||||
|
TG_OPTIONS="-s --connect-timeout 5 --max-time 15"
|
||||||
|
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,129 @@
|
||||||
|
name: OpenIPC for Hi3516Ev300
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
tags:
|
||||||
|
- "v*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_core:
|
||||||
|
name: OpenIPC v2.0 for Hi3516Ev300
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
id: checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install build dependencies
|
||||||
|
id: install
|
||||||
|
run: |
|
||||||
|
make install-deps
|
||||||
|
mkdir -p tmp
|
||||||
|
|
||||||
|
- name: Free disk space
|
||||||
|
id: freshing
|
||||||
|
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 BOARD=unknown_unknown_hi3516ev300_openipc all
|
||||||
|
tar -C ${GITHUB_WORKSPACE}/output/images -cvzf $ARCHIVE_FW rootfs.squashfs uImage
|
||||||
|
|
||||||
|
- 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 warning 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 5 --max-time 15"
|
||||||
|
TG_NOTIFY="Warning, Buildroot compiling error..."
|
||||||
|
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"
|
||||||
|
|
||||||
|
- name: Create release
|
||||||
|
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 FW to release
|
||||||
|
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
|
||||||
|
uses: svenstaro/upload-release-action@v2
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
file: ${{ env.ARCHIVE_SDK }}
|
||||||
|
asset_name: "arm-openipc-linux-musleabi_sdk-buildroot.tar.gz"
|
||||||
|
tag: ${{ env.TAG_NAME }}
|
||||||
|
overwrite: true
|
||||||
|
|
||||||
|
- name: Send binary file to telegram channel
|
||||||
|
env:
|
||||||
|
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
|
||||||
|
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
|
||||||
|
run: |
|
||||||
|
TG_OPTIONS="-s --connect-timeout 5 --max-time 15"
|
||||||
|
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,4 @@
|
||||||
|
buildroot-2021.02/
|
||||||
|
buildroot-2020.02/
|
||||||
|
buildroot-2019.11.1/
|
||||||
|
output/
|
|
@ -0,0 +1,137 @@
|
||||||
|
|
||||||
|
ROOT_DIR := $(CURDIR)
|
||||||
|
BR_VER := 2021.02
|
||||||
|
BR_DIR := $(ROOT_DIR)/buildroot-$(BR_VER)
|
||||||
|
BR_EXT_DIR := $(ROOT_DIR)/br-ext-chip-hisilicon
|
||||||
|
SCRIPTS_DIR := $(ROOT_DIR)/scripts
|
||||||
|
BOARDS := $(shell ls -1 $(BR_EXT_DIR)/configs)
|
||||||
|
|
||||||
|
.PHONY: usage help prepare install-deps all toolchain-params run-tests overlayed-rootfs-%
|
||||||
|
|
||||||
|
usage help:
|
||||||
|
@echo \
|
||||||
|
"\n\
|
||||||
|
BR-OpenIPC usage:\n\
|
||||||
|
- make help|usage - print this help\n\
|
||||||
|
- make install-deps - install system deps\n\
|
||||||
|
- make prepare - download and unpack buildroot\n\
|
||||||
|
- make list-configs - show avalible hardware configs list\n\
|
||||||
|
- make BOARD=<BOARD-ID> board-info - write to stdout information about selected board\n\
|
||||||
|
- make BOARD=<BOARD-ID> all - build all needed for a board (toolchain, kernel and rootfs images)\n\
|
||||||
|
- make overlayed-rootfs-<FS-TYPE> ROOTFS_OVERLAYS=... - create rootfs image that contains original\n\
|
||||||
|
Buildroot target dir overlayed by some custom layers.\n\
|
||||||
|
Example:\n\
|
||||||
|
make overlayed-rootfs-squashfs ROOTFS_OVERLAYS=./examples/echo_server/overlay\n\
|
||||||
|
"
|
||||||
|
|
||||||
|
|
||||||
|
prepare: $(BR_DIR)
|
||||||
|
$(ROOT_DIR)/buildroot-$(BR_VER).tar.gz:
|
||||||
|
wget -O $@ --header="Host: buildroot.org" --no-check-certificate https://buildroot.org/downloads/buildroot-$(BR_VER).tar.gz
|
||||||
|
|
||||||
|
$(BR_DIR): $(ROOT_DIR)/buildroot-$(BR_VER).tar.gz
|
||||||
|
tar -C $(ROOT_DIR) -xf buildroot-$(BR_VER).tar.gz
|
||||||
|
rm -f buildroot-$(BR_VER).tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
install-deps:
|
||||||
|
DEBIAN_FRONTEND=noninteractive sudo apt-get update && sudo apt-get -y install build-essential make libncurses-dev wget
|
||||||
|
|
||||||
|
|
||||||
|
%_info:
|
||||||
|
@echo
|
||||||
|
@cat $(BR_EXT_DIR)/board/$(subst _info,,$@)/config | grep RAM_LINUX_SIZE
|
||||||
|
$(eval VENDOR := $(shell echo $@ | cut -d "_" -f 1))
|
||||||
|
$(eval FAMILY := $(shell cat $(BR_EXT_DIR)/board/$(subst _info,,$@)/config | grep FAMILY | cut -d "=" -f 2))
|
||||||
|
$(eval CHIP := $(shell echo $@ | cut -d "_" -f 3))
|
||||||
|
@cat $(BR_EXT_DIR)/board/$(FAMILY)/$(CHIP).config
|
||||||
|
|
||||||
|
|
||||||
|
list-configs:
|
||||||
|
@echo
|
||||||
|
@ls -1 $(BR_EXT_DIR)/configs
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
OUT_DIR ?= $(ROOT_DIR)/output
|
||||||
|
|
||||||
|
# Buildroot considers relative paths relatively to its' own root directory. So we use absolute paths
|
||||||
|
# to avoid ambiguity
|
||||||
|
override OUT_DIR := $(abspath $(OUT_DIR))
|
||||||
|
BOARD_MAKE := $(MAKE) -C $(BR_DIR) BR2_EXTERNAL=$(BR_EXT_DIR) O=$(OUT_DIR)
|
||||||
|
|
||||||
|
define CREATE_TOOLCHAIN_PARAMS
|
||||||
|
eval $$($(BOARD_MAKE) -s --no-print-directory VARS=GNU_TARGET_NAME printvars) \
|
||||||
|
&& $(SCRIPTS_DIR)/create_toolchain_binding.sh $(OUT_DIR)/host/bin $$GNU_TARGET_NAME \
|
||||||
|
> $(OUT_DIR)/toolchain-params.mk
|
||||||
|
endef
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
$(OUT_DIR)/.config:
|
||||||
|
ifndef BOARD
|
||||||
|
@echo "Variable BOARD must be defined to initialize output directory" >&2 && exit 1
|
||||||
|
endif
|
||||||
|
$(BOARD_MAKE) BR2_DEFCONFIG=$(BR_EXT_DIR)/configs/$(BOARD)_defconfig defconfig
|
||||||
|
|
||||||
|
|
||||||
|
$(OUT_DIR)/toolchain-params.mk: $(OUT_DIR)/.config $(SCRIPTS_DIR)/create_toolchain_binding.sh
|
||||||
|
$(CREATE_TOOLCHAIN_PARAMS)
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# build all needed for a board
|
||||||
|
all: $(OUT_DIR)/.config $(OUT_DIR)/toolchain-params.mk
|
||||||
|
$(BOARD_MAKE) all
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# re-create params file
|
||||||
|
toolchain-params:
|
||||||
|
$(CREATE_TOOLCHAIN_PARAMS)
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# create rootfs image that contains original Buildroot target dir overlayed by some custom layers
|
||||||
|
# space-separated list of overlays
|
||||||
|
|
||||||
|
ROOTFS_OVERLAYS ?=
|
||||||
|
# overlayed rootfs directory
|
||||||
|
ROOTFS_OVERLAYED_DIR ?= $(OUT_DIR)/target-overlayed
|
||||||
|
# overlayed rootfs image's name (without prefix)
|
||||||
|
ROOTFS_OVERLAYED_IMAGE ?= rootfs-overlayed
|
||||||
|
|
||||||
|
overlayed-rootfs-%: $(OUT_DIR)/.config
|
||||||
|
$(SCRIPTS_DIR)/create_overlayed_rootfs.sh $(ROOTFS_OVERLAYED_DIR) $(OUT_DIR)/target $(ROOTFS_OVERLAYS)
|
||||||
|
$(BOARD_MAKE) $(subst overlayed-,,$@) \
|
||||||
|
BASE_TARGET_DIR=$(abspath $(ROOTFS_OVERLAYED_DIR)) \
|
||||||
|
ROOTFS_$(call UPPERCASE,$(subst overlayed-rootfs-,,$@))_FINAL_IMAGE_NAME=$(ROOTFS_OVERLAYED_IMAGE).$(subst overlayed-rootfs-,,$@)
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
board-info:
|
||||||
|
@cat $(BR_EXT_DIR)/board/$(BOARD)/config | grep RAM_LINUX_SIZE
|
||||||
|
$(eval VENDOR := $(shell echo $(BOARD) | cut -d "_" -f 1))
|
||||||
|
$(eval FAMILY := $(shell cat $(BR_EXT_DIR)/board/$(BOARD)/config | grep FAMILY | cut -d "=" -f 2))
|
||||||
|
$(eval CHIP := $(shell echo $(BOARD) | cut -d "_" -f 3))
|
||||||
|
@cat $(BR_EXT_DIR)/board/$(FAMILY)/$(CHIP).config
|
||||||
|
@cat $(BR_EXT_DIR)/board/$(BOARD)/config
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# such targets (with trimmed `br-` prefix) are passed to Buildroot's Makefile
|
||||||
|
br-%: $(OUT_DIR)/.config
|
||||||
|
$(BOARD_MAKE) $(subst br-,,$@)
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
run-tests:
|
||||||
|
$(MAKE) -C $(ROOT_DIR)/tests
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# there are some extra targets of specific packages
|
||||||
|
include $(sort $(wildcard $(ROOT_DIR)/extra/*.mk))
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# util stuff is below
|
||||||
|
UPPERCASE = $(shell echo $(1) | tr a-z A-Z)
|
|
@ -0,0 +1,68 @@
|
||||||
|
# openipc-v2.0
|
||||||
|
|
||||||
|
OpenIPC v2.0 based on Buildroot
|
||||||
|
|
||||||
|
[](https://github.com/FlyRouter/openipc-v2.0/actions/workflows/main.yml)
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
## Quick Start for Hi3516Ev300
|
||||||
|
|
||||||
|
```
|
||||||
|
make prepare
|
||||||
|
make -j$(($(nproc)+1)) BOARD=unknown_unknown_hi3516ev300_unknown all
|
||||||
|
```
|
||||||
|
|
||||||
|
Execute the commands above and your files will be in the directory **output/images**
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
## ToDo support
|
||||||
|
|
||||||
|
* br-ext-chip-anyka
|
||||||
|
* br-ext-chip-fullhan
|
||||||
|
* br-ext-chip-goke
|
||||||
|
* br-ext-chip-grainmedia
|
||||||
|
* br-ext-chip-ingenic
|
||||||
|
|
||||||
|
* br-ext-chip-infineon
|
||||||
|
|
||||||
|
-----
|
||||||
|
|
||||||
|
## Other strings
|
||||||
|
|
||||||
|
```
|
||||||
|
#
|
||||||
|
# make help
|
||||||
|
# make install-deps
|
||||||
|
# make prepare
|
||||||
|
# make list-configs
|
||||||
|
#
|
||||||
|
# make busybox-{dirclean,rebuild}
|
||||||
|
# make fwprintenv-ng-{dirclean,rebuild}
|
||||||
|
# make hisilicon-osdrv4-{dirclean,rebuild}
|
||||||
|
# make ipctool-{dirclean,rebuild}
|
||||||
|
# make jpeg-turbo-{dirclean,rebuild}
|
||||||
|
# make libevent-mini-{dirclean,rebuild}
|
||||||
|
# make linux-{dirclean,rebuild}
|
||||||
|
# make majestic-{dirclean,rebuild}
|
||||||
|
# make uboot-tools-fwprintenv-{dirclean,rebuild}
|
||||||
|
#
|
||||||
|
# make BOARD=unknown_unknown_hi3516ev300_unknown board-info
|
||||||
|
# make BOARD=unknown_unknown_hi3516ev300_unknown all && 2dolphin
|
||||||
|
#
|
||||||
|
# make BOARD=unknown_unknown_xm530_unknown board-info
|
||||||
|
# make BOARD=unknown_unknown_xm530_unknown all
|
||||||
|
#
|
||||||
|
# cd output ; make sdk
|
||||||
|
#
|
||||||
|
# tag="v21.04.10.3"
|
||||||
|
#
|
||||||
|
# git pull
|
||||||
|
# git push
|
||||||
|
# git tag ${tag} -m "Jump to ${tag}"
|
||||||
|
# git push origin --tags
|
||||||
|
# git push --follow-tags
|
||||||
|
#
|
||||||
|
```
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
# Experimental project - openipc-2.1
|
# Experimental project - openipc-2.1
|
||||||
|
|
||||||
**All information about the project is available in our [Wiki](https://github.com/OpenIPC/openipc-2.1/wiki)**
|
**All information about the project is available in our [Wiki](https://github.com/OpenIPC/openipc-2.1/wiki)**
|
||||||
|
|
||||||
|
[](https://github.com/OpenIPC/openipc-2.1/actions/workflows/hi3516ev200_images.yml)
|
||||||
|
|
||||||
|
[](https://github.com/OpenIPC/openipc-2.1/actions/workflows/hi3516ev300_images.yml)
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DST=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
rm -rf $DST
|
||||||
|
mkdir -p $DST
|
||||||
|
|
||||||
|
while [[ $# -ge 1 ]]; do
|
||||||
|
echo "Put layer '$1' onto '$DST'..." >&2
|
||||||
|
# if cp -r $1/* $DST/; then
|
||||||
|
if rsync -a --ignore-times --chmod=u=rwX,go=rX --exclude .empty $1/ $DST/; then
|
||||||
|
echo "DONE" >&2
|
||||||
|
else
|
||||||
|
echo "FAILED" >&2
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
TOOLCHAIN_DIR=$1
|
||||||
|
TOOLCHAIN_PREFIX=$2
|
||||||
|
|
||||||
|
cat - << EOF
|
||||||
|
# THIS FILE IS GENERATED BY $(readlink -f $0)
|
||||||
|
|
||||||
|
TOOLCHAIN_DIR := $TOOLCHAIN_DIR
|
||||||
|
TOOLCHAIN_PREFIX := $TOOLCHAIN_PREFIX
|
||||||
|
|
||||||
|
TOOLCHAIN := \$(TOOLCHAIN_DIR)/\$(TOOLCHAIN_PREFIX)
|
||||||
|
|
||||||
|
CC := \$(TOOLCHAIN)-gcc
|
||||||
|
AR := \$(TOOLCHAIN)-ar
|
||||||
|
LD := \$(TOOLCHAIN)-ld
|
||||||
|
RANLIB := \$(TOOLCHAIN)-ranlib
|
||||||
|
NM := \$(TOOLCHAIN)-nm
|
||||||
|
STRIP := \$(TOOLCHAIN)-strip
|
||||||
|
EOF
|
||||||
|
|
||||||
|
EXTRA_BINS=(go gofmt m4 swig)
|
||||||
|
|
||||||
|
for I in ${EXTRA_BINS[*]}; do
|
||||||
|
if [ -e $TOOLCHAIN_DIR/$I ]; then
|
||||||
|
echo "${I^^} := \$(TOOLCHAIN_DIR)/$I"
|
||||||
|
fi
|
||||||
|
done
|
Loading…
Reference in New Issue