From e0d0e8f2bcec13e973f8479d005a12e070834e56 Mon Sep 17 00:00:00 2001 From: Fabio Date: Thu, 21 Aug 2025 16:17:23 +0200 Subject: [PATCH] first commit --- README.md | 352 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..93ad3e8 --- /dev/null +++ b/README.md @@ -0,0 +1,352 @@ +# 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/