宿主机:MacBook Pro M3 Max
虚拟机:Orbstack Ubuntu 24.04 LTS ARM64版本
设备:rockchip rk3566
uboot、kernel: rockchip官方SDK
rootfs:ubuntu24.04.4 base

一、环境配置(虚拟机操作)

执行以下命令安装依赖,确保编译环境正常:

sudo apt update
sudo apt upgrade -y
sudo apt install -y git build-essential bc bison flex libssl-dev libncurses5-dev device-tree-compiler checkinstall libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev swig lz4 wget

wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
tar -xvf Python-2.7.18.tgz
cd Python-2.7.18
./configure --enable-optimizations CFLAGS=-fPIC
sudo make altinstall
cd ..
sudo rm -rf Python-2.7.18
# 建立python2软链接,解决部分工具依赖问题
sudo ln -s /usr/local/bin/python2.7 /usr/bin/python
sudo ln -s /usr/local/bin/python2.7 /usr/bin/python2

二、下载Rockchip官方SDK(虚拟机操作)

cd ~
git clone https://github.com/rockchip-linux/u-boot.git
git clone https://github.com/rockchip-linux/kernel.git --depth 1 --branch develop-6.6 
#具体内核版本可自选
git clone https://github.com/rockchip-linux/rkbin.git

三、制作U-Boot(虚拟机操作)

cd ~/u-boot

vim include/command.h
// 原代码
int cmd_process(int flag, int argc, char * const argv[],
// 修改后
enum command_ret_t cmd_process(int flag, int argc, char * const argv[],

vim common/edid.c
// 原代码
u8 dbl, hdmi_len, video_len = 0;
// 修改后
u8 dbl, hdmi_len = 0, video_len = 0;

./make.sh rk3566 CROSS_COMPILE=aarch64-linux-gnu-
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make u-boot.itb -j32
# 说明:-j32可根据宿主机性能调整,建议不超过24,避免资源占用过高

四、制作Kernel(虚拟机操作)

cd ~/kernel
# 说明:需提前准备tspi相关DTS文件,执行以下命令拷贝并修改波特率
cp tspi* ./arch/arm64/boot/dts/rockchip/* # 修改泰山派debug波特率为115200并拷贝
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make rockchip_linux_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make tspi-rk3566-user-v10-linux.img -j32

五、制作Rootfs(虚拟机操作)

cd ~
sudo wget https://cdimage.ubuntu.com/ubuntu-base/releases/24.04/release/ubuntu-base-24.04.4-base-armhf.tar.gz

sudo mkdir ubuntu2404-rootfs
sudo tar -xvpf ubuntu-base-24.04.4-base-armhf.tar.gz -C ubuntu2404-rootfs

sudo cp /etc/resolv.conf ./ubuntu2404-rootfs/etc/resolv.conf

# 挂载系统目录,为chroot环境做准备
sudo mount -o bind /dev ./ubuntu2404-rootfs/dev
sudo mount -o bind /proc ./ubuntu2404-rootfs/proc
sudo mount -o bind /sys ./ubuntu2404-rootfs/sys
sudo mount -o bind /run ./ubuntu2404-rootfs/run
sudo chroot ./ubuntu2404-rootfs /bin/bash

挂载镜像中命令

apt update
apt upgrade -y
apt install -y sudo udev vim wget net-tools ethtool ifupdown iputils-ping openssh-server git
#根据硬件情况安装驱动
passwd root
# 说明:执行后按提示输入密码,建议记录密码,用于后续登录
exit

回到虚拟机中继续执行

sudo umount -l ./ubuntu2404-rootfs/run
sudo umount -l ./ubuntu2404-rootfs/sys
sudo umount -l ./ubuntu2404-rootfs/proc
sudo umount -l ./ubuntu2404-rootfs/dev

sudo dd if=/dev/zero of=ubuntu2404_base.img bs=1M count=4096
sudo mkfs.ext4 -F -L rootfs ubuntu2404_base.img # 修正原命令卷标错误
mkdir -p mnt 
sudo mount -o loop ubuntu2404_base.img mnt/
sudo cp -rfp ./ubuntu2404-rootfs/* mnt/
sudo umount mnt/
rm -rf mnt/
sudo e2fsck -p -f ubuntu2404_base.img
sudo resize2fs -M ubuntu2404_base.img

六、烧录前准备(宿主机操作)

# 说明:将以下文件拷贝到同一目录(建议通过Orbstack共享文件夹传递)
cp rk356x_spl_loader_v1.23.114.bin .
cp u-boot.itb .
cp boot.img .
cp ubuntu2404_base.img .
vim parameter.txt

将以下内容写入parameter.txt(直接复制粘贴):

FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3566
MACHINE_ID: 007
MANUFACTURER: KINDAVID
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00020000@0x00008000(boot),0x00c00000@0x00040000(rootfs)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9

七、设备烧录(宿主机操作)

说明:Mac需提前通过brew安装rkdeveloptool(brew install rkdevelop),设备进入maskrom模式后连接Mac。

rkdeveloptool ld
# 说明:执行后确认设备已识别

rkdeveloptool db rk356x_spl_loader_v1.23.114.bin

rkdeveloptool ef

rkdeveloptool gpt parameter.txt
rkdeveloptool ppt

rkdeveloptool ul rk356x_spl_loader_v1.23.114.bin
rkdeveloptool wl 0x4000 u-boot.itb
rkdeveloptool wl 0x8000 boot.img
rkdeveloptool wl 0x40000 ubuntu2404_base.img
rkdeveloptool rd
# 说明:rd命令执行后设备重启,烧录完成
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