Device Configuration


Overview

If you installed a new device and booted for the first time, info-beamer will generate three partitions on the SD card. The first is the system partition and stores all files required for booting as well as the complete system and configuration. This partition is always read-only while the device is running. You should ignore the two other partitions as they are not intended to be manually modified or edited by the user.

You can put configuration files on the first partition to change the behaviour of the info-beamer hosted operating system.

Setting an initial configuration

You can use the new OS download page to customize your OS download. This includes setting an initial WiFi configuration.

Just click on [x] Customize download on the linked page and specify the initial configuration for your device. Finally click on the Download install.zip button. Extract the install.zip on an empty SD card and your Pi will boot and apply the configuration settings.

Changing an existing configuration

If your device is already running and showing content, you can change configuration values in two ways. Both of them require a short downtime of your device.

File based editing

For experts only and usually not recommended: You can unplug the device, get its SD card and edit the configuration files directly. This requires you to be at the device while editing. See below for all the different configuration files and options.

Web based editing

The latest info-beamer OS offers support for editing almost all configuration options remotely. Just go to the device detail page of the device you want to edit and use the configuration editor.

Once you're done, click on Apply configuration and reboot device and the device will save the configuration and reboot. This might take a moment as the device reinstalls the complete operating system with your changes applied to it.

If, after a reboot, the device doesn't work properly, for example if the WiFi configuration is incorrect or it can't reach the info-beamer service, it will automatically restart after 6 minutes and revert to the previous working configuration.

Configuration

You can enable certain options by creating files on the first partition. This partition is the one that's visible when you insert the SD card into a Windows machine.

All configuration files are stored in the /config directory.

All files must be created with unix line endings (\n). If you're creating your configuration with a Windows text editor, make sure it does not save with \r\n endings and you editor doesn't add a BOM (byte-order-marker).

Do not use windows line endings for your configuration files or they won't work! Use Unix line endings (\n) when saving your config files!

WiFi configuration

Before you decide to use WiFi, be aware that WiFi has a lot of problem sources like bad reception, regional channel policies, random connection losses, slow download speed, updated WiFi credentials, etc. If you can, please use an Ethernet connection instead.

WiFis with Captive Portals are not supported! If you see a landing page in a browser when you connect to your WiFi, info-beamer hosted won't work! See below.

2.4Ghz WiFi networks are supported on all Pis with a built-in or supported USB adapter. 5Ghz is only supported on the Pi3B+

info-beamer hosted supports WiFi. On the Raspberry Pi3, Pi3B+ or Pi Zero W you can use the built-in WiFi adapter. On all other Raspberry Pi versions the only chipset supported is RTL8188CUS. There are multiple devices with that chipset. The suggested hardware is EDIMAX EW-7811Un V1 (Beware: the V2 version is not supported as it uses a different chipset. See this forum post). It is strongly recommended to use it as other devices might advertise the required chip while using a different/incompatible one. You can purchase the EDIMAX EW-7811Un dongle for example on amazon.com or amazon.de.

To activate WiFi, create the file /config/wireless. It must consist of two lines with your SSID and password (WPA2 PSK). Example:

MyAccessPoint
MySecretPassword

When you start the device it'll use the information in this file to connect to the specified encrypted network.

If you want to connect to an unencrypted network (which is not recommended!) you can use this configuration in /config/wireless:

MyAccessPoint
NONE

So the literal NONE in the second line. Notice that WiFi tends to be unreliable if you don't have good reception. You get much better reliability by using a wired connection. If you activate WiFi, all ethernet connections are ignored.

Captive portals

There are certain wireless networks that seem to be "open". But once you connect you're supposed to enter various information using a web browser before you can actually use the network. Sometimes you have to enter a credit card number, username and passwords or confirm some terms and conditions by clicking checkboxes.

There is absolutely no standard regarding those captive portals. So it is impossible for info-beamer hosted to automate the login. You won't be able to get a proper internet connection and info-beamer hosted won't work. The only solution is to setup info-beamer hosted in a proper network environment. You might also ask your network administrator to maybe open up the network to the Pis MAC address.

