Lubuntu v3.0 and XBMC - compiling issues

41 27133
Post Last Edited by tony_zhang at 2014-7-6 19:51


Well, I'm trying to compile XBMC on the last Lubuntu version. Following these instructions on linux-sunxi I'm on a blocked point. This is what I've done:
- due some dependencies issues I've manually installed the 'UMP (Unified Memory Provider) userspace library' from http://linux-sunxi.org/Mali_binary_driver
- then, due samba-4.0 path issues I've applied this patch and added 'export CXXFLAGS="-I/usr/include/samba-4.0";' before start compiling.

These steps allowed me to compile succesfully XBMC, but it's not starting.

The first error I've encured was:
  1. root@lemaker:/allwinner/xbmc-pvr-binhf/bin# ./xbmc
  2. /allwinner/xbmc-pvr-binhf/lib/xbmc/xbmc.bin: error while loading shared libraries: libGLESv2.so: cannot open shared object file: No such file or directory
Copy the Code
Looking for called shared libraries on the binary:
  1. root@lemaker:/allwinner/xbmc-pvr-binhf/bin# ldd /data/apps/allwinner/xbmc-pvr-binhf/lib/xbmc/xbmc.bin | grep "not found"        libGLESv2.so => not found
Copy the Code
So, searching for this file, I've seen the sunxi-mali had it. Maybe during the dependencies compile, this was skipped due some error. Moved to 'sunxi-mali' folder, I've tried to recompile it manually, but gives me these errors:
  1. root@lemaker:/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali# make installmake -f Makefile.configABI="armhf" (Detected)Error: Failed to open /dev/mali: No such file or directoryVERSION="" (Detected)Error: Failed to open /dev/mali: No such file or directoryError: Failed to open /dev/mali: No such file or directoryError: Failed to open /dev/mali: No such file or directoryError: Failed to open /dev/mali: No such file or directoryError: Failed to open /dev/mali: No such file or directorymake[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'Makefile.config:57: Unknown/unhandled Mali Version ""Makefile.config:58: Use VERSION=(r2p4,r3p0,r3p1,r3p2-01rel1) insteadError: Failed to open /dev/mali: No such file or directoryMakefile.config:59: *** Unknown/unhandled Mali Version "".  Stop.make[1]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'make: *** [config.mk] Error 2
Copy the Code
mali module is not installed and not possible to load it
  1. # modprobe malimodprobe: FATAL: Module mali not found.# lsmodModule                  Size  Used byrfcomm                 58154  0 bnep                   14285  2 bluetooth             263337  10 bnep,rfcommdm_crypt               16196  0 8192cu                453451  0 mali_drm                2616  0 drm                   208898  1 mali_drmump                    52441  0 lcd                     3802  0
Copy the Code
So i tried to provide by myself the configure options (ABI based on architecture: armhf and version choosen the last):
  1. root@lemaker:/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali# make config VERSION=r3p2-01rel1 ABI=armhfrm -f config.mkmake config.mkmake[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'make -f Makefile.configABI="armhf" (Provided)VERSION="r3p2-01rel1" (Provided)EGL_TYPE="framebuffer" (Detected)make[2]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'echo "MALI_VERSION ?= r3p2-01rel1" > config.mkecho "MALI_LIBS_ABI ?= armhf" >> config.mkecho "MALI_EGL_TYPE ?= framebuffer" >> config.mkmake[2]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'make[1]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'root@lemaker:/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali# make installmake -C lib installmake[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib'make -C mali installmake[2]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib/mali'make -C r3p2-01rel1/armhf/framebuffer/make[3]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib/mali/r3p2-01rel1/armhf/framebuffer'install -m 644 libMali.so libEGL.so.1.4 libGLESv1_CM.so.1.1 libGLESv2.so.2.0 //allwinner/xbmc-pvr-binhf/lib/rm -f //allwinner/xbmc-pvr-binhf/lib/libEGL.so.1 //allwinner/xbmc-pvr-binhf/lib/libEGL.soln -sf libEGL.so.1.4 //allwinner/xbmc-pvr-binhf/lib/libEGL.so.1ln -sf libEGL.so.1 //allwinner/xbmc-pvr-binhf/lib/libEGL.sorm -f //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.so.1 //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.soln -sf libGLESv1_CM.so.1.1 //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.so.1ln -sf libGLESv1_CM.so.1 //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.sorm -f //allwinner/xbmc-pvr-binhf/lib/libGLESv2.so.2 //allwinner/xbmc-pvr-binhf/lib/libGLESv2.soln -sf libGLESv2.so.2.0 //allwinner/xbmc-pvr-binhf/lib/libGLESv2.so.2ln -sf libGLESv2.so.2 //allwinner/xbmc-pvr-binhf/lib/libGLESv2.somake[3]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib/mali/r3p2-01rel1/armhf/framebuffer'make[2]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib/mali'make[1]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib'make -C include installmake[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/include'mkdir -p //allwinner/xbmc-pvr-binhf//include/EGLinstall -m 644 EGL/egl.h EGL/eglext.h //allwinner/xbmc-pvr-binhf//include/EGLmkdir -p //allwinner/xbmc-pvr-binhf//include/EGLinstall -m 644 EGL/eglplatform_fb.h //allwinner/xbmc-pvr-binhf//include/EGL/eglplatform.hmkdir -p //allwinner/xbmc-pvr-binhf//include/GLESinstall -m 644 GLES/gl.h GLES/glext.h GLES/glplatform.h //allwinner/xbmc-pvr-binhf//include/GLESmkdir -p //allwinner/xbmc-pvr-binhf//include/GLES2install -m 644 GLES2/gl2.h GLES2/gl2ext.h GLES2/gl2platform.h //allwinner/xbmc-pvr-binhf//include/GLES2mkdir -p //allwinner/xbmc-pvr-binhf//include/KHRinstall -m 644 KHR/khrplatform.h //allwinner/xbmc-pvr-binhf//include/KHRmake[1]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/include'
