Add preliminary support for Rockchip RV11XX

pull/234/head
Dmitry Ermakov 2022-05-24 20:41:02 +03:00
parent 59786da6bc
commit f590512596
61 changed files with 2166536 additions and 0 deletions

View File

@ -0,0 +1,138 @@
name: "RV1109"
on:
push:
branches:
- production
tags:
- "v*"
# schedule:
# - cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for RV1109
runs-on: ubuntu-latest
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
echo "BOARD=rv1109" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build RV1109 firmware
id: build-rv1109-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-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=rockchip BOARD=unknown_unknown_${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) ... ${BOARD}" >> $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}" >> $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 warning message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-rv1109-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD}}"
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.${{ env.BOARD }}-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- 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_NAND }}
asset_name: openipc.${{ env.BOARD }}-nand-br.tgz
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 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -0,0 +1,138 @@
name: "RV1126"
on:
push:
branches:
- production
tags:
- "v*"
# schedule:
# - cron: "00 03 * * *"
workflow_dispatch:
jobs:
build_core:
name: OpenIPC firmware for RV1126
runs-on: ubuntu-latest
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
echo "BOARD=rv1126" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
make prepare
- name: Build RV1126 firmware
id: build-rv1126-firmware
continue-on-error: true
run: |
ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-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=rockchip BOARD=unknown_unknown_${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) ... ${BOARD}" >> $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}" >> $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 warning message to telegram channel
env:
TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
if: steps.build-rv1126-firmware.outcome != 'success'
run: |
TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD}}"
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.${{ env.BOARD }}-br.tgz
tag: ${{ env.TAG_NAME }}
overwrite: true
- 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_NAND }}
asset_name: openipc.${{ env.BOARD }}-nand-br.tgz
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 30 --max-time 30"
TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
-F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"

View File

@ -0,0 +1,28 @@
source "$BR2_EXTERNAL_ROCKCHIP_PATH/linux/Config.ext.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/rockchip_patcher/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/aura-httpd/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/dropbear-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/fdk-aac-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/fwprintenv-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/ipctool/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/json-c-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/lame-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/libcurl-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/libevent-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/libhv-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/libogg-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/libsrt-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/libwebsockets-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/linux-firmware-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/majestic-fonts/Config.in"
# source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/majestic-rv11xx/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/mbedtls-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/microbe-web/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/motors/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/node-exporter/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/rockchip-osdrv-rv11xx/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/opus-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/rtl8188fu-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/uacme-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/vtund-openipc/Config.in"
source "$BR2_EXTERNAL_ROCKCHIP_PATH/package/yaml-cli/Config.in"

View File

@ -0,0 +1,11 @@
--- a/scripts/dtc/dtc-lexer.l 2019-12-21 12:57:45.000000000 +0300
+++ b/scripts/dtc/dtc-lexer.l 2021-10-24 16:01:38.478555927 +0300
@@ -38,7 +38,7 @@
#include "srcpos.h"
#include "dtc-parser.tab.h"
-YYLTYPE yylloc;
+extern YYLTYPE yylloc;
extern bool treesource_error;
/* CAUTION: this will stop working if we ever use yyless() or yyunput() */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
MEM_START_ADDR=0x00000000
KERNEL_UPLOAD_ADDR=0x00200800

View File

@ -0,0 +1,2 @@
MEM_START_ADDR=0x00000000
KERNEL_UPLOAD_ADDR=0x00200800

View File

@ -0,0 +1,10 @@
VENDOR=unknown
MODEL=unknown
FAMILY=rv11xx
CHIP=rv1109
RAM_SIZE=512M
RAM_LINUX_SIZE=64M
RAM_MPP_SIZE=392M
ROM_SIZE=?
CMOS=unknown
UBOOT_SIZE=1024K

View File

