跳到主要内容

Linux系统编译说明

如开发环境未搭建,请参考Linux开发环境搭建

系统编译

1. sdk目录结构

device/rockchip/common/scripts/build.sh #sdk编译脚本
├── common -> device/rockchip/common #自动化编译脚本hook
├── Copyright_Statement.md -> docs/licenses/LICENSE #license
├── debian #debian构建目录
├── device #板型配置目录
├── docs #rockchip文档
├── external #rockchip模块组件包
├── hal #
├── kernel -> kernel-6.1
├── kernel-6.1
├── Makefile -> device/rockchip/common/Makefile
├── output
├── prebuilts
├── README.md
├── README_rk.md -> device/rockchip/common/README.md
├── repo_readme.txt
├── rkbin
├── rkflash.sh -> device/rockchip/common/scripts/rkflash.sh
├── rockdev -> output/firmware
├── rtos
├── test.txt
├── tmp
├── tools
├── u-boot
└── yocto]]>

2. 选择要编译的板型

如需修改板型参数,在配置界面中调整参数

板型配置文件说明

4. 全自动编译

为了确保软件开发套件(SDK)的每次更新都能顺利进行,建议在更新前清理之前的编译产物。这样做可以避免潜在的兼容性问题或编译错误,因为旧的编译产物可能不适用于新版本的SDK。要清理这些编译产物,可以直接运行命令

进入工程根目录执行以下命令自动完成所有的编译:

默认是 Buildroot,可以通过设置坏境变量 RK_ROOTFS_SYSTEM 指定不同 rootfs。RK_ROOTFS_SYSTEM目前可设定三种系统:buildroot、debian、 yocto 。

比如需要 debain 可以通过以下命令进行生成:

5.  模块编译

5.1 U-Boot编译

进入SDK工程。运行如下命令进行编译:

具体板级编译参考SDK发布文档中编译说明。

5.2 Kernel编译

进入工程目录根目录执行以下命令自动完成 kernel 的编译及打包。

具体板级编译参考发布说明或者Quick Start中编译说明。

5.3 Recovery编译

进入工程根目录执行以下命令自动完成 Recovery 的编译及打包。

编译后在 Buildroot 目录 `output/rockchip_rk3562_recovery/images 生成 recovery.img。

注: recovery.img 是包含内核,所以每次 Kernel 更改,Recovery 是需要重新打包生成。Recovery重新打包的

方法如下:

注:Recovery是非必需的功能,有些板级配置不会设置

5.4 Buildroot编译

进入工程目录根目录执行以下命令自动完成 Rootfs 的编译及打包:

编译后在Buildroot目录output/rockchip_rk3562/images下生成不同格式的镜像, 默认使用rootfs.ext4格式。

具体可参考Buildroot开发文档参考:

/docs/cn/Linux/ApplicationNote/Rockchip_Developer_Guide_Buildroot_CN.pdf

5.5 Debian编译

编译后在 debian 目录下生成 linaro-rootfs.img。

说明:需要预先安装相关依赖包

具体可参考Debian开发文档参考:

/docs/cn/Linux/ApplicationNote/Rockchip_Developer_Guide_Debian_CN.pdf

5.6 Yocto 编译

进入工程目录根目录执行以下命令自动完成 Rootfs 的编译及打包:

编译后在 yocto 目录 build/lastest 下生成 rootfs.img。

默认用户名登录是 root。Yocto 更多信息请参考 Rockchip Wiki。

FAQ:

上面编译如果遇到如下问题情况:

解决方法:

或者参考 setup-locale-python3