Completely custom configuration

Instead or in addition to /config/wireless you can also create the file /config/wpa.conf. It allows you to specify a complete wpa_supplicant.conf configuration file. If you have to refer to the /config directory within that file, be sure to use the /sd/config prefix instead as the SD card is mounted in that location.

Custom configurations allow you to configure almost every type of WiFi setup available, but you'll have to know the exact parameters required. You might want to turn on debugging.

An example configuration for a corporate 802.1x EAP / PEAP / MSCHAPV2 setup might look like this:

network={
    ssid="<Network Name>"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="<Username>"
    password="<Password>"
    phase1="peaplabel=auto peapver=0"
    phase2="auth=MSCHAPV2"
}

Additionally you can specify multiple network blocks in a single wpa.conf file. Doing that will allow your device to roam between the two networks as it automatically tries all of them until it finds a working connection.

Automatic fallback to ethernet

Sometimes it might make sense to have a device automatically use Ethernet even if WiFi is configured. This is useful if you want to preinstall a device before shipping it to a customer without knowing which type of connection is going to be used.

If you create the file /config/prefer_wired, then the device will test for an Ethernet connection during the boot process. If available, it will be used instead of the configured WiFi.

This test is only done once while booting the device. Attaching a connection later won't switch the connection. If you know which connection a device should use, it's suggested to not use this feature as it might run into false negatives if the Ethernet doesn't work while the device boots.

WiFi Country

WiFi networks are regulated by country. As an example, some countries don't allow certain 2.4GHz channels as they overlap with other uses. Other regulations limit the RF emission. For an overview, have a look at https://en.wikipedia.org/wiki/List_of_WLAN_channels

The default for info-beamer devices is the "World" setting. It should allow you to connect to most WiFi networks. If you need to connect to otherwise restricted channels or allow more sending power according to local regulations, specifying a WiFi country might be beneficial.

Place the ISO3166 country code in the file /config/wifi-country.

WiFi Configuration Interface

The WiFi Configuration Interface is not supported on the CM3-PANEL as it's not possible to scan for WiFi networks while the WiFi adapter is in master mode.

If a device is unable to connect to the configured WiFi network it can automatically create its own temporary WiFi network to allow it to be reconfigured. This doesn't happen automatically unless you enable it for a device. Create the file /config/wifi_ui with the one or two lines like this:

Password
Accesspoint Name

You have to provide at least a password in the first line. The password must be 8 characters minimum.

The second line is optional. If it is not provided, the SSID of the WiFi configuration network will be info-beamer config (<serial>) with serial being the device serial number.

Once configured the temporary configuration WiFi network will be active in the first 10 minutes of uptime, if the device can't associate to the configured WiFi network within 60-80 seconds. So be patient: It might take a few seconds before the WiFi Configuration Interface starts. This prevents false positive were the configuration interface would start prematurely if your normal WiFi is a bit slower.

While this network is active, a small icon will blink in the top left corner of the screen and the device LED will blink in a heartbeat pattern.

You can connect to this network using the password you specified in /config/wifi_ui. Once connected, mobile devices will automatically open up a browser with the configuration website. If the automatic redirect doesn't happen, you can manually reach the page by opening http://10.0.0.1 in any browser. The configuration interface looks like this:

.

You can select any of the detected networks and enter their password. Clicking CONNECT will save the settings and reboot the device. The device will then try the new settings. If the new settings don't work, the configuration interface will be started again. If you click on Cancel, the temporary configuration WiFi will be shut down. If you click nothing, the temporary configuration WiFi will shut down automatically after 10 minutes.

The WiFi Configuration interface only touches the WiFi configuration set in /config/wireless. It won't touch or delete any settings made in /config/wpa.conf.

Advanced WiFi UI features

The /config/wifi_ui configuration files supports additional features that can help with automating or customizing the WiFi configuration:

