Lubuntu v3.0 on A20 AllWinner - compiling issues and StartUp problems
#1
Hello,

I'm here again, searching for help. I've purchased a banana-pi board based on AllWinner A20 chip.
I'm trying to compile XBMC following these instructions (http://linux-sunxi.org/XBMC) on a BananaPI device (http://www.lemaker.org/) with Lubuntu provided by the constructor:
http://www.lemaker.org/index.php?m=conte...id=9&id=38

I've asked on linux-sunxi and on BananaPI for help, but for now nothing new.

Here some informations about the device

Code:
root@lemaker:~# cat /etc/debian_version
jessie/sid
root@lemaker:~# lsb_release -a        
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:        14.04
Codename:       trusty

root@lemaker:~# lshw
lemaker                  
    description: Computer
    width: 32 bits
  *-core
       description: Motherboard
       physical id: 0
     *-memory
          description: System memory
          physical id: 0
          size: 873MiB
     *-cpu
          physical id: 1
          bus info: cpu@0
          size: 912MHz
          capacity: 912MHz
          capabilities: cpufreq
  *-network
       description: Ethernet interface
       physical id: 1
       logical name: eth0
       serial: 02:89:06:03:25:36
       size: 100Mbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical tp aui bnc mii fibre 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=sunxi_gmac driverversion=SUNXI GMAC driver V0.1 duplex=full ip=172.18.0.180 link=yes multicast=yes port=MII speed=100Mbit/s

root@lemaker:~# uname -a
Linux lemaker 3.4.90 #1 SMP PREEMPT Wed Jun 25 19:54:01 CST 2014 armv7l armv7l armv7l GNU/Linux


Following these instructions on linux-sunxi I'm on a blocked point. This is what I've done until here:
- due some dependencies issues during xmbc compile 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:

Code:
root@lemaker:/allwinner/xbmc-pvr-binhf/bin# ./xbmc
/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

Looking for called shared libraries on the binary:

Code:
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

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:

Code:
root@lemaker:/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali# make install
make -f Makefile.config
ABI="armhf" (Detected)
Error: Failed to open /dev/mali: No such file or directory
VERSION="" (Detected)
Error: Failed to open /dev/mali: No such file or directory
Error: Failed to open /dev/mali: No such file or directory
Error: Failed to open /dev/mali: No such file or directory
Error: Failed to open /dev/mali: No such file or directory
Error: Failed to open /dev/mali: No such file or directory
make[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) instead
Error: Failed to open /dev/mali: No such file or directory
Makefile.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

mali module is not installed and not possible to load it, maybe due incompatible HW?

Code:
# lsmod
Module                  Size  Used by
rfcomm                 58154  0
bnep                   14285  2
bluetooth             263337  10 bnep,rfcomm
dm_crypt               16196  0
8192cu                453451  0
mali_drm                2616  0
drm                   208898  1 mali_drm
ump                    52441  0
lcd                     3802  0
# modprobe mali
modprobe: FATAL: Module mali not found.



So i tried to provide by myself the configure options. ABI based on architecture: armhf and version choosen the last.

