这是记录尝试在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
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
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