Dynamic WiFi name: The optional accesspoint name in /config/wifi_ui can have %SERIAL% as placeholder. This allows you to create your own per-device accesspoint name based on the device's serial number. And example might be:

Signage Device (%SERIAL%)

Derived passphrase: The password in the first line of /config/wifi_ui can optionally have the special format

IB::DERIVEv1:<secret>

If formatted like this, the password used for the accesspoint isn't fixed but instead derived from the device's serial number and the given secret. The following method is used:

HMAC-SHA1(secret, serial).hex().lower()[:16]

So it's the lowercase first 16 characters of the hexadecimal SHA1 HMAC based on the given secret and the device's serial number. As an example, a device with the serial number 12345 and the following value in /config/wifi_ui

IB::DERIVEv1:correct horse battery staple

would result in the following accesspoint passphrase you'll need to connect to the WiFi UI network:

b6dacd7aeba54e97

Placing the WiFi icon:

You can create the optional file /config/wifi-icon.json with the follow content:

{
    "offset_x": 10,
    "offset_y": 10
}

The values offset_x and offset_y set the pixel offset from the top left corner of the screen. If you use negative values, the offset are from the right respectively bottom side of the screen. This allows you to place the WiFi icon in a more noticable spot.

WiFi UI API

When connected the the WiFi UI accesspoint, the info-beamer device's configuration interface is reachable at http://10.0.0.1/. In addition to the user interface, it also provides a way to programmatically reconfigure the device's WiFi settings:

Send a POST request to http://10.0.0.1/set-config and provide ssid and password values. The device will apply these settings and respond with a HTTP 200 status and a JSON body like this:

{
    "ok": true
}

If ok is true, the device will reboot and will use the new settings.

USB file import

If you create the empty file /config/importer on your SD card, your info-beamer device will monitor attached USB drives. If you plug in an USB stick with files on it, your device will automatically import all files into its local cache.

Make sure your USB stick is formatted with the FAT32 filesystem. Otherwise the import won't work.

Your device will blindly import all files from the USB stick. You should only have files on the USB stick that you want to use in your setups.

If you later use any of the files as part of a setup, the device doesn't have to download the file from the info-beamer service as its already locally cached. The filenames you use on the USB stick don't even have to match the filenames of the assets you uploaded to the info-beamer hosted service: The syncing process will automatically detect if files are identical and can be used.

This allows you to save bandwidth in low-bandwidth environments. Together with the peer-to-peer feature you can reduce the external bandwidth requirements for large installations to almost zero if you follow these steps:

  • Make sure you enable peer-to-peer on all devices.
  • Make sure your devices can reach each other in your local network. You can verify that on the device page. There should be a green "connected" next to the Peer-to-Peer row in the "Device information" column on each device detail page.
  • Copy new content (video/image) to an otherwise empty USB stick. Make sure it is formatted using the FAT32 file system.
  • Put the USB stick into a Pi that has the USB file import feature (see above) enabled. Once you plugged in the USB stick, the red power LED of your device will start blinking in a heartbeat pattern. This means the device is importing your files. Wait until it stops blinking. You can now remove the USB stick.
  • Now upload the content to info-beamer hosted as new assets as usual.
  • Assign the uploaded assets to your devices.

If done correctly, the device you plugged in the USB stick will now make the new files available to your other devices. They will fetch them from your local device instead of using the internet connection. If you assigned content to many devices they will even start sharing and transferring the files from each other to prevent the single Pi from getting overloaded.

P2P

The info-beamer hosted OS can use a custom peer-to-peer service to detect other info-beamer devices in your network and provide additional features within the local network.

No peer-to-peer communication ever leaves your local network. All peer-to-peer communication is limited to the devices within the same broadcast domain and the netmask assigned to your device either by DHCP or your static setting. Your device does not share content with anything outside your local network environment.

