一、编译环境
1、目标系统:ubuntu 22.04 LTS
2、投屏器SDK下载:
链接:https://pan.baidu.com/s/1OJQafxm38FnbshMEu432Og
提取码:o6p3
下载下来后,输入命令cat rv1126.zip.001 rv1126.zip.002 rv1126.zip.003 rv1126.zip.004 rv1126.zip.005 > rv1126.zip
合并成一个文件rv1126.zip
然后再unzip 命令解压出来,最后在执行repo sync -l
了。
二、编译
1、解压
tar xvf RV1126_repo.tar.gz
2、 执行SDK同步命令
repo/repo/repo sync -l
如果报下列错,则执行sudo apt install python
成功执行后会在当前目录下生成相关文件
SDK目录说明
进入工程目录下有buildroot、app、kernel、u-boot、device、docs、external等目录。每个目录或其子目录会对应一个git工程,提交需要在各自的目录下进行。
- buildroot:定制根文件系统。
- app:存放上层应用程序。
- external:相关库,包括音频、视频等。
- kernel:kernel代码。
- device/rockchip:存放每个平台的一些编译和打包固件的脚本和预备文件。
- docs:存放开发指导文件、平台支持列表、工具使用文档、Linux 开发指南等。
- prebuilts:存放交叉编译工具链。
- rkbin:存放固件和工具。
- rockdev:存放编译输出固件。
- tools:存放一些常用工具。
- u-boot:U-Boot代码。
RV1109/RV1126 模块代码目录说明
部分模块代码目录路径 | 模块功能描述 |
---|---|
部分模块代码目录路径 | 模块功能描述 |
app/dbserver | 数据库服务 |
app/ipc-daemon | 系统守护服务 |
app/ipcweb-backend | web后端 |
app/ipcweb-ng | web前端,采用Angular 8框架 |
app/libIPCProtocol | 基于dbus,提供进程间通信的函数接口 |
app/librkdb | 数据库接口 |
app/mediaserver | 提供多媒体服务的主应用 |
app/minigui_demo | 基于MiniGUI实现一个简单画图demo |
app/netserver | 网络服务 |
app/storage_manager | 存储管理服务 |
external/CallFunIpc | 应用进程间通信代码 |
external/camera_engine_rkaiq | 图像处理算法模块 |
external/common_algorithm | 音视频通用算法库 |
external/isp2-ipc | 图像信号处理服务端 |
external/mpp | 编解码代码 |
external/recovery | recovery和Rockchip升级代码 |
external/rk_pcba_test | PCBA测试代码 |
external/rkmedia | Rockchip 多媒体封装接口 |
external/rknn-toolkit | 模型转换、推理和性能评估的开发套件 |
external/rknpu | NPU驱动 |
external/rkwifibt | Wi-Fi和BT |
external/rockface | 人脸识别代码 |
目录docs和external的文档索引
├── docs
│ │
│ ├── Kernel (内核驱动相关文档,RV1126/RV1109平台可以参考)
│ │
│ ├── Linux (Rockchip Linux系统通用文档,RV1126/RV1109平台可以参考)
│ │ │
│ │ ├── Multimedia
│ │ │ ├── camera (camera相关文档,RV1126/RV1109平台可以参考)
│ │ │ ├── Rockchip_Developer_Guide_MPP_CN.pdf (编解码接口开发指南, 适用于RV1126/RV1109平台)
│ │ │ └── Rockchip_Developer_Guide_MPP_EN.pdf
│ │ │
│ │ ├── Recovery (升级相关文档, 适用于RV1126/RV1109平台)
│ │ │ ├── Rockchip_Developer_Guide_Linux_Recovery_CN.pdf
│ │ │ ├── Rockchip_Developer_Guide_Linux_Recovery_EN.pdf
│ │ │ ├── Rockchip_Developer_Guide_Linux_Upgrade_CN.pdf
│ │ │ └── Rockchip_Developer_Guide_Linux_Upgrade_EN.pdf
│ │ │
│ │ ├── Security (加密相关文档, 适用于RV1126/RV1109平台)
│ │ │ └── Rockchip_Developer_Guide_TEE_Secure_SDK_CN.pdf
│ │ │
│ │ └── Wifibt (WiFi和蓝牙相关文档, 适用于RV1126/RV1109平台)
│ │ ├── AP模组RF测试文档
│ │ │ ├── BT RF Test Commands for Linux-v05.pdf
│ │ │ └── Wi-Fi RF Test Commands for Linux-v03.pdf
│ │ ├── REALTEK模组RF测试文档
│ │ │ ├── 00014010-WS-170731-RTL8723D_COB_MP_FLOW_R04.pdf
│ │ │ ├── MP tool user guide for linux20180319.pdf
│ │ │ └── Quick_Start_Guide_V6.txt
│ │ ├── RK平台_RTL8723DS_AIRKISS配网说明.pdf
│ │ ├── Rockchip_Developer_Guide_DeviceIo_Bluetooth_CN.pdf
│ │ ├── Rockchip_Developer_Guide_Linux_WIFI_BT_CN.pdf
│ │ ├── Rockchip_Developer_Guide_Linux_WIFI_BT_EN.pdf
│ │ ├── Rockchip_Developer_Guide_Network_Config_CN.pdf
│ │ └── WIFI性能测试PC工具
│ │ └── iperf-2.0.5-2-win32.zip
│ │
│ └── RV1126_RV1109
│ ├── ApplicationNote (Rockchip应用开发框架介绍、网页端开发指南)
│ │ ├── Rockchip_Developer_Guide_Linux_Application_Framework_CN.pdf
│ │ ├── Rockchip_Developer_Guide_Linux_Application_Framework_EN.pdf
│ │ ├── Rockchip_Instructions_Linux_CGI_API_CN.pdf
│ │ ├── Rockchip_Instructions_Linux_MediaServer_CN.pdf
│ │ ├── Rockchip_Instructions_Linux_MediaServer_EN.pdf
│ │ ├── Rockchip_Instructions_Linux_Web_Configuration_CN.pdf
│ │ └── Rockchip_Instructions_Linux_Web_Configuration_EN.pdf
│ │
│ ├── Camera (ISP开发指南)
│ │ ├── Camera_External_FAQ_v1.0.pdf
│ │ ├── Rockchip_Color_Optimization_Guide_ISP2x_V1.1.0.pdf
│ │ ├── Rockchip_Development_Guide_ISP2x_CN_v1.2.0.pdf
│ │ ├── Rockchip_Driver_Guide_ISP2x_CN_v0.1.0.pdf
│ │ ├── Rockchip_Instruction_Linux_Appliction_ISP20_CN.pdf
│ │ ├── Rockchip_IQ_Tools_Guide_ISP2x_CN_v1.0.0.pdf
│ │ ├── Rockchip_RV1109_RV1126_Developer_Guide_Linux_Ispserver_CN.pdf
│ │ └── Rockchip_Tuning_Guide_ISP2x_CN_v1.0.0.pdf
│ │
│ ├── Multimedia
│ │ ├── Rockchip_Developer_Guide_Linux_RKMedia_CN.pdf
│ │ └── Rockchip_Instructions_Linux_Rkmedia_CN.pdf (多媒体接口开发指南)
│ │
│ ├── Rockchip_RV1126_RV1109_EVB_User_Guide_V1.0_CN.pdf (硬件开发指南)
│ ├── Rockchip_RV1126_RV1109_EVB_User_Guide_V1.0_EN.pdf
│ ├── Rockchip_RV1126_RV1109_Instruction_Linux_Separate_Building_EN.pdf (独立编译U-Boot/Kernel/Rootfs说明文档)
│ ├── Rockchip_RV1126_RV1109_Linux_SDK_V1.1.1_20200711_CN.pdf (SDK发布说明)
│ ├── Rockchip_RV1126_RV1109_Linux_SDK_V1.1.1_20200711_EN.pdf
│ ├── Rockchip_RV1126_RV1109_Quick_Start_Linux_CN.pdf (快速开发指南)
│ ├── Rockchip_RV1126_RV1109_Quick_Start_Linux_EN.pdf
│ ├── RV1109 Multimedia Codec Benchmark v1.2.pdf
│ ├── RV1126 Multimedia Codec Benchmark v1.1.pdf
│ └── RV1126_RV1109_Release_Note.txt
│
└── external
├── rknn-toolkit (模型转换、推理和性能评估的开发套件文档)
│ └── doc
│ ├── Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.3.2_CN.pdf
│ ├── Rockchip_Developer_Guide_RKNN_Toolkit_Custom_OP_V1.3.2_EN.pdf
│ ├── Rockchip_Quick_Start_RKNN_Toolkit_V1.3.2_CN.pdf
│ ├── Rockchip_Quick_Start_RKNN_Toolkit_V1.3.2_EN.pdf
│ ├── Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.3.2_CN.pdf
│ ├── Rockchip_Trouble_Shooting_RKNN_Toolkit_V1.3.2_EN.pdf
│ ├── Rockchip_User_Guide_RKNN_Toolkit_V1.3.2_CN.pdf
│ ├── Rockchip_User_Guide_RKNN_Toolkit_V1.3.2_EN.pdf
│ ├── Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.3.2_CN.pdf
│ └── Rockchip_User_Guide_RKNN_Toolkit_Visualization_V1.3.2_EN.pdf
└── rknpu
└── rknn (Rockchip NPU 开发文档)
└── doc
├── Rockchip_User_Guide_RKNN_API_V1.3.3_CN.pdf
└── Rockchip_User_Guide_RKNN_API_V1.3.3_EN.pdf
3、执行第二步生成的sh文件
./build.sh
① 选择编译选项
选择0,表示选择通用IPC类产品的板级配置
也可以直接执行
./build.sh device/rockchip/rv1126_rv1109/BoardConfig.mk
② 报错处理
安装device-tree-compiler
执行命令
# 安装device-tree-compiler
sudo apt-get install device-tree-compiler
# 在执行build.sh脚本
./build.sh
缺少bison
# 安装bison
sudo apt-get install bison
# 在执行build.sh脚本
./build.sh
缺少flex
# 安装flex
sudo apt-get install flex
# 在执行build.sh脚本
./build.sh
安装expect或者expect-dev
# 安装expect
sudo apt-get install expect
# 在执行build.sh脚本
./build.sh
安装g++-9
# 安装g++-9
sudo apt-get install lib32gcc-9-dev g++-9 libstdc++-9-dev
# 在执行build.sh脚本
./build.sh
# 可以使用g++ -v查看g++的版本
g++ -v
安装fakeroot
上面安装g++-9后执行./build.sh后会执行很长时间(大概2个多小时)再次的报错
# 安装fakeroot
sudo apt-get install fakeroot
# 在执行build.sh脚本
./build.sh
③ 编译完成
上面报错都解决完后,就可以编译成功了。
编译成功后,会在./IMAGE/RV1126-EVB-V13_20230203.1448_RELEASE_TEST/IMAGES
下生成img文件