安装必备软件:
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编译
# 查看编译帮助
<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编译
# 查看编译帮助
<SDKRoot>#./build.sh -h kernel
# 编译命令
<SDKRoot>#./build.sh kernel
Recovery 编译
<SDKRoot>#./build.sh recovery
编译后在 Buildroot 目录 output/rockchip芯片型号recovery/images 生成 recovery.img。
需要特别注意 recovery.img 是包含 kernel.img,所以每次 Kernel 更改,Recovery 是需要重新打包生成
例如:
<SDK>$source envsetup.sh rockchip_芯片名称 <SDK>$make recovery-rebuild <SDK>$./build.sh recovery
Rootfs 编译
<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
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
技术交流群
Q群:941962488(瑞芯微、海思、君正技术交流群)