【超级详细】正点原子RK3588安装和编译SDK
一、安装 RK3588 Linux SDK包
参考文档:
开发板光盘A盘-基础资料\10、用户手册\02、开发文档\02【正点原子】ATK-DLRK3588嵌入式Linux系统开发手册V1.1.pdf视频:第6.1讲 Linux SDK包编译与使用-SDK包全编译(必做)_哔哩哔哩_bilibili
1、首先在Ubuntu系统下安装SDK编译环境所依赖的软件包,命令如下
sudo apt-get update && sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev libmpc-dev bc python-is-python3 python2
2、设置 DNS 支持 kgithub.com,命令如下
sudo sed -i '$a 43.154.68.204\tkgithub.com' /etc/hosts
sudo sed -i '$a 43.155.83.75\traw.kgithub.com objects.githubusercontent.kgithub.com' /etc/hosts
3、配置Git
使用 repo 之前需要配置自己的 git 信息
git config --global user.name "your name"
git config --global user.email "your email"
4、查看自己的配置信息
git config --list
5、将下面的文件传输到Ubuntu虚拟机中,我放在了/home/alientek
文件路径:
开发板光盘B盘-开发环境及SDK\02、ATK-DLRK3588开发板SDK\01、linux_sdk\atk-rk3588_linux_release_v1.2_20250104.tgz
注:在路径
zhengdianyuanziRK3588\开发板光盘B盘-开发环境及SDK\02、ATK-DLRK3588开发板SDK\06、linux_r8_sdk下还有一个atk-rk3588_linux_release_R8_v1.0_20250104.tgz文件,这跟R8主要是支持Buildroot系统可以同时使用4路IMX415摄像头的功能。我只有一个摄像头,就没有使用这个
6、解压,命令如下
mkdir ~/rk3588_linux_sdk
tar xvf atk-rk3588_linux_release_v1.2_20250104.tgz -C ~/rk3588_linux_sdk
7、同步。依次执行如下步骤:
-  解压完成后,~/rk3588_linux_sdk/目录下会存在一个.repo 文件夹 
  
-  检出源码,命令如下 cd ~/rk3588_linux_sdk/ .repo/repo/repo sync -l -j10 repo 
等待…
-  同步完成后, ~/rk3588_linux_sdk/目录下的内容如下所示 
8、安装第三方开源库
在编译根文件系统时会通过网络下载很多第三方开源库,很费时。这里我们直接提前把所需的第三方开源库拷贝到 SDK 中
文件路径:
开发板光盘B盘-开发环境及SDK\02、ATK-DLRK3588开发板SDK\01、linux_sdk\dl.tgz
- 将上面的dl.tgz传输到Ubuntu虚拟机中。然后解压,命令如下
tar -xzf dl.tgz -C ~/rk3588_linux_sdk/buildroot/
二、SDK包全自动编译
1、进入到 SDK 根目录下,依次执行如下命令
./build.sh lunch
2
alientek_rk3588_defconfig
回车
Tips:
进入到 SDK 根目录下,直接执行如下命令即可
./build.sh alientek_rk3588_defconfig
注:
build.sh是 RK 封装好的一个编译脚本,可以快速构建出系统镜像文件以及对镜像进行打包操作,既可以一键全自动编译整个 Linux SDK,也可以单独编译 U-Boot、 Linux Kernel、buildroot 等!- 使用命令
./build.sh -h可以查看 build.sh 脚本的使用方法
2、选择屏幕,进入SDK 根目录下,执行如下命令
vi kernel/arch/arm64/boot/dts/rockchip/rk3588-atk-screen_choose.dtsi
正点原子 5.5 寸 1080x1920(竖屏)MIPI 屏
正点原子 5.5 寸 720x1280(竖屏)MIPI 屏
正点原子 10.1 寸 800x1280(竖屏)MIPI 屏
标准 HDMI 显示屏(通过 HDMI 线连接)
标准 DP 显示屏(通过 type-c 转 dp 线连接)
-  我的是正点原子 5.5 寸 1080x1920(竖屏)MIPI 屏,保留HDMI和DP。所以,保持默认如下:  
3、进入到 SDK 根目录下,开始自动编译整个 Linux SDK
./build.sh all
4、出现Running 99-all.sh - build_all succeeded.就是成功了
 5、编译完成后,生成的镜像存放在 output/firmware/目录
三、SDK单独编译
单独编译 U-Boot
-  在 SDK根目录下执行如下命令./build.sh uboot
-  编译完成后,会生成两个镜像文件: uboot.img和MiniLoaderAll.bin,镜像存放在output/firmware/目录
单独编译Linux内核
-  在 SDK根目录下执行如下命令./build.sh kernel # 编译内核 ./build.sh recovery # 编译 recovery
-  编译完成后,生成 boot.img和recovery.img,镜像存放在output/firmware/目录
单独编译 Linux 内核模块
-  在 SDK根目录下执行如下命令./build.sh modules
单独编译 rootfs
-  在 SDK根目录下执行如下命令单独编译buildroot根文件系统./build.sh buildroot
-  编译完成后,生成 buildroot根文件系统镜像rootfs.img,镜像存放在output/firmware/目录
单独编译 recovery
-  在 SDK根目录下执行如下命令./build.sh recovery
-  编译完成后,生成 recovery.img,该镜像存放在output/firmware/目录
制作 update.img 固件
-  update.img 固件是多个镜像的集合体,它由多个镜像打包而成。 
-  在 SDK 根目录下执行如下命令,可以将output/firmware/目录下的各分立镜像打包成一个 update.img 固件 ./build.sh updateimg
四、SDK清理
-  在 SDK 根目录下执行如下命令可对整个 SDK 进行清理: ./build.sh cleanall
-  执行如下命令可以对各模块进行清理: # 清理 U-Boot ./build.sh clean:loader # 清理 Linux 内核 ./build.sh clean:kernel # 清理 recovery ./build.sh clean:recovery # 清理 rootfs ./build.sh clean:rootfs
SDK瘦身
如果 Ubuntu 磁盘空间比较紧张,可以对 SDK 进行瘦身,将 SDK 根目录下的.repo(隐藏文件夹,使用 ls-a 可看到)文件夹删除、可释放出一部分磁盘空间;注意,.repo 文件夹中保存了SDK 所有仓库的 git 提交记录,一旦删除,后续将无法查看到任何仓库的 git 提交信息,所以不建议用户删除。