@ -0,0 +1,10 @@
VENDOR=unknown
MODEL=unknown
FAMILY=rv11xx
CHIP=rv1126
RAM_SIZE=1024M
RAM_LINUX_SIZE=64M
RAM_MPP_SIZE=960M
ROM_SIZE=?
CMOS=unknown
UBOOT_SIZE=1024K

View File

@ -0,0 +1,109 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_FPU_NEON_VFPV4=y
# BR2_ARM_INSTRUCTIONS_THUMB2=y
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="4.19.111"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
# Toolchain
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_GCC_VERSION_7_X=y
BR2_GCC_ENABLE_LTO=y
BR2_GCC_ENABLE_OPENMP=y
BR2_GCC_ENABLE_GRAPHITE=y
# BR2_TOOLCHAIN_USES_UCLIBC is not set
# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set
# BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc"
# BR2_TOOLCHAIN_USES_MUSL is not set
# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set
# BR2_TOOLCHAIN_BUILDROOT_LIBC="musl"
BR2_TOOLCHAIN_USES_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.111"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_ROCKCHIP_PATH)/board/rv11xx/kernel/rv1109.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y
BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER=y
BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER_LIST="$(BR2_EXTERNAL_ROCKCHIP_PATH)/board/rv11xx/kernel/patches/ $(BR2_EXTERNAL_ROCKCHIP_PATH)/board/rv11xx/kernel/overlay"
# Filesystem
# BR2_TARGET_TZ_INFO is not set
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_TARGET_ROOTFS_UBI=y
BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048
BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(TOPDIR)/../scripts/ubinize.cfg"
BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
BR2_ROOTFS_OVERLAY="$(TOPDIR)/../general/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(TOPDIR)/../scripts/executing_commands_for_$(BR2_TOOLCHAIN_BUILDROOT_LIBC).sh"
# OpenIPC configuration
BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc"
BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC v2.2"
BR2_TARGET_GENERIC_HOSTNAME="openipc-rv1109"
BR2_GLOBAL_PATCH_DIR="$(TOPDIR)/../general/package/all-patches"
# OpenIPC packages
BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config"
BR2_PACKAGE_DROPBEAR_OPENIPC=y
# BR2_PACKAGE_FDK_AAC_OPENIPC is not set
BR2_PACKAGE_FWPRINTENV_OPENIPC=y
BR2_PACKAGE_HASERL=y
# BR2_PACKAGE_ROCKCHIP_OSDRV_RV11xx=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSON_C=y
BR2_PACKAGE_LAME_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
BR2_PACKAGE_LIBYAML=y
BR2_PACKAGE_MAJESTIC_FONTS=y
# BR2_PACKAGE_MAJESTIC_RV11xx is not set
BR2_PACKAGE_MBEDTLS_OPENIPC=y
# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
BR2_PACKAGE_MICROBE_WEB=y
# BR2_PACKAGE_MINI_SNMPD is not set
BR2_PACKAGE_MOTORS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
# BR2_PACKAGE_SSHPASS is not set
BR2_PACKAGE_UACME_OPENIPC=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
# WiFi
# BR2_PACKAGE_WIRELESS_TOOLS is not set
# BR2_PACKAGE_WPA_SUPPLICANT is not set
# BR2_PACKAGE_WPA_SUPPLICANT_CLI is not set
# BR2_PACKAGE_WPA_SUPPLICANT_NL80211 is not set
# BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE is not set
# BR2_PACKAGE_LINUX_FIRMWARE is not set
# BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U is not set
# BR2_PACKAGE_RTL8188EU is not set
# WIREGUARD
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y

View File

