主要参考:Rockchip_Developer_Guide_Linux_Software_CN.pdf /
SDK-Rockchip_RV1126_RV1109_Quick_Start_Linux_CN.pdf
找对文档事半功倍!为什么这么说,因为没找对绕了路!别笑!
//解压源码,基础略过
tar xvf rv1126_rv1109_linux_v3.0.2_20230724.tgz -C rv1126_rv1109
cd rv1126_rv1109
.repo/repo/repo sync -l
.repo/repo/repo sync -c
gcc一定切到对应的
arm-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/6.3.1/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/snapshots/gcc.git~linaro-6.3-2017.05/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/sysroots/arm-linux-gnueabihf --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabihf/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
注意这个6.3.1一定要切到:文档说的
切换之后就没什么问题了,
这里要选择编译的主板
./build.sh lunch
You're building on Linux
Lunch menu...pick a combo:
1. rockchip_defconfig
2. rockchip_38x38_emmc_defconfig
3. rockchip_38x38_spi_nand_ab_defconfig
4. rockchip_38x38_spi_nand_defconfig
5. rockchip_ab_v13_defconfig
6. rockchip_battery_evb_defconfig
7. rockchip_robot_defconfig
8. rockchip_sl_defconfig
9. rockchip_slc_nand_v12_defconfig
10. rockchip_sllock_defconfig
11. rockchip_spi_nand_defconfig
12. rockchip_spi_nor_tb_v13_defconfig
13. rockchip_spi_nor_v12_defconfig
14. rockchip_tb_v13_defconfig
15. rockchip_trailcamera_defconfig
16. rockchip_v10_v11_defconfig
17. rockchip_v12_defconfig
Which would you like? [1]:
//1. rockchip_defconfig
- rockchip_defconfig
我为什么这么选呢:看我的主板
根据文档选.
环境变量
source envsetup.sh
Top of tree: /home/sdk/work/rk/rv1126_rv1109
You're building on Linux
Lunch menu...pick a combo:
0. non-rockchip boards
......
77. rockchip_rv1126_battery_evb
78. rockchip_rv1126_evb_dualcam_tb
79. rockchip_rv1126_evb_spi_nor_tb
80. rockchip_rv1126_evb_tb
81. rockchip_rv1126_robot
82. rockchip_rv1126_robot_recovery
83. rockchip_rv1126_rv1109
84. rockchip_rv1126_rv1109_cvr
85. rockchip_rv1126_rv1109_facial_gate
86. rockchip_rv1126_rv1109_libs
87. rockchip_rv1126_rv1109_ramboot_uvcc
88. rockchip_rv1126_rv1109_recovery
89. rockchip_rv1126_rv1109_sl
90. rockchip_rv1126_rv1109_spi_nand
91. rockchip_rv1126_rv1109_spi_nand_recovery
92. rockchip_rv1126_rv1109_tiny
93. rockchip_rv1126_rv1109_uvcc
94. rockchip_rv1126_rv1109_uvcc_spi_nand
95. rockchip_rv1126_rv1109_uvcc_spi_nor
96. rockchip_rv1126_sllock
97. rockchip_rv1126_snapshot
98. rockchip_rv1126_trailcamera
Which would you like? [0]: 83
- rockchip_rv1126_rv1109
///
然后是剖析./build.sh 的原理
sdk@ubuntu:~/work/rk/rv1126_rv1109$ ./build.sh -h
Usage: build.sh [OPTIONS]
Available options:
app-clean - clean buildroot app
app-rebuild - rebuild buildroot app
app-sync - sync buildroot app
lunch - choose defconfig
*_defconfig - switch to specified defconfig
Available defconfigs:
rockchip_38x38_emmc_defconfig
rockchip_38x38_spi_nand_ab_defconfig
rockchip_38x38_spi_nand_defconfig
rockchip_ab_v13_defconfig
rockchip_battery_evb_defconfig
rockchip_defconfig
rockchip_robot_defconfig
rockchip_sl_defconfig
rockchip_slc_nand_v12_defconfig
rockchip_sllock_defconfig
rockchip_spi_nand_defconfig
rockchip_spi_nor_tb_v13_defconfig
rockchip_spi_nor_v12_defconfig
rockchip_tb_v13_defconfig
rockchip_trailcamera_defconfig
rockchip_v10_v11_defconfig
rockchip_v12_defconfig
olddefconfig - resolve any unresolved symbols in .config
savedefconfig - save current config to defconfig
menuconfig - interactive curses-based configurator
kernel - build kernel
modules - build kernel modules
linux-headers - build linux-headers
loader - build loader (uboot|spl)
uboot - build u-boot
spl - build spl
uefi - build uefi
wifibt - build Wifi/BT
rootfs - build rootfs (default is buildroot)
buildroot - build buildroot rootfs
yocto - build yocto rootfs
debian - build debian rootfs
recovery - build recovery
pcba - build PCBA
security_check - check contidions for security features
createkeys - build secureboot root keys
security_uboot - build uboot with security paramter
security_boot - build boot with security paramter
security_recovery - build recovery with security paramter
security_rootfs - build rootfs and some relevant images with security paramter (just for dm-v)
firmware - generate and check firmwares
updateimg - build update image
otapackage - build OTA update image
sdpackage - build SDcard update image
all - build all basic image
save - save images and build info
allsave - build all & firmware & updateimg & save
cleanall - cleanup
post-rootfs - trigger post-rootfs hook scripts
shell - setup a shell for developing
help - usage
Default option is 'allsave'.
总结一下脚本指令即可
./build.sh lunch
//1. rockchip_defconfig
source envsetup.sh
//83. rockchip_rv1126_rv1109
./build.sh
./build.sh uboot
./build.sh kernel
./build.sh rootfs
./build.sh updateimg