Starting with OS version 12, P2P is enabled on all devices with 4 cores: This includes the Pi2, Pi3, Pi4 and Compute Modules. During initial device setup, peer-to-peer support will automatically enabled on such devices.

You can also explicitly force peer-to-peer support by creating the file /config/p2p. If you want to disable peer-to-peer support, creating the file /config/no-p2p will disable the automatic decision and disable peer-to-peer.

When a device starts with peer-to-peer enabled, it will automatically try to detect other nearby info-beamer devices. See the security page or the blog post introducing this feature for more background information how this works.

Activating this features adds the benefits described in the next sections:

Accelerated content downloads

If multiple devices share the same network uplink, content assigned to multiple devices at once doesn't have to be downloaded by all of your devices individually. Instead one device downloads the content from the info-beamer hosted system while other devices in your network can then fetch the content locally from that device. This greatly reduces outside network traffic as it allows your devices to share already downloaded content.

Of course doing that is completely secure. The content transferred between your devices is encrypted and cryptographically signed and verified. Learn more...

Faster system updates

If peer-to-peer is enabled system updates can also be retrieved from other local devices. This avoid duplicate downloads and can reduces outside data usage. This ability is purely optional and in case a local peer-to-peer download fails, the normal internet based download is used. All system updates are always cryptographically signed to only updates signed by info-beamer will be installed on your device.

Time desync detection

If the peer-to-peer service detects other devices, all of them will be able to easily detect clock desyncs. If they detect that their time is out of sync, they will restart their NTP client and attempt to resynchronize. This benefits video wall installations as they depend on a correctly synchronized clocks. An NTP restart happens at most every 10 minutes.

On the dashboard you'll see a new row in the device information listed next to the snapshot on each device's page:

You can see how much content the device retrieved from other devices (instead of using the internet) as well as how many devices are visible and by how much their internal time diverges. Usually anything lower than 0.005s (so 5ms) is pretty good.

Local Registration

If peer-to-peer is enabled on a device, it can potentially be added to your account without requiring you to type the PIN you see on the display. Instead you will be presented with a list of devices within the same network you're using to access the info-beamer.com website. Selecting such a device will initiate a direct contact between your browser and your device to confirm that it is indeed reachable within your local network. Once confirmed you can instantly add such a local device to your account.

Local registration is only possible within the first 10 minutes after a device is powered up and if you're the only info-beamer user in your local network. If your browser cannot reach the device directly (for example due to firewall rules or client isolation on WiFi networks), this method will not work and you'll have to revert to entering the device's PIN.

If you do not want this feature, add the file /config/p2p-reg-disabled to the device SD card when setting up the system.

P2P NTP

This feature is experimental and usually not required. It's only for special environments or use cases.

If enabled by placing /config/p2p-ntp on the SD card, your devices will open up their local NTP service to other devices. This will allow your info-beamer devices to directly synchronize time with each other.

Three devices within your local network will be selected based on their IP address (the three lowest based when sorting lexicographically) and will be configured as additional time sources on all but those three devices.

This is purely additive and local info-beamer devices are used as NTP sources in addition to the already configured or detected NTP servers.

This will open up port 123/UDP.

Precision Time Protocol

This feature is experimental and usually not required. It's only for special environments or use cases.

You can enable the Precision Time Protocol by creating the file /config/ptp on the SD card.

This allows you to sync this device with other devices in your local network. It can result in faster and more precise time synchronization between your device and might help with video wall setups.

PTP only really works on Ethernet connected devices and using it on WiFi can be counterproductive as the devices sometimes are unable to properly sync. If your NTP server based precision is sufficient, it's recommended not to use this feature.

Debugging

Sometimes things just don't work and the output while booting doesn't help. In that case you can create the empty file /config/debug on the SD card. The boot process will now be a lot more verbose and will hopefully help you solve the problem.

Automatically add a device to your account

A new device will display an PIN by default once it booted up. You can use this PIN in the Register Device dialog on the device list page to manually add a device to your account.

