Xibo Digital Signage on ARM (Full Version)

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.

  • 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.

  • Create 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 on ARM Emulator with Running Text

“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

 

Share this:

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

27 Replies to “Xibo Digital Signage on ARM (Full Version)”

  1. 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

  2. @ 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.

  3. 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

  4. @ 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.

  5. 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

  6. @ 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…

  7. 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?

  8. 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 🙂

  9. @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.

  10. 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

  11. @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?

  12. 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 🙂

  13. 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

  14. 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 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *