3 3
NicoD

tutorial Build Armbian with Panfrost

Recommended Posts

Panfrost instructions Armbian
 

  • !!!! I made a script that does all this, check a few posts later for the script !!!!!

 

This tutorial explains how to build an Armbian image with panfrost. And what else you need to make it work.

These are early drivers. Many things don't work yet. Only OpenGL 2.1 works now.

 

You need to build an image with kernel 5.2 or later.
For this you need an x86 pc with Ubuntu 18.04 or a virtual Ubuntu 18.04 x86 image.


First install git, then clone the build folder from Armbian, and enter the build directory.

 

apt-get -y -qq install git
git clone --depth 1 https://github.com/armbian/build
cd build

Now run the script with EXPERT=yes so you can choose to build a dev image.

sudo ./compile EXPERT=yes
  • Choose "Full OS image for flashing"
  • Then "Show a kernel configuration menu before compilation"
  • Choose your board. If it's not in the regular list, look in "Show SCS/WIP/EOS/TVB".
  • Choose Development version
  • kernel configuration -> device drivers -> graphic drivers -> panfrost

 

Let it run until it's finished. The image will be in the /build/output/images

Burn it to an SD-card/eMMC/...

 

Now we need to install all the needed software

sudo apt install flex bison python3-mako libwayland-egl-backend-dev libxcb-dri3-dev libxcb-dri2-0-dev libxcb-glx0-dev libx11-xcb-dev libxcb-present-dev libxcb-sync-dev libxxf86vm-dev libxshmfence-dev libxrandr-dev libwayland-dev libxdamage-dev libxext-dev libxfixes-dev x11proto-dri2-dev x11proto-dri3-dev x11proto-present-dev x11proto-gl-dev x11proto-xf86vidmode-dev libexpat1-dev libudev-dev gettext glmark2 glmark2-es2 mesa-utils xutils-dev libpthread-stubs0-dev ninja-build bc python-pip flex bison cmake git valgrind llvm llvm-8-dev python3-pip  pkg-config zlib1g-dev wayland-protocols

Download and install meson

wget http://ftp.de.debian.org/debian/pool/main/m/meson/meson_0.52.0-2_all.deb
sudo dpkg -i meson_0.52.0-2_all.deb

Download and install mesa DRM

git clone git://anongit.freedesktop.org/mesa/drm
cd drm
meson build --prefix=/usr
ninja -C build
sudo -E ninja -C build install
cd ..

Download and install mesa graphics

git clone git://anongit.freedesktop.org/mesa/mesa
cd mesa
meson -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,kmsro -Dlibunwind=false -Dprefix=/usr build/
ninja -C build/
sudo ninja -C build/ install

REBOOT

 

Optionally, update sdl (recommended)

git clone https://github.com/SDL-mirror/SDL.git
cd SDL
mkdir build
cd build
cmake ../  
make -j6
sudo make install

REBOOT

 

Only thing that works ok with it is supertuxkart, to install it.

sudo apt install supertuxkart

 

Panfrost - Linux games working from repo
SuperTuxKart - Works well
ExtremeTuxRacer - lots of glitches
AssaultCube - lots of glitches

 

Instructions by Salvador Liébana & NicoD

Share this post


Link to post
Share on other sites
8 hours ago, soerenderfor said:

Just a quick for you: Do the Panfrost make the RockPi4 faster in desktop use/mode? And in which way. Thanks.

 

Best Regards.

 

panfrost driver is far away from daily use, still under heave develop..

 

if you have mali450/400 device, lima driver is near.

Share this post


Link to post
Share on other sites
1 hour ago, ning said:

 

panfrost driver is far away from daily use, still under heave develop..

 

if you have mali450/400 device, lima driver is near.

I had the impression it was the other way around.

Have you had success with lima? or anyone?

 

Anyway, Looking forward to seeing the @NicoD's video about tee panfrost experience.

