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基础上

  1. 增加固件打包 ./mkfirmware.sh
  2. update.img打包
  3. 复制rockdev目录下的固件到IMAGE/***_RELEASE_TEST/IMAGES目录
  4. 保存各个模块的补丁到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包,编译方法相同。

更多详情请参考:

经验分享 程序员 微信小程序 职场和发展