You can also setup a device so gets added to your account automatically: Click the Download Device Connect Key button on your account page and save the resulting device-connect-key.txt file in the /config directory on the device SD card. Once that's done the device will add itself to your account when it first boots up unless it's already assigned to another account.

If the connect key file is used in this way, anyone with access to the SD card of your device can copy the connect key file, place it on another device and have it added automatically to your account. You can prevent that by creating scoped connect keys that can only used for a device with a fixed serial number: Split the retrieved connect key on /. Calculate the MD5-HMAC using the last part as secret and the device serial as value. Then join the resulting value back together with /. In Python:

serial = '123456789' # Example serial number you want to create a derived key for
a, b = connect_key.split('/')
scoped_connect_key = '/'.join([a, hmac.HMAC(b, serial).hexdigest()])

If the automatically added device has a serial number of an existing device in your account, it be treated as a device replacement and the new device will automatically carry over the assigned setup id, device data and location of the oldest device with the same serial number. You can use this feature to easily switch out damaged SD cards: Just add a the connect key to the new card and replace an existing card in one of your devices: The device will boot, automatically join your account and show the same content as before.

Regenerating your account secret on the account page will invalidate all existing device-connect-key.txt files. You have to download the device-connect-key.txt file again in that case.

If you want to disable the 'smart device replacement' feature described above, contact support. We can disable it, so automatically added device behave as if they are new to the system.

Static network configuration

By default the info-beamer system uses DHCP to dynamically configure network settings. If you don't have a working DHCP environment you must specify IP configuration manually.

Create the file /config/network. It must consist of four lines.

IP address
netmask
default gateway
DNS IP

For example:

192.168.1.200
255.255.255.0
192.168.1.1
8.8.8.8

Custom DNS settings

If you need to be more specific in regards to how DNS should be used, you can create the optional file /config/resolv.conf. It will be used like the traditional resolv.conf file. So you can set multiple DNS servers.

Custom hostname

You can assign your device a custom hostname. Just put the hostname into the file /config/hostname. The hostname will be shown in the prompt - which isn't reachable unless you either activate SSH or allow the local shell. The hostname will also be used during DHCP requests to suggest a device hostname. Of course your DHCP server is free to ignore this suggestion.

If you don't specify a hostname, info-beamer-<SERIAL> is used by default.

Custom NTP Servers

By default your device automatically uses the NTP service specified by your DHCP server. If you don't use DHCP or your DHCP server doesn't specify an NTP server IP address the device will instead use the debian NTP servers. If you want to manually configure other NTP servers you can specify those by creating a new file /config/ntp. It must consist of a single line with NTP server hostnames separated by spaces. So a custom configuration looks like this:

0.europe.pool.ntp.org 1.europe.pool.ntp.org

Specify audio target

By default info-beamer outputs audio using the RCA jack on the Pi. If you want to output audio using HDMI, create the file /config/audio and add a single line containing hdmi to it. If you want to force using the RCA jack, set its content to local.

Force output resolution

Normally the Pi automatically detects the resolution of attached screens. If you have a special setup where EDID does not work or you want to force a resolution you can specify it in the the /config/tvservice.

The file must consist of a single line with the intended mode. All available modes can be seen on http://www.raspberrypi.org/documentation/configuration/config-txt.md.

There are two different HDMI output groups: CAE and DMT. You specify the mode by specifying the HDMI output group and the intended HDMI mode. An example file might look like this:

DMT 82

This will set the output to 1920x1080 with 60Hz.

Custom resolution

You can force the Pi to output any custom resolution. First you'll have to define the resolution using the /config/userconfig.txt file. Add a line like this:

hdmi_cvt=768 576 60 1 0 0

The parameters to hdmi_cvt as as follows:

hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
width width in pixels
height height in pixels
framerate framerate in Hz
aspect aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
margins 0=margins disabled, 1=margins enabled
interlace 0=progressive, 1=interlaced
rb 0=normal, 1=reduced blanking

