正点原子rk3588编译sdk

1、编译SDK

1.1 安装 RK3588 Linux SDK

c 复制代码
.repo/repo/repo sync -l -j10

1.2 SDK 工程目录介绍

app:存放上层应用 app,包括 Qt 应用程序,以及其它的 C/C++应用程序。

buildroot:基于 buildroot 开发的根文件系统。

debian:基于 Debian 开发的根文件系统。

device/rockchip:存放各芯片板级配置文件和 Parameter 分区表文件,以及一些编译与

打包固件的脚本和预备文件。

docs:存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux 开发指

南等。

external:存放所需的第三方库,包括音频、视频、网络、recovery 等。

kernel:Linux 5.10 版本内核源码。

prebuilts:存放交叉编译工具链。

rkbin:存放 Rockchip 相关的 Binary 和工具。

rockdev:存放编译输出固件,编译 SDK 后才会生成该文件夹。

tools:存放 Linux 和 Windows 操作系统环境下常用的工具,包括镜像烧录工具、SD 卡升级启动制作工具、批量烧录工具等,譬如前面介绍的 RKDevTool 工具以及Linux_Upgrade_Tool 工具都存放在该目录。

u-boot:基于 v2017.09 版本进行开发的 uboot 源码。

yocto:基于 Yocto 开发的根文件系统。

1.3 全自动编译

指定板级配置文件

c 复制代码
./build.sh alientek_rk3588_defconfig

1.3.1 编译整个sdk

c 复制代码
./build.sh all

提示lz4: command not found

c 复制代码
sudo apt  install liblz4-tool

再次报错,提示我的lz4版本太老

c 复制代码
git clone https://github.com/lz4/lz4.git --depth 1 -b v1.9.4
cd lz4
sudo make install -j8

报错:Your gmp headers are missing

Your mpc headers are missing

Your unbuffer is missing

c 复制代码
sudo apt-get install libgmp-dev
sudo apt-get install libmpc-dev
sudo apt-get install expect expect-dev

1.3.2 单独编译 U-Boot

c 复制代码
./build.sh uboot

1.3.3 单独编译 Linux 内核

c 复制代码
./build.sh kernel # 编译内核

单独编译 Linux 内核模块:

c 复制代码
./build.sh modules

1.3.4单独编译 rootfs

c 复制代码
./build.sh buildroot

1.3.5 单独编译 recovery

c 复制代码
./build.sh recovery

2、查看系统分区情况:

c 复制代码
parted -l

3、进入 Uboot 命令行模式:

"Hit key to stop autoboot('CTRL+C'):"倒计时提示,倒计时结束之前按下

"CTRL+C"组合键就会进入 Uboot 命令行模式。

按reset进入系统:

4、U-Boot 开发

4.1 编译

在 U-Boot 源码目录下执行如下命令编译 U-Boot(SDK_PATH 指的是 SDK 根目录,需修改

为您的 SDK 根目录,使用绝对路径)

c 复制代码
./make.sh CROSS_COMPILE=/home/johan/share/rk3588/linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- rk3588


4.2 Uboot的配置:

c 复制代码
make rk3588_defconfig //选择配置文件
make menuconfig //打开图形化配置界面

保存配置:

c 复制代码
make savedefconfig //把配置信息保存到 defconfig 文件中
cp defconfig configs/rk3588_defconfig //用 defconfig 文件替换 rk3588_defconfig

5、kernel 开发

5.1 编译

c 复制代码
./make.sh board=ATK_DLRK3588

编译完成后,会生成内核镜像 Image、资源镜像 resource.img 以及内核 DTB。

它们并不单独烧录,会被打包成 boot.img(正常启动时加载)以及recovery.img(进入 recovery 模式时加载)。执行如下命令生成 boot.img:

c 复制代码
# 生成 boot.img
RK_KERNEL_DTB=arch/arm64/boot/dts/rockchip/rk3588-atk-devkit.dtb \
../device/rockchip/common/scripts/mk-fitimage.sh boot.img boot.its arch/arm64/boot/Image

5.2 kernel 的配置:

c 复制代码
make ARCH=arm64 rockchip_linux_defconfig //加载配置文件
make ARCH=arm64 menuconfig //打开图形化配置界面


保存配置:

c 复制代码
make ARCH=arm64 savedefconfig
cp defconfig arch/arm64/configs/rockchip_linux_defconfig
相关推荐
水饺编程21 分钟前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
便利店10241 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
qetfw1 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
其实防守也摸鱼2 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
toooooop82 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos
码少女3 小时前
Linux——UDP协议和TCP协议
linux·网络·udp·tcp
GeW3 小时前
新质生产力发展路线图Linux、数据库、AI 一个都不能少
linux
kkkkkkkkkk_Z3 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla3 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
Lsetea5 小时前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl