Florian Wesch

What other systems do wrong - what info-beamer hosted does better

Posted May 13 2017 by Florian Wesch

Why you should choose info-beamer hosted for your digital signage installation.

What is info-beamer hosted

info-beamer is a digital signage service running on the Raspberry Pi. It uses the battle tested software info-beamer at its core to display the content on the screen. The operating system running on the Pi is a custom crafted Linux system that is highly optimized for reliability and security. The system is used all over the world: It powers menu signs at restaurants, info screens in cinemas and infotainment displays in subway stations.

What other system do wrong

Often you see pictures like these showing up on twitter:

Each of those pictures shows a different kind of problem. It's worth investigating what went wrong and how info-beamer hosted is preventing these problems from happening.

Problems in other systems: Unreliable digital signage player software

In this image (Image source) you can see a screen running in a subway station in Germany that shows a configuration interface as well as an overlay from an antivirus software. Obviously the player software has crashed for some reason or accidentally moved into the background. This seems to be a common problem with these kind of systems: They use a normal windows installation, add their own software, maybe some 3rd party software (like the antivirus or a remote desktop to "manage the screen"). Some of those systems seem to lack a conherent design that makes sure that things run they way they should. It often feels like it's a system held together by duct tape that breaks when facing any kind of problem due to a lack of clean system design.

How info-beamer hosted approaches this problem

The info-beamer hosted system is a minimal Linux system completely built from scratch in an automated way. It reuses 106 Raspbian packages to put together a system that is completely predictable. There is no service running that might accidentally do things that are not intended. All processes are started by daemontools. The software that is responsible for showing content on the screen is the info-beamer pi software you can also download to run it on your own Raspbian system. It has no known memory leak or bugs that cause it to crash. It can run for weeks without problems. Some screens have been running for almost a year without a single restart. If there should ever be a problem that causes info-beamer pi to crash there still is no desktop: info-beamer outputs directly to the connected screen - there is nothing "behind" it. And daemontools makes sure that info-beamer would be restarted immediatelly.

On every device there is also the syncer process that, among other things, makes sure that the info-beamer pi software is running. An additional hardware watchdog makes sure that the device is automatically restarted if there is any kind of unrecoverable error that causes info-beamer pi to lock up. The only recorded reason for this was when the connected power supply was insufficient.

Problems in other systems: Stock Linux with a few addons

Here you see an Ubuntu system (Image source) that failed to start its player software. In the screenshot you can see that the system seems to be a normal Ubuntu system with "146 packages that can be updated" as well as "2 updates are security updates". While a normal Linux system works well most of the time (Yay, Linux. Yay, Ubuntu), it's still not the optimal approach to build a digital signage screen: It is difficult to make sure that a complete fleet of devices is running identical software. The update process of a normal Linux system is not atomic. What this means is that once an update during the process (for any reason like loss of power) things might end up in an undefined state. Also each system might be in a slightly different state as they accumulate leftovers during updates. This is a nightmare as it is difficult to identify the state of each system.

How info-beamer hosted approaches this problem

As said in the previous section, info-beamer hosted is a completely custom Linux system with a different philosophy: The system should always be in a reproducible and known state. Updates are always atomic: The system is either updated to a new version or it keeps the current version. It will never end up in a mixed state. When building a new system version the build process puts up everything together from scratch. The result is a 35MB Linux system.

If an info-beamer hosted systems is ready to upgrade it will download this new system image. zsync is used to download the update itself. zsync makes sure that only changes to the previous version have to be fetched. A normal system update is way smaller than 35MB as a result - usually 1-2MB are sufficient. Once the installation file is downloaded and cryptographically verified, the new system is unpacked into a spare partition. Finally this partition is made active so the system can reboot into the new version. But that's not all: Once the system reboots into a new version it tries to confirm that the new version works as intended. If, for any reason, there is a problem with the new version the system will automatically reboot into the previous system after 5 minutes. Updates are both minimal in size and completely atomic: You can even remove power from a device that is in the middle of an update and you can be sure it will work when you power it up again.

Problems in other systems: Compromised systems

This is an image (Source: Twitter) of a public transport info screen that that is infected by ransomware. Not only does this mean that normal operation is no longer possible, it also means that manual repairs are required before the system is in a workable state again. The reason for this is that the used operating system (Windows 7 in this example) doesn't seem to be optimized for maximum security: The WannaCry ransomware in this example spreads over the SMB protocol which is used (among other things) for remote file access among Windows systems. It seems that the system was either using this protocol for transferring files or the service was just running without purpose due to a lack of operator oversight.

How info-beamer hosted approaches this problem

When designing a system for security the best approach is to prevent any kind of complexity from being externally reachable: Every software might have bugs. The best way to make sure that this doesn't result in a problem is to make sure that no software can be reached externally and only the minimal software required is running on a device: Software that isn't running can't be compromised. A running info-beamer hosted system does not expose any open ports to the network. There is no software running that is not required for digital signage operation. Keeping things minimal makes sure everything is as reliable as possible.

Additionally the update process is used to update all systems to the newest version if there is any kind of security problem in any of the used Raspbian packages or the Linux kernel itself. Updates can be rolled out quickly, as testing is easy to do: All that has to be done is to make sure that the new version runs on all Pi variants. As those behave mostly identically this can be done pretty quickly.

Problems in other systems: Lack of system design

In this image (Source: Twitter) you can see a screen showing a windows error message. In this case the system seems to have run out of memory. The reason that this error is visible on the screen is the lack of overall system design: Often a digital signage installation is just some Windows box running a software provided by the digital signage company. This is bound to cause problems: The digital signage software has little control over what Windows might do. Popup dialogs might be visible for a variety of reasons: Lack of memory, a new Windows version can be installed, etc. While Windows certainly might be configured to prevent most of these messages, a complete control is very difficult due to the lack of transparency. There is no way to understand what Windows might do in every situation.

How info-beamer hosted approaches this problem

info-beamer hosted is completely different. It's a minimal system that is only running to show digital signage content. In a normal setup the only services running are:

  • The syncer process that is responsible for fetching new content, talking to the info-beamer hosted servers, fetching system updates and making sure the system runs as intended.
  • A DHCP client for getting an IP address.
  • An NTP client for fetching the correct time from the network.
  • A WiFi Supplicant for establishing the WiFi connection
  • info-beamer pi, which is responsible for showing content on the screen.
  • A logging program to capture log messages from all running programs.

That's all. There will never be random dialog boxes popping up: There isn't anything running that might trigger them. Everything running on purpose. The complete system was designed to be predictable. Random dialog boxes are not acceptable and will never happen with info-beamer hosted.

Try info-beamer hosted

info-beamer hosted is powering various installations all over the world. Any kind of large scale installation can greatly benefit from info-beamer hosted. The system is highly reliable and very affordable. Don't hesitate to get in contact if you have any questions or just want to talk about this subject. info-beamer hosted will allow you to build the perfect digital signage setup.

Get started with info-beamer hosted


info-beamer.com offers the most advanced digital signage platform for the Raspberry Pi. Fully hosted, programmable and easy to use. Learn more...

Get started for free!

Trying out the best digital signage solution for the Raspberry Pi is totally free: Use one device and 1GB of storage completely free of charge. No credit card required.

Follow @infobeamer on twitter to get notified of new blog posts and other related info-beamer news. It's very low traffic so just give it a try.

You can also subscribe to the RSS Feed RSS feed.

Share this post:

Share using Twitter

Questions or comments?
Get in contact!