Last month, I wrote a post showing how to run Xibo Open Source Digital Signage in a BeagleBoard/Overo emulator. That version could communicate with Xibo server, download the required files, display pictures and (maybe) play videos with the real hardware. However, it had serious limitation as Text, RSS and web pages could not be displayed.
I’ve now fixed those issues and the full Xibo 1.3.1 can run on ARM platform.
- First, you need to follow the instructions given in Xibo Digital Signage on ARM (Beagleboard / Overo), although we’ll need to modify something with libavg compilation (see below).
- Then cross-compile berkelium for ARM using Linaro toolchain.
- Add libbrowser-node to libavg plugin directory and build libavg again. Also copy the Berkelium header files in to src/test/plugin (i.e. src/test/plugin/berkelium) or add the include file path to CFLAGS/CXXFLAGS.
1 2 3 4 5 |
bzr branch lp:~browsernode-team/+junk/berkelium-browsernode cp berkelium-browsernode/plugin/* ~/edev/beagleboard/libavg-1.6.0/src/test/plugin cd ~/edev/beagleboard/libavg-1.6.0 make make install |
- Create libberkeliumwrapper.so:
1 2 3 4 |
cd ~/edev/beagleboard/libs/lib touch a.cpp arm-linux-gnueabi-g++ -c a.cpp -o a.o arm-linux-gnueabi-g++ a.o -shared -L/home/jaufranc/edev/beagleboard/berkelium -llibberkelium -o libberkeliumwrapper.so |
- Copy the required files to the qemu image:
sudo mount -o loop,offset=$[106496*512] overo_sd_alip.img mnt
sudo cp ~/edev/beagleboard/berkelium/build/chromium/src/out/Release/resources.pak mnt/usr/bin
sudo cp ~/edev/beagleboard/berkelium/build/chromium/src/chrome/tools/test/reference_build/chrome_linux/libffmpegsumo.so mnt/usr/bin
sudo cp ~/edev/beagleboard/berkelium/build/chromium/src/chrome/tools/test/reference_build/chrome_linux/chrome.pak mnt//usr/bin
sudo cp ~/edev/beagleboard/berkelium/berkelium mnt/usr/bin
sudo cp ~/edev/beagleboard/berkelium/liblibberkelium.so mnt/usr/lib
sudo cp libs/lib/python2.7/site-packages/libavg/* mnt/usr/lib/python2.7/site-packages/libavg/ -rf
sudo umount mnt
- Run qemu for overo or beagleboard (USB Ethernet is now supported) :
sudo qemu-system-arm -M overo -m 512 -drive file=./overo_sd_alip.img,if=sd,cache=writeback -clock unix -serial stdio -device usb-kbd -device usb-mouse
- If you previsouly disable BrowserNode, modify the source code of the Python client to enable the BrowserNode plugin again.Edit XiboClient.py in /opt/xibo/pyclient/client/python and make sure the following line is not commented out:
self.player.loadPlugin(“libbrowsernode”)
- Run Xibo Python Client:
sudo ./run.sh
Then create a layout with text, a web page, rss feeds to see if this works. I’ve created a layout with a scrolling text at the bottom of the screen.
“Xibo Beagleboard Text” is scrolling in the emulator albeit very very slowly (1 frame per 5 seconds ?). I’m not sure if this is because of my (old) host computer or another reason, but I expect it to run smoothly on the target hardware. If anybody wants to try on beagleboard, beaglebone, overo or pandaboard but do not want to build everything (It takes a few hours), let me know in the comments section and I can make libavg and berkelium binaries or the rootfs available.
Xibo Python Client can now run in a Linux ARM platform with web rendering enabled. Having said that, further work may still be needed:
- Try Xibo Client on real hardware.
- Performance Optimisation for the target platform (e.g. Hardware Video decoding).
- Web Browser Java Support
- Web Browser Flash Support
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
This is really excellent. Thank you for all the hard work you’re putting in.
Please feel free to contact us if you’d be interested in maintaining an official ARM version of the binaries to enable the client to run on devices such as the Beagle Board, Raspberry Pi etc. We’d love to have support, but don’t have the manpower to do it at the moment.
Best wishes
Alex – Xibo Project
@ Alex Harrington
Hi Alex,
I’ve only tried in the emulator, as I don’t have hardware yet. I’ll have a Raspberry Pi and an Cortex A8 platform (Mele A1000) soon. The beagleboard and pandaboard are a bit too expensive in my country (due to shipping and taxes).
The current version may be very slow because everything is handled by software. The maintainer of libavg (Ulrich) contacted me and he might implement OpenGL ES to take advantage of the GPU acceleration. This would take care of 2D/3D acceleration. Then there is video playback. Software would only allow lowbitrate, lowresolution video, so we’d have to support hardware video acceleration for HD videos probably via gstreamer. HW video acceleration is quite a pain on ARM platform since there is not really a common standard (although many support OpenMAX IL).
All that to say, a usable image may not be available soon. I plan to provide binary images for the HW platforms I have.
is there any chance that you publish this as an SD card image?
I have a raspi board, and I’d like to test it..
Thx
gonzalo
@ Gnz
The only image I have is for AllWinner A10 based device (e.g. Mele A1000, MK802, MINI X). You can see Xibo running on Mele A1000 and get the image here: http://www.cnx-software.com/2012/05/04/xibo-digital-signage-running-on-mele-a1000-allwinner-a10-set-top-box/
That image won’t work on the Raspberry Pi, because it’s a different architecture (and SoC).
I also started to work on R-Pi, but I don’t have image (http://www.cnx-software.com/2012/01/19/xibo-digital-signage-in-raspberry-pi-emulator-step-1/). This will only support picture only. I also started to work on building Chromium for ARMv6 but it failed with an error. There is a solution for that (See last comment) but I haven’t tried it yet. No Pi here.
Hi, I am back trying to to run xibo in a beagleboard, I have a question : All the cross compilation should be made in the beagleboard or I need to do this in a host PC and after that copy the files to the bleagleboard SD. I am running ubuntu 11.04 in the beagleboard. Thanks
@ Octavio
You’d better build this in a host PC as per the instructions above, unless you are really patient (i.e. several days) and want to build this natively in the Beagleboard…
Jaja I thought it was so (I spend a night installing ubuntu desktop in the beagleboard) thanks, anyway I will run all the instructions in my host I hope this can run when I copy the files in the BB . I instaled concerto digital signage in ICS on the beagleboard but only have few features to make a whole project in this app. I could run video in xibo or is not supported yet?
@ Octavio
I’ve tried in Mele A1000 (AllWinner A10 Cortex A8) and software video decoding did not work.
Greetings! If using an image made specifically for the MK802 e.g http://www.rikomagic.co.uk/forum/viewtopic.php?f=2&t=90 . Which steps from your instructions are required to compile Xibo? After reading through the instructions, there are plenty of steps which concern emulating with QEMU. As far as I understand, QEMU is not required if I use the authentic hardware?
No, QUEMU is only for emulate the HW. If you have the board you dont need QUEMU@Esa
Could someone run this in a real HW?
@convolucion
Yes. http://www.cnx-software.com/2012/05/04/xibo-digital-signage-running-on-mele-a1000-allwinner-a10-set-top-box/
Hello, so it’s possible to install xibo linux client on raspberry pi model b rev2 (512MB instead of 256MB)?
I want to do some tests 🙂
@Julius
Yes, it’s possible, but you need to build it:
* Instructions for R-Pi without Chrome support (Needed for text and webpage) – http://www.cnx-software.com/2012/01/19/xibo-digital-signage-in-raspberry-pi-emulator-step-1/
* Berkelium (Chrome) ARMv6 build instructions – http://www.cnx-software.com/2012/01/24/cross-compiling-berkelium-for-armv6-with-emdebian-toolchain/
If I remember well Berkelium will crash, so checkout hexxeh Chromium OS patch for R-Pi.
Xibo will be as slow as in the video below.
A Linux version will be difficult. However, the Xibo developers are working on an Android version.
Hi,
was the testing successfull? I am running a xibo server and have now bought a R-Pi.
So I am very interested in getting the Xibo Client run on the Pi. The problem is, that I´m a Rookie as far as Linux is concerned. Especially cross-compiling and other stuff.
So probably someone has an easy guide for me how to do this, or even better a ready to use version…
Best regards
@Raph
I tested it in the Mele (Pictures + text + web, no video), and it works but it’s very slow for now:
http://www.cnx-software.com/2012/05/04/xibo-digital-signage-running-on-mele-a1000-allwinner-a10-set-top-box/
I’ve also posted instructions for the Raspberry Pi (pictures support only), and tried in the emulator:
http://www.cnx-software.com/2012/01/19/xibo-digital-signage-in-raspberry-pi-emulator-step-1/
Hello, any word on support for mk808 ? running picuntu
@Mr Buffalo
If you need video playback forget it, unless you use the Xibo for Android. If you don’t need video playback, then you can try to install it.
@cnxsoft
I got everything running, ubuntu 13.04 HAS python-libavg already compiled btw I found out yesterday. so I upgraded to 13.04 arm on my mk808 and everything is installed in the repo’s the only thing holding me up is berkelium now. can you email me and I can share how i got to this point?
@cnxsoft still have not heard from you yet?
Hi,
I am trying to install Xibo Client on a CUBOX ARM , I already install Ubuntu 13.04, Could you help me?
Thanks
@Mr Buffalo
@Alejandro Mejia
I have not been able to get it to work myself yet. Here’s to opening @cnxsoft reads this and responds
@Mr Buffalo
It’s been a long while since I worked on this, I’m not very sure I can help.
Any chance you can do a new write up – this is the top google hit for getting xibo going on arm. there is a lot of interest in this subject 🙂
Also – now that mali 400 drivers are open sourced and available we have hardware rendering. looks to be a good time to take up the project again @cnxsoft
Hi there CNXsoft. Thank you this amazing article!
I have just got my hands on the BeagleBone Black and would like to try and test out Xibo (ARM) as you have so kindly cross-compiled. I refer to the section:
If anybody wants to try on beagleboard, beaglebone, overo or pandaboard but do not want to build everything (It takes a few hours), let me know in the comments section and I can make libavg and berkelium binaries or the rootfs available.
Please please please could you provide these files as it will save us a whole lot of time as we are battling to cross compile these libraries.
Thanks 🙂
@Thavaz
OK. That was November 2011… Since then I’ve had a HDD crash, and did not back up that part.
You may be able to extract these from the SD card I made for Mele A1000. http://www.cnx-software.com/2012/05/04/xibo-digital-signage-running-on-mele-a1000-allwinner-a10-set-top-box/