编译环境
这里提供两种编译方案,如果要直接编译就选方案一,如果想用docker编译就选方案二。
注意事项:
- SDK 采用交叉编译,所以要在 X86_64 电脑上使用 SDK,不要将 SDK 下载到板子上。
- 编译环境请使用 Ubuntu20.04(真机或 docker 容器),如果使用其他版本可能导致编译出错。
- 不要在虚拟机共享文件夹以及非英文目录存放、解压SDK。
- 获取、编译 SDK 请全程使用普通用户,不允许也不需要使用 root 权限(除非需要 apt 安装软件)
解压源码
准备事项,根据自己的情况有选择的配置
从下面链接下载源码,放到x86 Ubuntu主机或者虚拟机里面。
- 百度网盘 R1-Debian Sourcehttps://pan.baidu.com/s/1D6Z0Izd3LLC6GB6C_kUiqQ?pwd=1234 提取码: 1234
- 官方下载 R1-Debian Sourcehttp://dd.youyeetoo.cn:5000/sharing/KOnmowBRq
mkdir R1_Debian
cat r1_linux_release_v2.0_v3.0_20240928_sdk.tar.gz* | tar -zxvf - -C R1_Debian
cd R1_Debian
.repo/repo/repo sync -l
cd ..
tar -zxvf dl.tar.gz -C R1_Debian/buildroot/
编译方法
- 方案一: 直接编译
- 方案二: 使用docker搭建编译环境
软件依赖
安装源码编译需要的依赖
sudo apt update
sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib python2 unzip device-tree-compiler ncurses-dev
- 完整编译
- 分步编译
./build.sh BoardConfig-R1-Ubuntu.mk
./build.sh
完整编译得到完整的固件大小是3G多。烧录完整的固件花费的时间比较多,不利于驱动等程序调试。这里提供分步编译,需要
- 单独编译
uboot
cd u-boot
./make.sh rk3588
- 单独编译
kernel
cd kernel
make CROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rockchip_linux_defconfig rk3588_linux.config
make CROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rk3588s-yyt.img
- 单独编译
reocvery
./build.sh recovery
- 打包完整固件
./build.sh firmware
./build.sh updateimg
软件依赖
安装源码编译需要的依赖
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo groupadd docker
sudo usermod -aG docker $USER
sudo reboot
sudo systemctl status docker
- 完整编译
- 分步编译
./docker/docker-rm.sh
./docker/docker-start.sh
./build.sh BoardConfig-R1-Ubuntu.mk
./build.sh
- 开启docker编译环境
./docker/docker-rm.sh
./docker/docker-start.sh
- 单独编译
uboot
cd u-boot
./make.sh rk3588
- 单独编译
kernel
cd kernel
make CROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rockchip_linux_defconfig rk3588_linux.config
make CROSS_COMPILE=../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64 rk3588s-yyt.img
- 单独编译
reocvery
./build.sh recovery
- 打包完整固件
./build.sh firmware
./build.sh updateimg