嵌入式 Linux 实战:基于泰山派的 AI 网络摄像头
一、项目整体架构
1. 硬件组成
硬件包含三个部分:泰山派 RK3566 开发板,扩展板和一个MIPI 摄像头,以及一根网线。
使用扩展板是因为开发板本身没有网口。需要更新内核以适配扩展板的网口驱动。
MIPI 摄像头型号为 OV5695。
摄像头和开发板的硬件接线需参考官方手册。
2. 系统框图
项目主要涉及软件部分,流程如下:
- 视频采集与硬件编码:使用 Rockchip Rockit (RK MPI)
- YOLOv5 推理:使用 RKNN
- 推流服务:使用 ZLMediaKit
二、Buildroot 系统构建和依赖环境配置
1. Buildroot 构建 Linux 系统
在资源有限的嵌入式平台中,使用 Buildroot 构建定制化 Linux 系统以节省资源。
1.1 系统烧录
完整编译耗时较长,建议采用第二种方法:烧录官方 Buildroot 镜像,然后单独编译内核和根文件系统。
具体步骤参考官方文档中的镜像下载与烧录教程。
1.2 更新内核
使用扩展板时,需更新内核以加载网口驱动。将提供的 boot.img 单独烧录进系统即可。
1.3 Buildroot 添加 OpenCV 和编译下载
下载 Linux SDK 和 Buildroot 相关库。
进入 Buildroot 配置界面:
source buildroot/build/envsetup.sh
make menuconfig
依次选择 Target packages --> Libraries —> Graphics —> opencv3,点击 'y' 键选择。 保存配置并编译根文件系统:
make savedefconfig
./build.sh rootfs
编译成功后 rockdev 目录下会出现 rootfs.ext4。
Buildroot 结构说明:
output/rockchip_rk3566/target:烧录进开发板的根文件系统内容。output/rockchip_rk3566/host/bin:交叉编译器路径(如aarch64-buildroot-linux-gnu-gcc)。
2. 项目依赖环境配置
2.1 Rockit
Rockit (RK MPI) 提供媒体处理接口,支持视频捕获、编码、解码等功能。
资源位于 SDK 目录 linux_sdk/external/rockit。
关键文件:
- 动态库:
lib/lib64/librockit.so - 静态库:
mpi/example/common/librt_test_comm.a - 头文件:
mpi/example/include和mpi/sdk/include
编译 Demo 示例:
build
build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchainfile.cmake
make


