Compiling RK3568 SDK Guide

From Ariaboard Wiki
Revision as of 20:34, 25 September 2024 by C2h2 (talk | contribs)
Jump to navigation Jump to search

Create Debian System Image (Rockchip Official)

Host System Requirements

Debian 11 (bullseye) or Ubuntu 20.04. with Memory >= 16GB and disk space >= 100GB.

Compiling Requirements

Install the necessary packages on Debian/Ubuntu systems:

sudo apt-get install build-essential flex bison genext2fs

Get Repo files by tarball(with .git)

Download your SDK: (replace url with your given url)

wget https://dl.photonicat.com/repos/rk3568-debian-source-20220927.tar.xz

Build system image

Run the command below:

./build.sh

The output path is rockdev, system image path is rockdev/pack

Build Debian/Ubuntu system image (mainline u-boot & kernel)

Check README in https://github.com/photonicat/rockchip_rk3568_linux_mainline for building system image.

Build OpenWRT

Photonicat image contains following packages:

  1. OpenWRT (within rk3568-linux-sdk which builds bootloader, uboot, kernel and OpenWRT)
  2. pcat-manager (within rk3568-linux-sdk)
  3. pcat-manager-web (python closed source. install manually: e.g: https://dl.photonicat.com/repos/openwrt/volatile/pcat-manager-web_1.0.9-0_aarch64_cortex-a53.ipk, we need to change luci listen port to 8080.)
  4. quectel-cm (within rk3568-linux-sdk)

rk3568-linux-sdk will fetch uboot, kernel, openwrt, and copmile them in one build script.

In addition to default packages we have 3 more package for power and modem manager.

  • modem/power_manager (written in c)
  • web interface for displaying mobile modem and battery info. (written in python)
  • c program modem watchdog

Host System Requirements

Debian 11 (bullseye) or Ubuntu 20.04, other distributions may work but not tested.

Compiling Requirements

Please a NORMAL USER, not root

On Debian/Ubuntu systems, install the packages:

sudo apt update
sudo apt upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
   bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
   git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
   libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
   mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
   libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
   vim wget xmlto xxd zlib1g-dev

Get repo files

Get repo files from Github (non-root user):

git clone https://github.com/photonicat/rockchip_rk3568_openwrt.git
cd rockchip_rk3568_openwrt

Config build target

Run the command below:

./scripts/feeds update -a                 
./scripts/feeds install -a                                                                        
cp ./configs/base_defconfig .config

Build system image

Run the command below:

make

The output path is bin/targets/rockchip/armv8/, system image will be named like photonicatwrt-23.04-rxxxx+xx-xxxxxxxxx-rockchip-armv8-ariaboard_photonicat-squashfs-sysupgrade.img.gz

Edit your menuconfig (Optional)

make menuconfig

save and re-run build process again.

IPKs will be under:

bin/targets/rockchip/armv8/packages/

Build your own package, modules on OpenWRT (Optional)

Use

make menuconfig

to select

<M> package_name

for your desired package(s).

If you want to include your own packages to system image, see OpenWRT official documents https://openwrt.org/docs/guide-developer/packages for help.

Flash system images to the onboard eMMC

Prepare update tools and files:

git clone https://github.com/rockchip-linux/rkdeveloptool.git
cd rkdeveloptool
sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf
aclocal
autoreconf -i
autoheader
automake --add-missing
./configure
make
wget https://dl.photonicat.com/images/MiniLoaderAll.bin

Enter the firmware update mode, use A-to-A cable to connect USB OTG port to PC, and use the command below:

gunzip photonicatwrt-23.04-rxxxx+xx-xxxxxxxxx-rockchip-armv8-ariaboard_photonicat-squashfs-sysupgrade.img.gz #Replace file name with the one you get indeed.
sudo ./rkdeveloptool db MiniLoaderAll.bin
sudo ./rkdeveloptool wl 0 photonicatwrt-23.04-rxxxx+xx-xxxxxxxxx-rockchip-armv8-ariaboard_photonicat-squashfs-sysupgrade.img
sudo ./rkdeveloptool rd


How to modify your own version of kernel for openwrt

Compile rockchip_rk3568_openwrt with above steps.

Modify:

Recompile and done.

Photonicat Button Settings

功能 进入方式 状态提示
开机 关机状态下长按3秒 电源灯常亮
开机进入烧录模式 关机状态下短按3下,再长按10秒以上 电源灯闪烁(0.25秒亮,0.25秒暗)
开机恢复出厂设置 关机状态下短按1下,再长按17秒以上 电源灯闪烁(0.5秒亮,0.5秒暗)
关机 开机状态下长按3秒 电源灯熄灭
查看电量 短按1下 3个LED灯全闪2下,根据电量显示,3灯再次全闪2下退出(电量显示定义参见电量定义表)

Generic Button Settings

功能 进入方式 状态提示
开机进入烧录模式 关机状态下短按3下,再长按10秒以上 电源灯闪烁(0.25秒亮,0.25秒暗)
开机恢复MCU 关机状态下短按1下,再长按8秒以上 电源灯闪烁(0.5秒亮,0.5秒暗)