@ -0,0 +1,109 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_FPU_NEON_VFPV4=y
# BR2_ARM_INSTRUCTIONS_THUMB2=y
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="4.19.111"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y
# Toolchain
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_GCC_VERSION_7_X=y
BR2_GCC_ENABLE_LTO=y
BR2_GCC_ENABLE_OPENMP=y
BR2_GCC_ENABLE_GRAPHITE=y
# BR2_TOOLCHAIN_USES_UCLIBC is not set
# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set
# BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc"
# BR2_TOOLCHAIN_USES_MUSL is not set
# BR2_TOOLCHAIN_BUILDROOT_MUSL is not set
# BR2_TOOLCHAIN_BUILDROOT_LIBC="musl"
BR2_TOOLCHAIN_USES_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.111"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_ROCKCHIP_PATH)/board/rv11xx/kernel/rv1126.generic.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y
BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER=y
BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER_LIST="$(BR2_EXTERNAL_ROCKCHIP_PATH)/board/rv11xx/kernel/patches/ $(BR2_EXTERNAL_ROCKCHIP_PATH)/board/rv11xx/kernel/overlay"
# Filesystem
# BR2_TARGET_TZ_INFO is not set
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_TARGET_ROOTFS_UBI=y
BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048
BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(TOPDIR)/../scripts/ubinize.cfg"
BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
BR2_ROOTFS_OVERLAY="$(TOPDIR)/../general/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(TOPDIR)/../scripts/executing_commands_for_$(BR2_TOOLCHAIN_BUILDROOT_LIBC).sh"
# OpenIPC configuration
BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc"
BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC v2.2"
BR2_TARGET_GENERIC_HOSTNAME="openipc-rv1126"
BR2_GLOBAL_PATCH_DIR="$(TOPDIR)/../general/package/all-patches"
# OpenIPC packages
BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config"
BR2_PACKAGE_DROPBEAR_OPENIPC=y
# BR2_PACKAGE_FDK_AAC_OPENIPC is not set
BR2_PACKAGE_FWPRINTENV_OPENIPC=y
BR2_PACKAGE_HASERL=y
# BR2_PACKAGE_ROCKCHIP_OSDRV_RV11xx=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSON_C=y
BR2_PACKAGE_LAME_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
BR2_PACKAGE_LIBYAML=y
BR2_PACKAGE_MAJESTIC_FONTS=y
# BR2_PACKAGE_MAJESTIC_RV11xx is not set
BR2_PACKAGE_MBEDTLS_OPENIPC=y
# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
BR2_PACKAGE_MICROBE_WEB=y
# BR2_PACKAGE_MINI_SNMPD is not set
BR2_PACKAGE_MOTORS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
# BR2_PACKAGE_SSHPASS is not set
BR2_PACKAGE_UACME_OPENIPC=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
# WiFi
# BR2_PACKAGE_WIRELESS_TOOLS is not set
# BR2_PACKAGE_WPA_SUPPLICANT is not set
# BR2_PACKAGE_WPA_SUPPLICANT_CLI is not set
# BR2_PACKAGE_WPA_SUPPLICANT_NL80211 is not set
# BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE is not set
# BR2_PACKAGE_LINUX_FIRMWARE is not set
# BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U is not set
# BR2_PACKAGE_RTL8188EU is not set
# WIREGUARD
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y

View File

@ -0,0 +1,2 @@
name: ROCKCHIP
desc: Buildroot external tree for Rockchip based IP cameras

View File

@ -0,0 +1,28 @@
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/linux/linux-ext-rockchip_patcher.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip_patcher/rockchip_patcher.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/aura-httpd/aura-httpd.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/dropbear-openipc/dropbear-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/fdk-aac-openipc/fdk-aac-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/fwprintenv-openipc/fwprintenv-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/ipctool/ipctool.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/json-c-openipc/json-c-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/lame-openipc/lame-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/libcurl-openipc/libcurl-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/libevent-openipc/libevent-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/libhv-openipc/libhv-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/libogg-openipc/libogg-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/libsrt-openipc/libsrt-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/libwebsockets-openipc/libwebsockets-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/linux-firmware-openipc/linux-firmware-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/majestic-fonts/majestic-fonts.mk
# include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/majestic-rv11xx/majestic-rv11xx.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/microbe-web/microbe-web.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/motors/motors.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/node-exporter/node-exporter.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/rockchip-osdrv-rv11xx.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/opus-openipc/opus-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rtl8188fu-openipc/rtl8188fu-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/uacme-openipc/uacme-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/vtund-openipc/vtund-openipc.mk
include $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/yaml-cli/yaml-cli.mk

