Orange_Pi_5_Plus_HW_Acceler.../README.md
2025-08-21 16:17:23 +02:00

9 KiB

Orange Pi 5 Plus HW Acceleration

Install OpenCL Mali610

link orig

Download libmali-g610.so

cd /usr/lib
sudo wget https://github.com/JeffyCN/mirrors/raw/libmali/lib/aarch64-linux-gnu/libmali-valhall-g610-g6p0-x11-wayland-gbm.so -O libmali-g610.so

Ensure Firmware File Exists

su
cd /lib/firmware
ls mali_csffw.bin

if not exit

sudo wget https://github.com/JeffyCN/mirrors/raw/libmali/firmware/g610/mali_csffw.bin

exit form su

exit

Configuring OpenCL ICD Loader: Install Mesa OpenCL ICD, Create OpenCL Vendors Directory and Add Mali ICD Configuratio

sudo apt update
sudo apt install mesa-opencl-icd -y
sudo mkdir -p /etc/OpenCL/vendors
echo "/usr/lib/libmali-g610.so" | sudo tee /etc/OpenCL/vendors/mali.icd

Installing OpenCL Libraries and their dependencies

sudo apt install ocl-icd-opencl-dev -y
sudo apt install libxcb-dri2-0 libxcb-dri3-0 libwayland-client0 libwayland-server0 libx11-xcb1 -y

Verifying Installation with clinfo

sudo apt install clinfo -y
clinfo

output like

''' arm_release_ver: g13p0-01eac0, rk_so_ver: 3 Number of platforms: 2 Platform Name: ARM Platform Platform Vendor: ARM Platform Version: OpenCL 2.1 v1.g6p0-01eac0.2819f9d4dbe0b5a2f89c835d8484f9cd Platform Profile: FULL_PROFILE ... '''


Installare Vulkan

ref ref deb file

scaricare ed installare il pacchetto deb

wget https://repo.rock-chips.com/edge/debian-release-v2.0.0/pool/main/r/rockchip-mali/rockchip-mali_1.9-12_arm64.deb
sudo dpkg -i rockchip-mali_1.9-12_arm64.deb

fare il link sudo ln -s /usr/lib/aarch64-linux-gnu/libmali-valhall-g610-g6p0-wayland-gbm-vulkan.so /usr/lib/aarch64-linux-gnu/libmali.so

inserire icd Loader

''' sudo mkdir -p /etc/vulkan/icd.d/

echo '{ "file_format_version": "1.0.0", "ICD": { "library_path": "/usr/lib/aarch64-linux-gnu/libmali-valhall-g610-g6p0-wayland-gbm-vulkan.so", "api_version": "1.0.0" } }' | sudo tee /etc/vulkan/icd.d/mali.json '''

installare vulkaninfo per verificare

sudo apt install vulkan-tools
vulkaninfo

Install TigerVNC Server

ref1 ref2 ref3

Installare Tasksel per inserire un ambiente grafico

in questo caso scegliere per esempio xfce

sudo apt install tasksel
sudo tasksel

installare tigervnc

sudo apt install tigervnc-standalone-server tigervnc-common

verificare quali sono i desktop disponibili

