382 lines
No EOL
10 KiB
Markdown
382 lines
No EOL
10 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)
|
|
https://github.com/tsukumijima/libmali-rockchip/releases
|
|
|
|
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
|
|
|
|
utilizzata anche
|
|
|
|
sudo wget https://github.com/JeffyCN/mirrors/raw/libmali/lib/aarch64-linux-gnu/libmali-valhall-g610-g24p0-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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
sudo apt install tigervnc-tools
|
|
|
|
verificare quali sono i desktop disponibili
|
|
|
|
ls -hl /usr/share/xsessions/*
|
|
|
|
in questo caso avendo appena installato xfce ci sarà un file xfce.desktop
|
|
|
|
far partire per esempio con
|
|
|
|
tigervncserver -rfbport 5901 -localhost no -geometry 1280x720 -depth 32 -desktop Prova -- xfce
|
|
|
|
se si vuole fare una configurazione in automatico senza scrivere tutto
|
|
|
|
killare la sessieno appena lanciata
|
|
|
|
tigervncserver -kill :1
|
|
|
|
inserire la configurazione di VNC editando
|
|
|
|
sudo nano ~/.vnc/config
|
|
|
|
va inserito
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
./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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
./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
|
|
|
|
```bash
|
|
./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://docs.mesa3d.org/install.html
|
|
|
|
https://dietpi.com/forum/t/orange-pi-5-hardware-acceleration-enabled/16387
|
|
|
|
https://docs.mesa3d.org/install.html
|
|
|
|
https://gitlab.com/panfork/mesa
|
|
|
|
```bash
|
|
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/
|
|
|
|
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0B2F0747E3BD546820A639B68065BE1FC67AABDE
|
|
|
|
```sh
|
|
deb https://ppa.launchpadcontent.net/liujianfeng1994/panfork-mesa/ubuntu jammy main
|
|
deb-src https://ppa.launchpadcontent.net/liujianfeng1994/panfork-mesa/ubuntu jammy main
|
|
deb https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu jammy main
|
|
deb-src https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu jammy main
|
|
``` |