Share this post


Link to post
Share on other sites

It has gotten a lot easier to use Panfrost now.
Download one of @balbes150 5.x Bionic images for your device. 
The panfrost module is already added, all that needs to be done is installing the mesa drivers. For that I made a script. 
Download the file here in attachment and unpack it. 
Go into the folder Panfrost
 

cd Panfrost
sudo ./installPanfrost.sh

Install all for best results.

Panfrost has improved a lot on 5.4. Many games now work normally, some still have some smaller problems. It has become usable.
Greetings, NicoD

Edit : Script update. You now can upgrade the mesa and drm drivers after installation

Update 2 : Also Lima support now. 

 

 

 

 

installPanfrost.sh.7z

Share this post


Link to post
Share on other sites
On 12/13/2019 at 6:29 AM, NicoD said:

 


cd Panfrost
sudo ./installPanfrost.sh

 

Panfrost.7z 275.06 kB · 9 downloads

Magicsee N6 Max rk3399

Armbian_19.11.4_Arm-64_bionic_dev_5.5.0-rc2_desktop_20191228 with rk3399-rock-pi-4.dtb tweaked to cpuspeed 1.70 & 2.01 GHz

Boots to desktop :), usable with some artifacts - will test again upon kernel update

 

Thanks balbes & NicoD

Share this post


Link to post
Share on other sites

I think that this is faster way

sudo apt-get install software-properties-common -y

sudo add-apt-repository ppa:oibaf/graphics-drivers 

sudo apt-get update

sudo apt-get upgrade

but oibaf provide only arm64 packages!

 

Share this post


Link to post
Share on other sites

Thanks for the instructions @NicoD!

 

I modified the mesa build options to enable egl:

meson -D egl=true -D gles1=true -D gles2=true -D shared-glapi=true -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,kmsro -Dlibunwind=false -Dprefix=/usr build/

 

With egl one can compile and run git version of supertuxkart.

Share this post


Link to post
Share on other sites
On 12/30/2019 at 5:55 AM, amirul said:

Magicsee N6 Max rk3399

Armbian_19.11.4_Arm-64_bionic_dev_5.5.0-rc2_desktop_20191228 with rk3399-rock-pi-4.dtb tweaked to cpuspeed 1.70 & 2.01 GHz

Boots to desktop :), usable with some artifacts - will test again upon kernel update

 

Thanks balbes & NicoD

libgl1-mesa-dri 19.2.1-1ubuntu1~18.04.1 enables panfrost 

Still clunky with some artifacts but could only get better with further updates

Share this post


Link to post
Share on other sites

Strangely, when you build mesa-20, everything goes correctly, but after installing mesa, the old mesa-19 remains. Something changed in the rules, how do I install the new version ? Previously, the instruction worked correctly and mesa started using Panfrost. By the way, installation from repositories of the latest mesa-20 also does not use Panfrost.

Share this post


Link to post
Share on other sites
On 3/29/2020 at 1:38 PM, balbes150 said:

Strangely, when you build mesa-20, everything goes correctly, but after installing mesa, the old mesa-19 remains. Something changed in the rules, how do I install the new version ? Previously, the instruction worked correctly and mesa started using Panfrost. By the way, installation from repositories of the latest mesa-20 also does not use Panfrost.

 

IIRC the default build settings for mesa install it in /usr/local when the version from packages goes into /usr. This can leave you in a pretty weird state in my experience. Setting the install path to /usr helps.

Share this post


Link to post
Share on other sites
6 minutes ago, jcaron said:

IIRC the default build settings for mesa install it in /usr/local when the version from packages goes into /usr. This can leave you in a pretty weird state in my experience. Setting the install path to /usr helps.

Does the prefix that is specified during configuration not specify where the installation will be performed ?

 

meson -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,kmsro -Dlibunwind=false -Dprefix=/usr build/

Share this post


Link to post
Share on other sites
3 3