ls -hl /usr/share/xsessions/*

in questo caso avendo appena installato xfce ci sarà un file xfce.desktop

inserire la configurazione di VNC editando

sudo nano ~/.vnc/config

va inserito ''' rfbport=5901 localhost=no session=xfce geometry=1280x720 depth=32 desktop=Prova ''' facendo partire tigervnc con

tigervncserver

avremo il server su IP:5091

la lista è disponibile udando

tigervncserver -list

se ne può creare più di uno e si può fermare killandolo

tigervncserver -kill :1

definire uno user editando

sudo nano /etc/tigervnc/vncserver.users

se si vuole farlo partire in automatico va inserito il display e lo user che non sia root per es

1:=fabio

poi si fa partire il servizio

sudo systemctl start tigervncserver@:1.service

che si può controllare con

sudo systemctl status tigervncserver@:1.service

infine lo si abilita per quando il sistema reboota

sudo systemctl enable tigervncserver@:1.service

pèer tutte le funzioni digitare

tigervncserver -help

per esempio se si vuole fare tutto in manuale si può digitare

tigervncserver -rfbport 5901 -localhost no -geometry 1280x720 -depth 32 -desktop Prova -- xfce 

Native compilation on ARM/ARM64 host MPP RGA per FFMPEG

ref1 ref2 ref3 ref4

installare prima le dipendenze

''' sudo apt-get update -qq && sudo apt-get -y install
autoconf
automake
build-essential
cmake
git-core
libass-dev
libfreetype6-dev
libgnutls28-dev
libmp3lame-dev
libsdl2-dev
libtool
libva-dev
libvdpau-dev
libvorbis-dev
libxcb1-dev
libxcb-shm0-dev
libxcb-xfixes0-dev
meson
ninja-build
pkg-config
texinfo
wget
yasm
zlib1g-dev '''

MPP

'''

Build MPP

mkdir -p ~/dev && cd ~/dev git clone -b jellyfin-mpp --depth=1 https://github.com/nyanmisaka/mpp.git rkmpp pushd rkmpp mkdir rkmpp_build pushd rkmpp_build cmake
-DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=ON
-DBUILD_TEST=OFF
.. make -j $(nproc) sudo make install '''

RGA

'''

Build RGA

mkdir -p ~/dev && cd ~/dev git clone -b jellyfin-rga --depth=1 https://github.com/nyanmisaka/rk-mirrors.git rkrga meson setup rkrga rkrga_build
--prefix=/usr
--libdir=lib
--buildtype=release
--default-library=shared
-Dcpp_args=-fpermissive
-Dlibdrm=false
-Dlibrga_demo=false meson configure rkrga_build sudo ninja -C rkrga_build install '''

ffmpeg semplice

configurare con

./configure --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga

compilare

make -j$(nproc)

verificare

''' ./ffmpeg -decoders | grep rkmpp ./ffmpeg -encoders | grep rkmpp ./ffmpeg -filters | grep rkrga '''

finire l'intallazione

sudo make -j$(nproc) install

ffmpeg più completa

installare le librerie

''' sudo apt install libtwolame-dev libvidstab-dev libvo-amrwbenc-dev libvorbis-dev libvpx-dev libx264-dev libx265-dev libxml2-dev librubberband-dev libharfbuzz-dev libwebp-dev libzimg-dev libzvbi-dev libchromaprint-dev frei0r-plugins-dev ladspa-sdk aom-tools ladspa-sdk aom-tools libbs2b-dev dav1d libdav1d-dev libfdk-aac-dev flite1-dev libflite1 libgme-dev libgsm1-dev libopenmpt0 libopenmpt-dev openmpt123 libshine-dev libsvtav1enc-dev libbluray-dev libcaca-dev libopus-dev libsnappy-dev libsoxr-dev libspeex-dev libtheora-dev libxvidcore-dev libcdio-paranoia-dev sudo apt-get install opensc sudo apt-get build-dep opensc '''

configurare

''' ./configure --enable-chromaprint --enable-frei0r --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libdav1d --enable-libfdk-aac --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libmp3lame --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-nonfree --enable-opengl --enable-openssl --enable-version3 --enable-librubberband --enable-libharfbuzz --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libgsm --enable-vaapi --enable-libdrm --enable-rkmpp --enable-rkrga '''

compilare

make -j$(nproc)

verificare

''' ./ffmpeg -decoders | grep rkmpp ./ffmpeg -encoders | grep rkmpp ./ffmpeg -filters | grep rkrga '''

finire l'intallazione

sudo make -j$(nproc) install

utility per verificare

RK3588 dovrebbe avere

OpenGL ES1.1/2.0/3.2, OpenCL 2.2, and Vulkan 1.2

OpenGL

sudo apt install mesa-utils

glxinfo
glxgears
glxdemo

se non trova il display si può specificare con

DISPLAY=:1 glxinfo

oppure definendo la variabile

export $DISPLAY=:1

OpenCL

sudo apt install clpeak
sudo clpeak

Altri tools di verifica

glmark2 glmark2-es2 Unigine Benchmark

sudo apt install glmark2-es2

Panfork MESA RK3588

https://dietpi.com/forum/t/orange-pi-5-hardware-acceleration-enabled/16387

https://docs.mesa3d.org/install.html

https://gitlab.com/panfork/mesa

''' curl -sSf 'https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=index&search=0x0B2F0747E3BD546820A639B68065BE1FC67AABDE' | gpg --dearmor -o /etc/apt/trusted.gpg.d/rk3588-gpu.gpg echo 'deb https://ppa.launchpadcontent.net/liujianfeng1994/panfork-mesa/ubuntu jammy main' > /etc/apt/sources.list.d/rk3588-gpu.list echo 'deb https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu jammy main' >> /etc/apt/sources.list.d/rk3588-gpu.list apt update apt full-upgrade (sudo apt dist-upgrade ???) apt install mali-g610-firmware rockchip-multimedia-config '''

https://ppa.launchpadcontent.net/liujianfeng1994/panfork-mesa/ubuntu/dists/jammy/Release.gpg

verificare con questo fatto apposta per OPI5

https://forum.armbian.com/topic/26450-accelerated-video-options-for-installing-and-running/