XIBO Linux Client Primer

PUBLISHED ON 07/10/2019 — SYSOPS

This knowledge was brought to you by Guru.

Intro

XIBO is a popular open source digital signage solution. if you want to save some money and avoid using Microsoft Windows on the signage clients, here you go.

From version 1.8.12, XIBO signing CMS supports Linux clients. Some specific settings are still not implemented, but with time they should be. Here is a little tutorial how to set all up, you can use it to supplement the official documentation.

Enable auto power on after failure

In BIOS, under Power tab, set After Power Failure to Power On. On Intel NUC, hold F2 to enter BIOS after powering on the device.

Install Linux

Pick a distribution, something Ubuntu based, we are using Lubuntu with LXDE.

Install XIBO player from snap

Easiest install is via the Snapcraft package manager.

First install snap:

$ sudo apt update
$ sudo apt install snapd

Sometimes you need to logout and login again so snap gets all the PATHs.

Then install the XIBO player:

$ sudo snap install xibo-player

Run xibo-player.options and set up the client.

Install VNC

The problem with most Linux VNC installs is that you get a different display when you run the VNC server, so you can’t really see what is going on on the display.

Install TigerVNC:

$ sudo apt-get install tigervnc-scraping-server

Set a password:

$ vncpasswd

Run the VNC server:

$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd

Disable power management

Click around in the desktop environment you have installed.

Disable screensaver

Click around in the desktop environment you have installed.

Add XIBO to autorun

Click around in the desktop environment you have installed.

XIBO as a service (Debian)

On Microsoft Windows, there is a XIBO player watchdog program, that makes sure that XIBO player is always running. If you check the XIBO Linux player package, you will also see a watchdog binary, that does nothing, as it is not implemented yet.

So to solve this (XIBO player was crashing from time to time on our clients), we can create a service and make sure it is restarted if it does not exist or is not running.

$ sudo vim /etc/systemd/system/xibo.service
[Unit]
Description=Service Xibo-client
[Service]
Type=simple
RestartSec=30
Environment=DISPLAY=:0
User=xibo
ExecStart=/snap/bin/xibo-player
Restart=always
[Install]
WantedBy=default.target

$ sudo systemctl enable xibo.service
$ sudo systemctl daemon-reload

Source: Tony.J in a comment https://blog.xibo.org.uk/linux-player-1-8-r1-released/

Restart XIBO service every night

Occasionally the clients would fail to obtain data from XIBO CMS, in our case the error was too many connections. Dirty fix is to restart the XIBO player, so lets do that every night in a cronjob.

$ sudo vim /etc/cron.d/xibo
00  00  *   *   *   root    systemctl restart xibo.service

See Also