Discussion

precompiled Mali gpu drivers for Debian

8 15835
nanolx  
Post Last Edited by nanolx at 2014-8-23 12:27

Post Last Edited by nanolx at 2014-8-23 12:26

Post Last Edited by nanolx at 2014-8-23 12:26

Hi folks,

I just bought a Banana Pi a week ago and after getting rather good results from gpu drivers I decided to build packages for them, so others can benefit aswell. As I already had an apt-repository (for i386/amd64) before, there are more packages than just gpu drivers available (but that's a diffrent story). I tested them on Raspbian for Banana Pi 3.1 (which luckily supplies all required kernel modules).

Packages (Mali gpu drivers, libraries and utilities):
  • libdri2-1, libdri2-dev, libdri2-dbg: DRI library (required as it's built-in into X.org in Debian)
  • libump, libump-dev, libump-dbg: ARM Unified Memory Provider library
  • libvdpau-sunxi: Experimental VDPAU implementation for sunxi SoCs¹
  • sunxi-mali, sunxi-mali-propritary: Mali 400 userspace drivers (r3p0)²
  • xserver-xorg-video-fbturbo: accelerated X.org video module³
  • sunxi-tools: general tools for working with Banana Pi


Notes:
¹: libvdpau-sunxi usage examples:
  1. mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau, [filename]
  2. mpv --vo=vdpau --hwdec=vdpau --hwdec-codecs=all [filename]
  3. export VDPAU_OSD=1 # enable OSD in media players (experimental)
Copy the Code
²: replaces files in libegl*, libgles*. If you remove sunxi-mali/sunxi-mali-propritary packages, re-install them before rebooting.
³: the fbturbo package sets up X.org and Udev. For X.org it's ensured fbturbo is used in favour of fbdev, aswell as disabling DPMS (which does not work with fbturbo and results in a non-waking display once it went black after 10 minutes of inactivity). For Udev it gives proper permissions to device nodes like /dev/g2d and others. To enable full video performance to normal system users issue:
  1. usermod -a -G video [username]
Copy the Code
username will be most likely bananapi. Also this version of fbturbo auto-enables vdpau, so no need to modify environment, unless something does not properly work. I tested it with mpv (available in deb-multimedia repository) and it's working like a charm.

Usage:
So enough bla bla. You can access my packages by creating /etc/apt/sources.list.d/nanolx.list with the following content
  1. deb http://apt.nanolx.org/ photonic main
  2. deb-src http://apt.nanolx.org/ photonic main
Copy the Code
If you trust me enough, you can grab and add my apt-key using
  1. wget http://apt.nanolx.org/photonic.asc
  2. sudo apt-key add photonic.asc
  3. rm photonic.asc
Copy the Code
Then you can use a package manager as usual (I recommend Synaptic for GUI or Aptitude for Command Line). For full information about my repository check here.

Feel free to report back issues or suggestions.
Tonband  
Can you please write, how you compiled the gpu driver?
I wanna do that for lubuntu 3.1.1, but it fails, as i wrote in another thread, see: http://forum.lemaker.org/4312-1- ... ali_gpu_driver.html

wdehoog  
Thank you for making this available. Now I want to install the vdpau drivers on a lubuntu image. Do I have to install all your packages or is it enough to take only libvdpau-sunxi?

wdehoog  
Could not resist and tried installing just libvdpau-sunxi. Seems to work although I have to prepend VDPAU_DRIVER=sunxi to the player commandlines.

After that I installed xserver-xorg-video-fbturbo assuming it would install the rest as well. After reboot X works but the logs show:

[    32.608] (II) LoadModule: "fbturbo"
[    32.626] (WW) Warning, couldn't open module fbturbo
[    32.627] (II) UnloadModule: "fbturbo"
[    32.627] (II) Unloading fbturbo
[    32.627] (EE) Failed to load module "fbturbo" (module does not exist, 0)

Any idea what might be wrong?

wdehoog  
Looks like lubuntu has another x server. After I linked the fb turbo module files to another path (/usr/lib/arm-linux-gnueabihf/xorg/extra-modules) the log shows


[  2090.664] (II) LoadModule: "fbturbo"
[  2090.665] (II) Loading /usr/lib/arm-linux-gnueabihf/xorg/extra-modules/fbturbo_drv.so
[  2090.674] (II) Module fbturbo: vendor="X.Org Foundation"
[  2090.674]    compiled for 1.16.0, module version = 0.5.1
[  2090.674]    Module class: X.Org Video Driver
[  2090.674]    ABI class: X.Org Video Driver, version 18.0
[  2090.674] (EE) module ABI major version (18) doesn't match the server's version (15)
[  2090.675] (II) UnloadModule: "fbturbo"
[  2090.675] (II) Unloading fbturbo
[  2090.675] (EE) Failed to load module "fbturbo" (module requirement mismatch, 0)

wdehoog  
When I compile and install the fbturbo modules on my BPI it works. mplayer and mpv both work.

I also installed drivers for my sundtek dvb stick and it sort of works (tested dvb-c). Image quality is not so good as on my normal pc. Sound sometimes gets out of sync, only mpv gave sound to the jack output (did not test HDMI). Only normal channels work, HD channels showed nothing.

neoe  
Greate work! Thank you.

I installed all 10 packages:
  1. apt-get install libdri2-1  libdri2-dev  libdri2-dbg libump libump-dev libump-dbg     libvdpau-sunxi    sunxi-mali  sunxi-mali-propritary
Copy the Code
then
  1. mplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau, test.mp4
Copy the Code
but cannot play,
  1. Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
  2. [vdpau] Error when calling vdp_device_create_x11: 1
  3. Error opening/initializing the selected video_out (-vo) device.
Copy the Code
any help?

jobarjo  
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory

I have the same problem.
the env VDPAU_DRIVER=sunxi seems to have no effect.
I had to install mplayer2, since mplayer doesn't seem to have vdpau support...

I installed raspbian which is debian wheezy.
I see that you have mpv, which doesn't exist in raspbian.
Did you install a debian jessie instead?

I am a newbie and have the following questions:
1. Where can I download the packages?
2. Just install all of them? Do I need to do some configuration myself? If yes, how?

Thanks in advance.

You have to log in before you can reply Login | Sign Up

Points Rules