Then create the /config/tvservice file with the following content to force the defined solution:

DMT 87

Force composite output

Usually an info-beamer device always activates HDMI output even if no HDMI screen was detected. If you want to force analog composite output instead, you can use the /config/userconfig.txt file for that. Create it and add the following two lines:

hdmi_force_hotplug=0
hdmi_ignore_hotplug=1

Control dual display placement

You can connect two displays to the two HDMI outputs of the Raspberry Pi 4. The default is to mirror output if both displays are active. If you want to show different content on each of the screen you can use the configuration file /config/dual-layout.json to control placement (in pixels) of the second HDMI output in relation to the first display. Create the following file:

{
   "dual_offset_x": 1920,
   "dual_offset_y": 0
}

This example would place the output of the second screen to the right of the primary display. Note the placement is given in pixels, so it's directly related to the configured resolution. Using 0 for both values would place both display on top of each other and is the default mirrored mode. It's also possible to have display only partially overlap each other. Do not place displays too far away from each other as it will hurt performance.

Disable CEC standby

When switching off its output (for example when using the Power Saver Package), a device normally also issues a CEC command to send the attached HDMI display to standby mode. You can avoid this and instead only have the device power off its own HDMI output. Add an empty file named /config/no-cec-standby for that.

Activate SSH

Create the file /config/authorized_keys. This file follows the usual authorized_keys file format. So it contains one or many SSH public keys that will be allowed to SSH as root into the device.

If you add this file, info-beamer will start the SSH daemon and you'll be able to login as root with the specified keys.

You can verify the SSH host key by visiting the device detail page for a device. The SSH fingerprint is available in the Device settings sidebar.

SSH should only be used locally while developing a package. Leaving SSH accessible in a production device is always a risk as it exposes an additional attack surface.

Do not use SSH to sync content to your device. Always deliver content through a package. That way it can be verified, cached and survives device reboots.

Activate Remote Syslog

Normally the last 1MB of logging information is stored in RAM. It is lost during reboots. If you want to store log information permanently, you can activate Remote syslog support. This will send the log to the specified host.

Generate the file /config/remote_syslog and specify the address of your syslog server. The device will then send logging information there.

To see if logs are sent, start

netcat -l -p 514 -u

on the specified machine. You should see logs information.

The log contains sensitive information and is sent unencrypted. Use with care!

Expose info-beamer ports

By default, the running info-beamer process is not reachable from other hosts. Only from local processes running on the same device. Before you can send information to your info-beamer nodes remotely you must configure the device to bind info-beamer to a publicly reachable address. It's almost always better to use the remote control feature instead.

Create the file /config/bind_address. If you want info-beamer to be reachable from external hosts, put 0.0.0.0 in that file.

Once you make info-beamer accessible other programs can talk to info-beamer using TCP or UDP on port 4444 and connect to nodes in the running visualization code. Depending on the running code this might expose functions that might be designed to trust their input and to be reachable from the local device only.

Be sure to understand the consequences of exposing info-beamer to your network.

Dev Mode

info-beamer hosted allows you to rapidly develop packages using a feature called dev-mode. It allows you to push code and data directly to an info-beamer devices from your development machine. That way you can instantly see changes you make to code or assets. This feature can be enabled by creating the file /config/dev-mode.

You can use the dev-mode tool from the info-beamer package sdk repository on your development machine.

The dev-mode feature will blink an icon like this in the top-right corner of the device output to remind you that dev-mode is active and a device with the feature enabled doesn't accidentally end up in production.

Important: Never activate dev-mode on production devices or in untrusted networks! Your device can be easily taken over as anyone can push any code to your device. Only use it in a secure development environment!

VNC

The device can optionally start a VNC server. This allows you to connect to your device with any VNC client to see the device output. The Pi isn't fast enough to show its output perfectly smooth in realtime, but 2-5 fps are possible. This feature can helps you if you want to develop content on your Pi but you don't have a screen connected.

Do not enable the VNC server on production devices as it opens up a new port.

GPIO device reset

Adding the file /config/reset-gpio to the SD card with the number of a GPIO pin as content will add a new reset ability to a device: It will be restored to "factory settings" when pressing the configured GPIO while booting the device. The screen will flash 3 times and the device will behave as a newly inserted SD card is inserted. All configuration in /config will be carried over into the new installation. This reset method completely rewrites all content on the SD card, but cutting power while it's running might result in a broken system as the OS has to temporarily move data into RAM only.

A more robust method might be to only force a rewrite of the data partition including the device identity. You can achieve this by adding /config/reformat-gpio to the SD card and specifying a numeric GPIO pin as content. If that pin is active while the device reboots, the screen will flash 4 times and the device will completely wipe the data partition and create a new device identity. The device must then be registered with info-beamer.com again.

Disk Encryption

If you create the file /config/enable-disk-crypto your device will set up disk encryption when booting up the device the next time.

Although not recommended (see below) adding this file to an already registered device will force a complete device reset thereby repartitioning the storage device and removing all downloaded data. You'll have to re-add the device to your account in that case (or use the device-connect-key.txt feature).

Disk Encryption works by storing two different key components and using them to derive a combined key that is then used to encrypt the storage partition of your device. The storage partition (mounted on /space while the device runs) holds the device's identity as well as all downloaded content. It doesn't hold the device specific configuration data described in this documentation. As of OS release 13, some files within /config will be encrypted as well. It's important that you do not place those files yourself in /config but use the dashboard device configuration editor or the device config API to make changes.

The following files will be encrypted:

  • wireless
  • wpa.conf
  • wifi_ui
  • wpa-ca.pem
  • wpa-user.pem
  • wpa-user.prv
  • device-connect-key.txt
  • authorized_keys
  • proxy
  • cntlm.conf

The two key components consist of

  • A small random file in /config/sd.key. Shredding this file will render your storage partition inaccessible and will result in a complete device reset. This file is created once when disk encryption is enabled.
  • A 128bit randomly generated value stored in the one-time-programmable (OTP) memory of the Pi. The Pi has a total of 256 bits reserved for such purposes (See customer OTP settings). As the name implies, this storage can only be written once: A bit cannot be unset once set. This means that disk encryption irreversibly modifies your Raspberry Pi. To our knowledge no other publicly available software uses this feature, so even if you intend to use your Pi for anything other than running info-beamer hosted, you most likely won't have problems as a result.

Disk encryption somewhat protects against stolen SD cards. While non-critical device configuration is readable, any downloaded content as well as the list of configuration options listed above cannot be accessed using the SD card alone as part of the key used to encrypt the data is stored on the Raspberry Pi itself. So a thief cannot use the card to retrieve any of the content previously shown on the device.

Due to how disk encryption works, it only really makes sense to activate this feature when setting up a completely new SD card. Otherwise you risk having old and unencrypted data still stored on your SD card. It's not recommended to enable encryption on an SD card that has been previously used.

Local Shell

If you want to allow a local shell, create the empty file /config/allow_shell. This will allow you to open up a debug shell by switching to console 2 (Ctrl-Alt-F2) and then pressing Return. info-beamer will be stopped temporarily and you'll see a shell prompt. info-beamer will be restarted once you exit this shell and normal device operation will resume.

You should probably keep the local shell disabled unless you have a good reason since it offers easy access to a device for anyone with physical access.

Custom Raspberry Pi settings

You can create the file /config/userconfig.txt on the SD card and add additional options the you would normally put into the file /config.txt. This allows you to adjust options like overscan or overclocking (not recommended!).

Do not make those changes in the existing /config.txt file on the SD card. It will be overwritten when rebooting. Use /config/userconfig.txt

Be careful when using this file: You can specify configuration options that might break your device requiring manual repairs. Never modify any critical boot parameter like cmdline, initramfs or kernel related settings as info-beamer OS considers those under its control. If you feel like you need to use custom settings, please get in contact with support first.

Example usage: Delay resolution detection

If you start the Pi together with your TV, it can happen that the Pi is unable to properly detect the correct resolution as EDID information is not yet available to the Pi. In that case it can make sense to delay the Pi's boot sequence by a couple of seconds. This can be achieved by adding the following line into the custom Pi boot configuration text field within the configuration editor or add it to the /config/userconfig.txt file on the SD card:

boot_delay=10

Setting the output display

It's possible to specify the display to use for a Pi. By default HDMI is used. It's possible to overwrite this default setting by putting the display name/number into the /config/display file.

content of /config/display Output
0 or lcd Default LCD / HDMI
1 or tv Internal DSI LCD, like the 7" official display

Setting HDMI clock sync

If you create the file /config/hdmi_clock_sync, raw videos will play with HDMI clock sync set. This means that the HDMI clock will be adjusted to the HDMI frame rate. Some screens have problems with this feature, so it's usually not recommended to use it.

Keep attached HDMI screen on

Recent versions of info-beamer hosted OS can monitor the attached HDMI screen and can try to turn it back on if they detect that the screen has been turned off. Just create the empty file /config/hdmi-keep-on on the SD card and start your device.

RTC

The hosted OS supports the Adafruit PCF8523 Real Time Clock. This allows a device a carry over the current time to the next boot, so that NTP isn't immediately required after a device starts. This allows you to run content that requires a somewhat correct time in a network environment where a working connection cannot be guaranteed 100%.

Note that the precision is 1 second, so it won't be precise enough for any kind of video wall setups as those require a precision of around 8-16ms.

The enable the RTC, add

dtoverlay=i2c-rtc,pcf8523

to /config/userconfig.txt or better yet: use the [x] Enable PCF8523 RTC option in the peripherals sections of the configuration interface for the device.

Scaling Governor

Allows you to specify a CPU scaling governor using the file /config/scaling_governor. The default is powersave and is quite conservative. It is usually recommended to use the ondemand governor. It clocks the CPU higher only when needed. Alternatively you can set it to performance to ensure your Pi runs in a constant high performance mode.

Welcome Screen CEC Menu

The welcome screen can now open up a TV remote (CEC) controlled menu system. The file /config/cec_menu.json can be used to enable/disable the menu or its features. The default value looks like this:

{
    "enabled": true,
    "wifi": false,
    "reboot": false,
    "info_link": true
}
Option Type Description
enabled Boolean If set to false, the CEC menu is disabled.
wifi Boolean If set to true, a new WiFi option is added to the menu. It allows users to trigger the WiFi configuration interface.
reboot Boolean If set to true, a reboot option is added to the menu.
info_link Boolean If set to false, the QR link for registration/jumping to the device in the dashboard is hidden.

MTU

Some network environment require custom MTU settings. Usually a wrong setting results in unreliable or timed out connections to your device. On example of that is when a device goes offline temporarily after you request a screen grab: The transfer of the screen grab might get stuck and the device will appear offline before it recovers after a few minutes. Setting a lower MTU can fix this issue. You can specify the MTU to use in the file /config/mtu.

Custom Branding

When info-beamer OS is booting up you see a big info-beamer welcome screen by default. You can add your own content there easily by just adding files to /config.

If you just want a static image you can put a JPG image on the SD card in /config/branding.jpg. It fill be displayed fullscreen instead of the default info-beamer logo. If you want to make a good impression make sure that your image has the same aspect ratio or better the same resolution as your screen.

You can also add a video intro instead of a static image. Just add an H264 MP4 video in /config/branding.mp4. It will be loaded and looped while the device is starting up.

Do not put too big video files (>5MB) onto the SD. Updating the operating system will fail if there is not enough free space remaining.

In both cases the default instructions ("Use this PIN...") will be displayed as a smaller scale at the bottom of your screen.

The previously available branding.ppm feature is no longer available due to changes required by the Pi4.