安装必备软件:
代码语言:javascript复制apt-get install repo 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 unzip device-tree-compiler python-pip ncurses-dev pyelftools
交叉编译工具链
- U-Boot 及Kernel编译工具链:
prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux- gnu/bin/aarch64-linux-gnu-
对应版本:gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
- Buildroot编译工具链:
64位系统:
buildroot/output/rockchip_rk356x/host/bin/aarch64-buildroot-linux-gnu-
32位系统:buildroot/output/rockchip_rk356x/host/usr/arm-linux-gcc
对应版本:gcc version 9.3.0 (Buildroot 2018.02-rc3-02723-gd3fbc6ae13)
u-boot编译
代码语言:javascript复制# 查看编译帮助
<SDKRoot>#./build.sh -h uboot
# 编译命令
<SDKRoot>#./build.sh uboot
- U-Boot 配置说明 使用menuconfig配置U-Boot,选择需要的模块,最后保存退出。 rv1126_defconfig 文件在目录 u-boot/configs 命令格式:make “RK_UBOOT_DEFCONFIG”_defconfig RK_UBOOT_DEFCONFIG 定义在./build.sh选择的BoardConfig*.mk
$cd u-boot
$make rv1126_defconfig
$make menuconfi
- 保存配置到对应的文件rv1126_defconfig
$make savedefconfig
$cp defconfig configs/rv1126_defconfig
kernel编译
代码语言:javascript复制# 查看编译帮助
<SDKRoot>#./build.sh -h kernel
# 编译命令
<SDKRoot>#./build.sh kernel
Recovery 编译
代码语言:javascript复制<SDKRoot>#./build.sh recovery
编译后在 Buildroot 目录 output/rockchip芯片型号recovery/images 生成 recovery.img。 需要特别注意 recovery.img 是包含 kernel.img,所以每次 Kernel 更改,Recovery 是需要重新打包生成 例如:
代码语言:javascript复制<SDK>$source envsetup.sh rockchip_芯片名称 <SDK>$make recovery-rebuild <SDK>$./build.sh recovery
Rootfs 编译
代码语言:javascript复制<SDKRoot>#./build.sh rootfs
编译后在 Buildroot 目录 output/rockchip_芯片型号/images下生成 rootfs.ext4
app 和 external 里的工程编译方法
- 命令格式:./build.sh app/
<pkg1> app/<pkg2> external/<pkg3> ..
<pkg1>,<pkg2>,<pkg3>
是app和external目录里的工程- 例如编译external/mpp 和 app/mediaserver
$./build.sh external/mpp app/mediaserver
注:SDK根目录app和external下的工程都是buildroot的package包,编译方法相同。
BSP包编译
SDK的BSP包只包含音视频编解码库、NPU库以及头文件。 注:BSP包不包含文件系统。
$source envsetup.sh rockchip_rv1126_rv1109_libs
$make -j12
编译BSP生成的目录 buildroot/output/rockchip_rv1126_rv1109_libs/BSP
代码语言:javascript复制tree buildroot/output/rockchip_rv1126_rv1109_libs/BSP/
buildroot/output/rockchip_rv1126_rv1109_libs/BSP/
├── example
│ ├── common
│ ├── iqfiles
│ ├── librtsp
│ ├── multi_audio_test
│ ├── rknn_model
│ ├── stressTest
│ └── vqefiles
├── include
│ ├── rga
│ ├── rkaiq
│ └── rkmedia
├── lib
└── npu
├── include
├── ko
└── lib
固件打包
固件打包命令: $./mkfirmware.sh 固件目录:rockdev