deploy: bundle pre-built MPP libs for RK3326, update setup script and status
- deploy/arkos/mpp-libs/: add librockchip_mpp.so*, librockchip_vpu.so*, libgstrockchipmpp.so — built from source via Docker QEMU (arm64v8/ubuntu:focal) using rockchip-linux/mpp + JeffyCN/mirrors@gstreamer-rockchip (-Drga=disabled) - deploy/arkos/setup_hw_decode.sh: detect mpp-libs/ subdir and install from it automatically, no network required; apt fallback retained - deploy/arkos/mpp-libs/README.md: document origin, target SoC, install steps - tests/test_video_playback_device.py: on-device GStreamer diagnostic script - docs/development-status.md: mark MPP HW decode deployed, mppvideodec verified Verified on physical R36S: mppvideodec found by GStreamer registry with GST_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/gstreamer-1.0
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# mpp-libs — Pre-built Rockchip MPP libraries for R36S / ArkOS
|
||||
|
||||
These `.so` files are compiled for **aarch64 / Ubuntu focal** from:
|
||||
|
||||
- **librockchip-mpp** — [github.com/rockchip-linux/mpp](https://github.com/rockchip-linux/mpp) (commit c2c1ee5, 2026-03-10)
|
||||
- **gst-mpp** — [github.com/JeffyCN/mirrors, branch gstreamer-rockchip](https://github.com/JeffyCN/mirrors) (RGA disabled)
|
||||
|
||||
Built via Docker QEMU (`arm64v8/ubuntu:focal` + `qemu-user-static`).
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose |
|
||||
|---|---|
|
||||
| `librockchip_mpp.so{,.0,.1}` | Rockchip MPP runtime — hardware VPU abstraction |
|
||||
| `librockchip_vpu.so{,.0,.1}` | Rockchip VPU legacy wrapper |
|
||||
| `libgstrockchipmpp.so` | GStreamer plugin — exposes `mppvideodec` element |
|
||||
|
||||
## Install
|
||||
|
||||
Run the parent `setup_hw_decode.sh` as root — it picks up this directory automatically:
|
||||
|
||||
```bash
|
||||
sudo bash deploy/arkos/setup_hw_decode.sh
|
||||
```
|
||||
|
||||
Or manually:
|
||||
```bash
|
||||
sudo cp librockchip_mpp.so* librockchip_vpu.so* /usr/lib/aarch64-linux-gnu/
|
||||
sudo cp libgstrockchipmpp.so /usr/lib/aarch64-linux-gnu/gstreamer-1.0/
|
||||
sudo ldconfig
|
||||
```
|
||||
|
||||
## Target
|
||||
|
||||
- SoC: RK3326 / PX30 (Cortex-A35)
|
||||
- Kernel: 4.4 BSP with `vpu_service` device node at `/dev/vpu_service`
|
||||
- ArkOS Ubuntu eoan arm64
|
||||
- Requires `/dev/vpu_service` accessible to `video` group (handled by `setup_hw_decode.sh` udev rule)
|
||||
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -4,8 +4,11 @@
|
||||
# What this script does:
|
||||
# 1. Adds a udev rule so the 'video' group can access /dev/vpu_service
|
||||
# (the VPU device used by Rockchip MPP on the kernel 4.4 BSP).
|
||||
# 2. Tries to install librockchip-mpp0 and gstreamer1.0-rockchip-mpp.
|
||||
# If they are not in apt, it prints instructions for manual installation.
|
||||
# 2. Installs librockchip-mpp and the gst-mpp GStreamer plugin, in order:
|
||||
# a) If a 'mpp-libs/' subdirectory is present next to this script,
|
||||
# copies the pre-built .so files directly (no network required).
|
||||
# b) Otherwise tries apt-get.
|
||||
# c) If apt fails, prints manual installation instructions.
|
||||
#
|
||||
# Requirements:
|
||||
# - Must be run as root or via sudo.
|
||||
@@ -67,7 +70,22 @@ info "Verify with: ls -la /dev/vpu_service (should show crw-rw---- root video)"
|
||||
|
||||
MPP_PKGS="librockchip-mpp0 gstreamer1.0-rockchip-mpp"
|
||||
|
||||
if apt-cache show librockchip-mpp0 &>/dev/null; then
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
MPP_LIBS_DIR="$SCRIPT_DIR/mpp-libs"
|
||||
|
||||
if [[ -d "$MPP_LIBS_DIR" ]]; then
|
||||
info "Found pre-built libraries in $MPP_LIBS_DIR — copying..."
|
||||
# Core MPP runtime
|
||||
for f in "$MPP_LIBS_DIR"/librockchip_mpp.so* "$MPP_LIBS_DIR"/librockchip_vpu.so*; do
|
||||
[[ -e "$f" ]] && cp -v "$f" /usr/lib/aarch64-linux-gnu/
|
||||
done
|
||||
# GStreamer plugin
|
||||
if [[ -f "$MPP_LIBS_DIR/libgstrockchipmpp.so" ]]; then
|
||||
cp -v "$MPP_LIBS_DIR/libgstrockchipmpp.so" /usr/lib/aarch64-linux-gnu/gstreamer-1.0/
|
||||
fi
|
||||
ldconfig
|
||||
info "MPP libraries installed from $MPP_LIBS_DIR."
|
||||
elif apt-cache show librockchip-mpp0 &>/dev/null; then
|
||||
info "Found librockchip-mpp0 in apt — installing..."
|
||||
apt-get install -y $MPP_PKGS
|
||||
info "MPP packages installed successfully."
|
||||
|
||||
Reference in New Issue
Block a user