rk3588上创建可调用硬件加速容器的方法记录

这是记录尝试在rk3588开发板上创建可调用npu 硬件加速和视频硬件编解码容器的笔记。

通过网上资料和AI模型的消息。我在rk3588的板上创建一个可以调用硬件加速的容器需要如下操作:

1、我使用的是香橙派的 orange pi  5 ultra ,8G内存,256G 的SD卡。厂商号称有6T算力。

2、宿主机的操作系统是 orange OS ,其实是 arc linux 的摩改版

3、docker 镜像是ubuntu 20.04 ,在创建镜像时,需要引用宿主机的硬件,使用如下参数:

docker run -it -d –name test_vpu –device /dev/mpp_service –device /dev/dri –device /dev/rga ubuntu:20.04 bash

但在后来使用时发现存在容器MPP 找不到 SoC的问题,

需要加入:

–privileged \
–volume /proc/device-tree:/proc/device-tree:ro \

容器内安装包:

apt-get update && apt-get install -y –no-install-recommends \
    ca-certificates git build-essential pkg-config cmake meson ninja-build \
    libdrm-dev libv4l-dev libudev-dev \
    libglib2.0-dev libgudev-1.0-dev \
    gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav \
    gstreamer1.0-plugins-base-apps \
    python3 python3-pip \
    && rm -rf /var/lib/apt/lists/*
4、下载mpp 代码并编译:
git clone –depth=1 https://github.com/rockchip-linux/mpp.git && \
    cmake -S mpp -B mpp/build -DCMAKE_BUILD_TYPE=Release -DRKPLATFORM=ON && \
    cmake –build mpp/build -j”$(nproc)” && \
    cmake –install mpp/build
5、下载gstreamer 的mpp 插件并编译:
apt install -y git meson ninja-build pkg-config build-essential \
libdrm-dev libglib2.0-dev libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev
下载和编译gstreamer-mpp插件代码并编译,这个原本rk3588厂家在github 上的仓库已不存在,所以使用了其他分支的镜像。
git clone https://github.com/Meonardo/gst-rockchip
cd gst-rockchip
meson setup build –prefix=/usr –buildtype=release
ninja -C build
ninja -C build install
验证插件是否正确安装

gst-inspect-1.0 | grep rockchip
应该能看到类似:

rkmpph264enc

rkmpph265enc

rkmppjpegenc

rkmppvideodec

rkmppfilter