RV1109 Linux SDK入门指南
一.环境搭建
编译环境搭建所依赖的软件包以及安装命令如下:
sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip gawk bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client subversion asciidoc w3m dblatex graphviz python-matplotlib libssl-dev expect fakeroot cmake flex bison lzop liblz4-tool ubuntu16.04之上的系统,还需运行: sudo apt-get install lib32gcc-7-dev g++-7 libstdc++-7-dev
二.目录说明
三.模块代码
部分模块代码目录路径 模块功能描述 external/recovery recovery external/rkwifibt Wi-Fi和BT external/libdrm DRM接口 external/rk_pcba_test PCBA测试代码 external/isp2-ipc 图像信号处理服务端 external/mpp 编解码代码 external/rkmedia Rockchip 多媒体封装接口 external/rkupdate Rockchip升级代码 external/camera_engine_rkaiq 图像处理算法模块 external/rknpu NPU驱动 external/rockface 人脸识别代码 external/CallFunIpc 应用进程间通信代码 external/common_algorithm 音视频通用算法库 external/rknn-toolkit 模型转换、推理和性能评估的开发套件 app/libIPCProtocol 基于dbus,提供进程间通信的函数接口 app/mediaserver 提供多媒体服务的主应用 app/ipc-daemon 系统守护服务 app/dbserver 数据库服务 app/netserver 网络服务 app/storage_manager 存储管理服务 app/ipcweb-backend web后端
四.SDK编译
4.1 切换板级配置
运行 su 取得最高权限,切换板级配置命令,选择BoarConfig-R0950.mk这个板卡配置,
./build.sh lunch
注: 当然我们也可以自定义自己的板级配置,只需在device/rockchip/rv1126_rv1109/中仿例创建一个.mk即可
4.2 全自动编译
-
方式一
#只编译模块代码(u-Boot,kernel,Rootfs,Recovery)/build.sh all #将生成的固件拷贝到rockdev中./mkfirmware.sh
-
方式二
./build.sh
在./build.sh all基础上
- 增加固件打包 ./mkfirmware.sh
- update.img打包
- 复制rockdev目录下的固件到IMAGE/***_RELEASE_TEST/IMAGES目录
- 保存各个模块的补丁到IMAGE/***_RELEASE_TEST/PATCHES目录
注:./build.sh 和 ./build.sh all save 命令一样 , ./build.sh cleanall是全清编译所生成的文件
4.3 rootfs编译
1.先于SDK根目录查看Board Config对应的rootfs是哪个配置./build.sh - h rootfs 2. source envsetup.sh rockchip_rv1126_r0950 3. ./build.sh ramboot
注:我们同样可以自定义一个自己的rootfs配置,只需在./buildroot/configs/ 中创建即可
4.4 App以及库文件编译
a.make menuconfig 命令用于配置文件系统,选择需要的模块,最后保存退出 例如: ipc-daemon的配置是BR2_PACKAGE_IPC_DAEMON 进入menuconfig后,按“/"进入查找模式,输入BR2_PACKAGE_IPC_DAEMON ,输入对应数字,Y键激活想要编译的模块
b.make savedefconfig 命令保存配置到rootfs配置文件 ,
c. 查看对应模块的makefile文件名 例如:buildroot/package/rockchip/ipc-daemon/ipc-daemon.mk make ipc-daemon-dirclean & make ipc-daemon-rebuild
d.此外还需要重编ramboot ,才能生效 ./build.sh ramboot
SDK根目录app和external下的工程都是buildroot的package包,编译方法相同。
更多详情请参考:
