Home > Linux, Texas Instruments OMAP 3 > Xibo Digital Signage on ARM (Full Version)

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.
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:
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 Running in Beagleboard / Overo Emulator

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

 

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. March 29th, 2012 at 01:50 | #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. March 29th, 2012 at 08:59 | #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. Gnz
    June 10th, 2012 at 06:52 | #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. June 10th, 2012 at 10:37 | #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. Octavio
    July 17th, 2012 at 11:02 | #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. July 17th, 2012 at 11:08 | #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. Octavio
    July 17th, 2012 at 11:27 | #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. July 17th, 2012 at 14:32 | #8

    @ Octavio
    I’ve tried in Mele A1000 (AllWinner A10 Cortex A8) and software video decoding did not work.

  9. Esa
    September 25th, 2012 at 14:19 | #9

    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?

  10. convolucion
    November 19th, 2012 at 00:06 | #10

    No, QUEMU is only for emulate the HW. If you have the board you dont need QUEMU@Esa

  11. convolucion
    November 19th, 2012 at 00:11 | #11

    Could someone run this in a real HW?

  12. Julius
    November 19th, 2012 at 04:43 | #13

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

  13. November 19th, 2012 at 10:49 | #14

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

  14. Raph
    December 29th, 2012 at 17:15 | #15

    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

  15. December 29th, 2012 at 18:29 | #16

    @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/

  16. Mr Buffalo
    June 6th, 2013 at 21:21 | #17

    Hello, any word on support for mk808 ? running picuntu

  17. June 6th, 2013 at 21:40 | #18

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

  18. Mr Buffalo
    June 18th, 2013 at 07:24 | #19

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

  19. Mr Buffalo
    June 26th, 2013 at 20:55 | #20

    @cnxsoft still have not heard from you yet?

  20. July 11th, 2013 at 04:03 | #21

    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

  21. Mr Buffalo
    November 27th, 2013 at 00:21 | #22

    @Alejandro Mejia
    I have not been able to get it to work myself yet. Here’s to opening @cnxsoft reads this and responds

  22. November 27th, 2013 at 10:14 | #23

    @Mr Buffalo
    It’s been a long while since I worked on this, I’m not very sure I can help.

  23. Mr Buffalo
    November 30th, 2013 at 04:46 | #24

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

  24. Mr Buffalo
    November 30th, 2013 at 04:47 | #25

    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

  1. No trackbacks yet.