View File

@ -0,0 +1,15 @@
config BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER
bool "Rockchip kernel patches"
select BR2_PACKAGE_ROCKCHIP_PATCHER
help
Patch Kernel for Rockchip boards
if BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER
config BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER_LIST
string "Patch list"
help
Space-separated list of patches to be applied
endif # BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER

View File

@ -0,0 +1,11 @@
################################################################################
#
# linux_kernel_ext_rockchip_patcher
#
################################################################################
LINUX_EXTENSIONS += rockchip_patcher
define ROCKCHIP_PATCHER_PREPARE_KERNEL
$(ROCKCHIP_PATCHER_PKGDIR)/apply.sh $(@D) $(BR2_LINUX_KERNEL_EXT_ROCKCHIP_PATCHER_LIST)
endef

View File

@ -0,0 +1 @@
../../general/package/aura-httpd

View File

@ -0,0 +1 @@
../../general/package/dropbear-openipc

View File

@ -0,0 +1 @@
../../general/package/fdk-aac-openipc

View File

@ -0,0 +1 @@
../../general/package/fwprintenv-openipc

View File

@ -0,0 +1 @@
../../general/package/gdbserver-lite

View File

@ -0,0 +1 @@
../../general/package/ipctool

View File

@ -0,0 +1 @@
../../general/package/json-c-openipc

View File

@ -0,0 +1 @@
../../general/package/lame-openipc

View File

@ -0,0 +1 @@
../../general/package/libcurl-openipc

View File

@ -0,0 +1 @@
../../general/package/libevent-openipc

View File

@ -0,0 +1 @@
../../general/package/libhv-openipc

View File

@ -0,0 +1 @@
../../general/package/libogg-openipc

View File

@ -0,0 +1 @@
../../general/package/libsrt-openipc

View File

@ -0,0 +1 @@
../../general/package/libwebsockets-openipc

View File

@ -0,0 +1 @@
../../general/package/linux-firmware-openipc

View File

@ -0,0 +1 @@
../../general/package/majestic-fonts

View File

@ -0,0 +1 @@
../../general/package/majestic-rv11xx

View File

@ -0,0 +1 @@
../../general/package/mbedtls-openipc

View File

@ -0,0 +1 @@
../../general/package/microbe-web

View File

@ -0,0 +1 @@
../../general/package/motors

View File

@ -0,0 +1 @@
../../general/package/mt7601u-ap-openipc

View File

@ -0,0 +1 @@
../../general/package/node-exporter

View File

@ -0,0 +1 @@
../../general/package/opus-openipc

View File

@ -0,0 +1 @@
../../general/package/rockchip-osdrv-rv11xx

View File

@ -0,0 +1 @@
../../general/package/rockchip_patcher

View File

@ -0,0 +1 @@
../../general/package/rtl8188fu-openipc

View File

@ -0,0 +1 @@
../../general/package/uacme-openipc

View File

@ -0,0 +1 @@
../../general/package/uqmi

View File

@ -0,0 +1 @@
../../general/package/vtund-openipc

View File

@ -0,0 +1 @@
../../general/package/yaml-cli

View File