Code:
# make config VERSION=r3p2-01rel1 ABI=armhf
rm -f config.mk
make config.mk
make[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali'
make -f Makefile.config
ABI="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.mk
echo "MALI_LIBS_ABI ?= armhf" >> config.mk
echo "MALI_EGL_TYPE ?= framebuffer" >> config.mk
make[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 install
make -C lib install
make[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/lib'
make -C mali install
make[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.so
ln -sf libEGL.so.1.4 //allwinner/xbmc-pvr-binhf/lib/libEGL.so.1
ln -sf libEGL.so.1 //allwinner/xbmc-pvr-binhf/lib/libEGL.so
rm -f //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.so.1 //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.so
ln -sf libGLESv1_CM.so.1.1 //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.so.1
ln -sf libGLESv1_CM.so.1 //allwinner/xbmc-pvr-binhf/lib/libGLESv1_CM.so
rm -f //allwinner/xbmc-pvr-binhf/lib/libGLESv2.so.2 //allwinner/xbmc-pvr-binhf/lib/libGLESv2.so
ln -sf libGLESv2.so.2.0 //allwinner/xbmc-pvr-binhf/lib/libGLESv2.so.2
ln -sf libGLESv2.so.2 //allwinner/xbmc-pvr-binhf/lib/libGLESv2.so
make[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 install
make[1]: Entering directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/include'
mkdir -p //allwinner/xbmc-pvr-binhf//include/EGL
install -m 644 EGL/egl.h EGL/eglext.h //allwinner/xbmc-pvr-binhf//include/EGL
mkdir -p //allwinner/xbmc-pvr-binhf//include/EGL
install -m 644 EGL/eglplatform_fb.h //allwinner/xbmc-pvr-binhf//include/EGL/eglplatform.h
mkdir -p //allwinner/xbmc-pvr-binhf//include/GLES
install -m 644 GLES/gl.h GLES/glext.h GLES/glplatform.h //allwinner/xbmc-pvr-binhf//include/GLES
mkdir -p //allwinner/xbmc-pvr-binhf//include/GLES2
install -m 644 GLES2/gl2.h GLES2/gl2ext.h GLES2/gl2platform.h //allwinner/xbmc-pvr-binhf//include/GLES2
mkdir -p //allwinner/xbmc-pvr-binhf//include/KHR
install -m 644 KHR/khrplatform.h //allwinner/xbmc-pvr-binhf//include/KHR
make[1]: Leaving directory `/data/software/xbmc-install/xbmca10/tools/a10/depends/opengles/sunxi-mali/include'



So, now the libraries are located (but maybe wrong??)

Code:
# updatedb
# 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

And now, executing xbmc I obtain:

Code:
root@lemaker:/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

The xbmc log ens with:

Code:
17:17:32 T:3043540992   DEBUG: CPeripheralBusUSB - initialised udev monitor
17:17:32 T:3031430176  NOTICE: Thread XBMC Peripherals start, auto delete: false
17:17:32 T:3043540992    INFO: LIRC Initialize: using: /dev/lircd
17:17:32 T:3043540992    INFO: LIRC Initialize: connect failed: No such file or directory
17:17:32 T:3043540992   DEBUG: Failed to connect to LIRC. Retry in 10s.
17:17:32 T:3043540992   DEBUG: UDisks: org.freedesktop.DBus.Error.ServiceUnknown - The name org.freedesktop.UDisks was not provided by any .service files
17:17:32 T:3043540992   DEBUG: DeviceKit.Disks: org.freedesktop.DBus.Error.ServiceUnknown - The name org.freedesktop.DeviceKit.Disks was not provided by any .service files
17:17:32 T:3043540992   DEBUG: Selected Posix mount as storage provider
17:17:32 T:3043540992   ERROR: A10: display mode 255 is unknown. Assume refreh rate 60Hz
17:17:33 T:3043540992  NOTICE: InitWindowSystem: Using EGL Implementation: A10

I don't know if the instructions on http://linux-sunxi.org/XBMC are compatible for A20 and for the device.

I know, compiling issues o doubts on linux-sunxi should be asked there, but what I'm not understanding is the XBMC error on the cli (undefined symbol: eglGetDisplay) and into the logs.
Maybe, going deeper on these errors I can understood better where to look.

And all this is directly compiled on the device, which it takes a looot of time, (also not Cross Compiled), but so I'm 100% sure there are no issues due external OS used, anyway...

Any idea?

Thanks a lot!!!

Simon
Reply
#2
Hi

did you have any success building/running xbmc on your board?

i have a similar device (also A20 with mali gpu).

I was able to compile xbmc on the target device following the instructions on linux-sunxi wiki, but when i run xbmc i get "ERROR: Unable to create GUI. Exiting"
and the log ends with
Code:
NOTICE: InitWindowSystem: Using EGL Implementation: A10
ERROR: EGL error in InitDisplay: 3003
ERROR: InitWindowSystem: Could not create display
FATAL: CApplication::Create: Unable to init windowing system

i read that reinstalling/updating the graphics driver may help, but no luck with that, still the same error.

got something about whether the instructions at linux-sunxi you mentioned are compatible with A20?

Thanks
radi
Reply
#3
Yess, I was able to compile it, but I'm having problems with the internal player. It's not in HW accelerated mode.
For your problem, have you followed this part too?

http://linux-sunxi.org/Cedrus#Installation

Bye,

Simon
Reply

Logout Mark Read Team Forum Stats Members Help
Lubuntu v3.0 on A20 AllWinner - compiling issues and StartUp problems0