Copy the Code
So, now the libraries are located (but maybe wrong...)
  1. # locate libGLESv2.so/data/apps/allwinner/xbmc-pvr-binhf/lib/libGLESv2.so/data/apps/allwinner/xbmc-pvr-binhf/lib/libGLESv2.so.2/data/apps/allwinner/xbmc-pvr-binhf/lib/libGLESv2.so.2.0
Copy the Code
And now, executing xbmc I obtain:
  1. root@lemaker:~/.xbmc/temp# /allwinner/xbmc-pvr-binhf/bin/xbmc/allwinner/xbmc-pvr-binhf/lib/xbmc/xbmc.bin: symbol lookup error: /allwinner/xbmc-pvr-binhf/lib/xbmc/xbmc.bin: undefined symbol: eglGetDisplay
Copy the Code
The xbmc log ens with:
  1. 18:31:01 T:3043368960   DEBUG: CPeripheralBusUSB - initialised udev monitor18:31:01 T:3031430176  NOTICE: Thread XBMC Peripherals start, auto delete: false18:31:01 T:3043368960    INFO: LIRC Initialize: using: /dev/lircd18:31:01 T:3043368960    INFO: LIRC Initialize: connect failed: No such file or directory18:31:01 T:3043368960   DEBUG: Failed to connect to LIRC. Retry in 10s.18:31:01 T:3043368960   DEBUG: UDisks: org.freedesktop.DBus.Error.ServiceUnknown - The name org.freedesktop.UDisks was not provided by any .service files18:31:01 T:3043368960   DEBUG: DeviceKit.Disks: org.freedesktop.DBus.Error.ServiceUnknown - The name org.freedesktop.DeviceKit.Disks was not provided by any .service files18:31:01 T:3043368960   DEBUG: Selected Posix mount as storage provider18:31:01 T:3043368960   ERROR: A10: display mode 255 is unknown. Assume refreh rate 60Hz18:31:01 T:3043368960  NOTICE: InitWindowSystem: Using EGL Implementation: A10
Copy the Code
Any idea?


Sorry, I don't know much about that. I will keep track this post. Thanks for Simon

Now I'm searching help on linux-sunxi mailinglist. I'll update here in case of some interesting news.

Bye, Simon

xefil, Could you please PM me your email?

Tony have you got the hwpack for the Banana Pi?
I have found an image i want to try and adapt

xefil, Could you please PM me your email?
tony_zhang Posted at 2014-7-6 07:50

Yess, done!

Reply 5# Thepiman

Please PM me your email.

Post Last Edited by xefil at 2014-7-9 09:43

Hi guys,

Thanks to the guys @Lemaker I was able to load the missing modules, compile sunxi-vdpau drivers, and, after correcting some additional problems on XBMC source code from linux-sunxi, compile it and start it correctly.
The stream is played in hardware:

  1. D(Audio: dts (DTS), 48000 Hz, 5.1 (side), s16, 1536Kb/s P(aq:99% Kb/s:1475.37, att0.0db)
  2. D(Video: h264 (High), yuv420p, 1920x1080[SAR 1:1 DAR 16:9])P(fr:23.976, vq:99%, dc:A10', Mb8.56, drop:0, pc:none)

  3. C( ad:0.000 a/v0.053, edl_-, dcpu 6%, acpu:14% vcpu 1% cache:0B 100%)W(fps:23.51 CPU0:35,4% CPU1:36.7%)
Copy the Code

Important is at dc:A10 (hardware decoding) and the CPU that is not at 100%. Before, in software, it is dc:dc:ff-h264 and the CPU is 100% all the time.

It's not completely smooth, it happens that it crashes, but it's a good step in the right direction ;-)

This evening I'll try it better at home.


That is great, have you tried the fbturbo driver on it as it should speed i up using less resources.

Well done getting that far, can you create an image when you get chance?

Thanks for your suggestion Thepiman. I'll try it out too. Currently I'm compiling VLC with cedar to give it a try as well. Testing videos here at home, I haven't reached a fluid play as expected even if it IS with hardware decoding.
I'll share the image soon or, at least, share the steps I've followed.


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

Points Rules