first commit
This commit is contained in:
commit
e0d0e8f2bc
1 changed files with 352 additions and 0 deletions
352
README.md
Normal file
352
README.md
Normal file
|
@ -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/
|
Loading…
Reference in a new issue