3.9 KiB
3.9 KiB
RK1808 Docker 服务部署说明
项目说明
本项目运行于 RK1808 边缘计算设备,通过 Docker 容器运行目标识别服务。
当前部署方案适用于:
- RK1808
- Debian 12 Bookworm
- Linux Kernel 4.4.194
- ARM64(aarch64)
部署流程
部署分为两步:
第一步:初始化宿主机
执行:
bash init_host.sh
主要完成以下工作:
Docker 安装
- 安装 Docker Engine
- 安装 Buildx
- 安装 Compose 插件
- 配置 Docker 开机启动
Docker 镜像加速
配置:
https://docker.1panel.live/
Docker 存储驱动修复
强制使用:
overlay2
关闭:
containerd-snapshotter
避免 Docker 29.x 在 Linux Kernel 4.4 上出现构建失败。
FFmpeg 运行库检查
检查以下依赖:
/lib/libavformat.so.58
/lib/libavcodec.so.58
/lib/libavutil.so.56
/lib/libswresample.so.3
/lib/libswscale.so.5
自动检查:
libswscale.so.5
软链接是否存在。
RK1808 NPU 驱动检查
检查:
/dev/galcore
/dev/rga
/dev/vpu_service
/dev/dri/card0
/lib/npu
若:
/dev/galcore
不存在,则自动加载:
galcore.ko
并写入:
/etc/modules-load.d/galcore.conf
实现开机自动加载。
最终输出
脚本结束后会输出:
Docker状态
Docker镜像加速状态
Docker存储驱动状态
FFmpeg依赖状态
NPU驱动状态
设备节点状态
第二步:部署项目
执行:
bash deploy_fire_leave.sh
主要完成以下工作:
项目文件检查
检查:
Dockerfile
start.sh
rundocker.sh
mp4-merge_0.1.11-1_arm64.deb
models/yolov5
YOLOv5 动态库检查
检查:
libavformat
libavcodec
libavutil
libswresample
libswscale
是否缺失。
NPU环境检查
检查:
/dev/galcore
/dev/rga
/dev/vpu_service
/dev/dri/card0
/lib/npu
是否正常。
Docker 镜像构建
执行:
docker build -t fire_leave:latest .
启动脚本检查
检查:
rundocker.sh
是否存在并具有执行权限。
最终输出
脚本结束后会输出:
项目文件状态
动态库状态
设备节点状态
Docker镜像状态
启动脚本状态
启动服务
执行:
./rundocker.sh
历史问题记录
问题1:libswscale.so.5 缺失
现象:
error while loading shared libraries:
libswscale.so.5
原因:
系统存在:
libswscale.so.5.7.100
但缺少:
libswscale.so.5
解决:
ln -sf /usr/lib/libswscale.so.5.7.100 /usr/lib/libswscale.so.5
ldconfig
问题2:Docker 29.x 构建失败
现象:
failed to get xattr
operation not supported
原因:
Docker 29 默认启用了:
containerd-snapshotter
而 RK1808 当前内核:
4.4.194
兼容性较差。
错误配置:
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
解决:
强制使用:
{
"features": {
"containerd-snapshotter": false
},
"storage-driver": "overlay2"
}
最终状态:
Storage Driver: overlay2
问题3:/dev/galcore 不存在
现象:
/dev/galcore
不存在
原因:
系统启动后未自动加载:
galcore.ko
解决:
insmod /lib/modules/$(uname -r)/galcore.ko
写入:
echo "galcore" > /etc/modules-load.d/galcore.conf
实现开机自动加载。
当前验证环境
系统:
Debian GNU/Linux 12 (bookworm)
架构:
aarch64
内核:
4.4.194
Docker:
29.5.2
Storage Driver:
overlay2
Cgroup:
v1
NPU驱动:
Galcore 6.4.6.5.351518
镜像:
fire_leave:latest
后续批量部署建议
新设备部署仅需:
bash init_host.sh
bash deploy_fire_leave.sh
./rundocker.sh
无需再次手动排查 Docker、FFmpeg、NPU 驱动等环境问题。