荣品的RV1126。
一、单独编译
如果执行 build.sh 运行完成后没有在 rockdev/ 目录下生成镜像文件,请执行:
./build.sh firmware;./build.sh updateimg
1.1 单独配置编译kernel
设备树目录:pro-rv1126 kernel/arch/arm/boot/dts/pro-rv1126.dts
$ cd kernel/
$ make ARCH=arm menuconfig
$ make ARCH=arm savedefconfig
$ cp defconfig arch/arm/configs/rv1126_defconfig
$ cd ..
$ ./build.sh kernel && ./build.sh firmware
生成镜像路径: rockdev/
生成镜像:boot.img
1.2 单独编译配置Buildroot
$ source envsetup.sh rockchip_rv1126_rv1109_facial_gate
$ make ARCH=arm menuconfig
$ make ARCH=arm savedefconfig
$ ./build.sh buildroot && ./build.sh firmware
编译完 buildroot 完成后会自动编译 rootfs
生成镜像路径: rockdev/
生成镜像:rootfs.img
默认 buildroot config 文件路径:buildroot/configs/rockchip_rv1126_rv1109_facial_gate_defconfig
编译出来的文件系统路径:buildroot/output/rockchip_rv1126_rv1109_facial_gate/target/
1.3 单独编译rkmedia
先编译buildroot
$ source envsetup.sh rockchip_rv1126_rv1109_facial_gate
$ make ARCH=arm menuconfig
$ make ARCH=arm savedefconfig
$ ./build.sh buildroot && ./build.sh firmware
然后再在SDK根目录运行:./build.sh external/rkmedia
- 源码目录:
SDK/external/rkmedia/example/
- 编译完成后的输出目录是(脚本会拷贝一个一模一样的目录到/build):
SDK/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/rkmedia/examples/
1.3.1 添加自己的rkmedia代码文件
我想添加一个自己的代码文件rkmedia_test.c到rkmedia然后编译的步骤:
- 在目录
SDK/external/rkmedia/example/
添加一个文件rkmedia_test.c
- 在该文件中添加编译相关的字段
SDK/external/rkmedia/examples/CMakeLists.txt
#-------------------------- # rkmedia_test #-------------------------- add_executable(rkmedia_test rkmedia_test.c ${COMMON_SRC}) add_dependencies(rkmedia_test easymedia) target_link_libraries(rkmedia_test easymedia) target_include_directories(rkmedia_test PRIVATE ${CMAKE_SOURCE_DIR}/include) install(TARGETS rkmedia_test RUNTIME DESTINATION "bin")
- 然后在根目录编译:
./build.sh external/rkmedia
- 编译完成后的输出目录:
SDK/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/rkmedia/examples/
,这个目录下会拷贝一个rkmedia_test.c以及rkmedia_test可执行文件 - 修改自己的代码然后编译,直接在目录
SDK/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/rkmedia/examples/
中修改自己的.c文件,然后在SDK/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/rkmedia/examples/
目录里面运行make
命令就可以了! - 注意,在
SDK/buildroot/output/rockchip_rv1126_rv1109_facial_gate/build/rkmedia/examples/
目录中修改的代码不会保存到源码工程中即:./build.sh external/rkmedia/example
,如果此时来一个全局编译,你代码将会被拷贝成最原始的那一份。