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

 

Support CNX Software - Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples
Subscribe
Notify of
guest
27 Comments
oldest
newest most voted
Advertisements