5.3 KiB
Mesa & Mali drivers Debian 12
Hey everyone, for the past couple of days I've been looking into the Mesa-VPU script made by AmazingFate that's used to patch Mesa/VPU onto a custom build of Armbian. https://github.com/armbian/build/blob/main/extensions/mesa-vpu.sh
I already have an install of Armbian (Debian XFCE 6.12.28-current-rockchip64 ) on my Rock5b and was looking into applying as much as I can without re-building an image or starting from scratch.
From my understanding, You'd need the vendor rk3588 kernel if you want the best possible compatibility with things like the VPU for multimedia acceleration (Someone please correct me if this is not the case lol)
What follows is what I was able to piece together after troubleshooting, reading the Mesa changelog & trying to apply as many packages as I can from AmazingFate's kernel extension script. I've also included some tweaks for XFCE to hopefully provide a smooth graphical experience.
Although my Rock5b is used as a headless server and doesnt have anything plugged into the HDMI port, I can say that the following changes have made a huge difference in graphical performance of VNC.
Please keep in mind that i'm not a developer for Armbian. I just wanted to share this as a guide i've put together to hopefully help someone else who's tried the same (Please let me know your thoughts or if there was anything i've missed. Like I said, this is what has worked for me) (Obviously the correct fix is to rebuild Armbian with Mesa-VPU. What follows was done as an experiment)
GUIDE BELOW. THIS IS NOT A SHELL SCRIPT! PLEASE READ AND DO NOT COPY/PASTE ENTIRETY INTO TERMINAL
-- 01 Setup AmazingFate Panfork-Mesa repo for mali-g610-firmware 01
1A: import gpg key and use it to sign repo
wget -qO - https://download.opensuse.org/repositories/home:/amazingfate:/panfork-mesa/Debian_12/Release.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/panfork-mesa.gpg
1B: Add Repo to apt sources & update
echo "deb https://download.opensuse.org/repositories/home:/amazingfate:/panfork-mesa/Debian_12/ /" | sudo tee /etc/apt/sources.list.d/panfork-mesa.list
sudo apt update
1C: Install firmware
sudo apt install mali-g610-firmware libmali-g610-x11
1D: RECOMMENDED : Remove panfork-mesa repo
sudo rm -rf /etc/apt/sources.list.d/panfork-mesa.list
sudo rm -rf /etc/apt/trusted.gpg.d/panfork-mesa.gpg
-- 02 Enable Debian Experimental Repo for recent Mesa Packages 02 --
sudo nano /etc/apt/sources.list
2A: Add the following to the bottom of the document...
deb http://deb.debian.org/debian unstable main contrib non-free
deb http://deb.debian.org/debian experimental main
2B: Update and install Mesa Packages
sudo apt update
sudo apt install -t experimental mesa-vulkan-drivers mesa-utils libgl1-mesa-dri libglx-mesa0 mesa-vdpau-drivers mesa-va-drivers mesa-opencl-icd mesa-libgallium
2C: RECOMMENDED : Re-open apt sources and remove Experimental/Unstable repos...
sudo nano /etc/apt/sources.list
Remove the following and update apt...#
deb http://deb.debian.org/debian unstable main contrib non-free
deb http://deb.debian.org/debian experimental main
sudo apt update
-- 03 Add rockchip-multimedia Ubuntu Repo to Apt 03 --
echo "deb [arch=arm64] https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/rockchip-multimedia.list
3A: Download Key and add convert to gpg
curl -o rockchip-multimedia.asc "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8065BE1FC67AABDE"
gpg --dearmor rockchip-multimedia.asc
sudo mv rockchip-multimedia.asc.gpg /etc/apt/keyrings/rockchip-multimedia.gpg
3B: Add PPA Repo and update
echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/rockchip-multimedia.gpg] https://ppa.launchpadcontent.net/liujianfeng1994/rockchip-multimedia/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/rockchip-multimedia.list
sudo apt update
3C: Install packages
sudo apt install libv4l-rkmpp chromium gstreamer1.0-rockchip1 rockchip-multimedia-config
3D: OPTIONAL : Disable rockchip-multimedia PPA repo
sudo mv /etc/apt/sources.list.d/rockchip-multimedia.list /etc/apt/sources.list.d/rockchip-multimedia.list.disabled
sudo apt update
-- 04 Optimize XFCE/Xorg and Reboot 04 --
4A: Open default xorg config
sudo nano /etc/X11/xorg.conf.d/01-orangepi-defaults.conf
Add the following...
Section "Device"
Identifier "Mali-G610"
Driver "modesetting"
Option "DRI" "3" # Required for Mali GPUs
Option "GALLIUM_DRIVER" "panfrost"
Option "PageFlip" "on" # Reduces tearing
Option "TearFree" "true" # Xfce-specific anti-tearing
EndSection
4B: Add XFCE Specific tweaks
sudo nano /etc/X11/xorg.conf.d/20-modesetting.conf
Add the following...
Section "Extensions"
Option "COMPOSITE" "Enable"
EndSection
Section "ServerFlags"
Option "AutoAddGPU" "off" # Prevents duplicate GPU detection
EndSection
4C: Reboot
sudo reboot now
TEST
vulkan
vulkaninfo --summary
glx
glxinfo