@ -419,6 +419,20 @@ msc313e() {
#################################################################################
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
@ -628,6 +642,11 @@ xm550() {
#
#######
#
# rv1109 # testing..
# rv1126 # testing..
#
#######
#
# msc313e # OpenIPC
#
# ssc325 # OpenIPC

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_ROCKCHIP_OSDRV_RV11XX
bool "rockchip-osdrv-rv11xx"
help
rockchip-osdrv-rv11xx - Rockchip kernel modules and libs
https://openipc.org

View File

@ -0,0 +1,75 @@
#!/bin/sh
DAEMON="majestic"
PIDFILE="/var/run/$DAEMON.pid"
DAEMON_ARGS="-s"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
load_majestic() {
printf 'Starting %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
# shellcheck disable=SC2086 # we need the word splitting
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \
-- $DAEMON_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
# The daemon does not create a pidfile, and use "-m" to instruct start-stop-daemon to create one.
start() {
logger -s -p daemon.info -t rockchip "Check MAC for rockchip devices"
if [ "$(fw_printenv -n ethaddr)" = "00:00:23:34:45:66" ]; then
logger -s -p daemon.info -t rockchip "The eth0 interface has a lousy MAC, let's try to change it.."
XMMAC="$(ipcinfo --xm_mac)" && [ -n "${XMMAC}" ] && fw_setenv ethaddr ${XMMAC} && reboot -f || logger -s -p daemon.info -t rockchip "It is not possible to install a new MAC on the eth0 interface.."
else
logger -s -p daemon.info -t rockchip "The eth0 interface has a correct MAC - $(fw_printenv -n ethaddr)"
fi
#
logger -s -p daemon.info -t rockchip "Loading of kernel modules and initialization of the video system has started"
export TZ=$(cat /etc/TZ)
#load_rockchip
#
export SENSOR=$(fw_printenv -n sensor)
#load_majestic
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
restart() {
stop
sleep 1
reload
}
reload() {
load_majestic
}
case "$1" in
start|stop|restart|reload)
"$1";;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

View File

@ -0,0 +1,33 @@
################################################################################
#
# rockchip-osdrv-rv11xx
#
################################################################################
ROCKCHIP_OSDRV_RV11XX_VERSION =
ROCKCHIP_OSDRV_RV11XX_SITE =
ROCKCHIP_OSDRV_RV11XX_LICENSE = MIT
ROCKCHIP_OSDRV_RV11XX_LICENSE_FILES = LICENSE
define ROCKCHIP_OSDRV_RV11XX_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/script/S95rockchip
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors
# $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/sensor/config/*
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.19.111/rockchip
# $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.19.111/rockchip $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/kmod/*.ko
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/script/load*
# $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/sample/*
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/sensor/*.so
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_ROCKCHIP_PATH)/package/rockchip-osdrv-rv11xx/files/lib/*.so
endef
$(eval $(generic-package))

View File

@ -0,0 +1,3 @@
config BR2_PACKAGE_ROCKCHIP_PATCHER
bool

View File

@ -0,0 +1,44 @@
#!/bin/bash
function log() {
echo "--- $@"
}
function apply_patch() {
DST=$1
SRC=$2
if [[ -d $SRC ]]; then
if [[ ${SRC:${#SRC}-1} != '/' ]]; then
log Apply \"$SRC\" as overlay directory
cp -r $SRC/* $DST/
else
log Apply \"$SRC\" as patches directory
for P in $SRC/*.patch; do
patch -d $DST -p1 < $P
done
fi
else
log Apply \"$SRC\" as single patch
patch -d $DST -p1 < $SRC
fi
}
function apply_patches() {
log Gonna apply "$@"
while [[ $# -ge 1 ]]; do
apply_patch $DST $1
shift
done
}
DST=$1
shift
if [ -f $DST/.rockchip-patched ]; then
log Patched already
exit
fi
apply_patches $@
touch $DST/.rockchip-patched

View File

@ -0,0 +1,12 @@
################################################################################
#
# novatek_patcher
#
################################################################################
NOVATEK_PATCHER_VERSION = 0.1
NOVATEK_PATCHER_INSTALL_TARGET = NO
NOVATEK_PATCHER_SITE =
NOVATEK_PATCHER_SOURCE =
$(eval $(generic-package))