zl程序教程

您现在的位置是:首页 >  其他

当前栏目

RK1126从入门到放弃:(一)编译篇

2023-02-19 12:21:26 时间

安装必备软件:

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