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

352 lines
9 KiB
Markdown

# Orange Pi 5 Plus HW Acceleration
## Install OpenCL Mali610
[link orig](https://ib.bsb.br/setting-up-gpu-drivers-on-rk3588/#installing-mali-gpu-driver)
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](https://github.com/Bleach665/Mali610Vulkan)
[ref deb file](https://repo.rock-chips.com/edge/debian-release-v2.0.0/pool/main/r/rockchip-mali/)
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](https://guide.debianizzati.org/index.php?title=TigerVNC)
[ref2](https://computingforgeeks.com/install-and-configure-tigervnc-vnc-server-on-debian/)
[ref3](https://www.howtoforge.com/how-to-install-vnc-server-on-debian-12/)
### 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](https://github.com/rockchip-linux/mpp)
[ref2](https://github.com/nyanmisaka/ffmpeg-rockchip/tree/master)
[ref3](https://github.com/nyanmisaka/ffmpeg-rockchip/wiki/Compilation)
[ref4](https://forums.linuxmint.com/viewtopic.php?t=435381)
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/