Table of Contents
MIX Raspberry Pi Kiosk Display
Use this article only when the Raspberry Pi itself will drive an HDMI monitor or touch screen which displays the MIX (MIStudio) user interface.
If the MIStudio UI will be viewed in a web browser from a PC, HMI panel, or tablet, you do not need this setup.
Complete the Raspberry Pi Base Setup and MIX installation first.
1. Install the graphical components
On a Raspberry Pi OS Lite installation:
sudo apt install -y xserver-xorg xinit x11-xserver-utils openbox chromium tint2
Older Raspberry Pi OS releases may call the browser package chromium-browser.
2. Enable console auto-login
Run:
sudo raspi-config
Choose:
System Options → Boot / Auto Login → Console Autologin
Choose Finish and do not reboot yet.
3. Start the graphical display automatically
Run:
echo '[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx' | sudo tee -a /home/mix/.bash_profile
4. Set the MIX kiosk address
Edit:
sudo nano /etc/xdg/openbox/environment
Add:
export KIOSK_URL=http://localhost:7226
Save with Ctrl+O, Enter, Ctrl+X.
5. Configure Chromium kiosk startup
Make a dated backup first:
sudo cp /etc/xdg/openbox/autostart /etc/xdg/openbox/autostart.bak.$(date +%Y%m%d_%H%M%S) 2>/dev/null sudo nano /etc/xdg/openbox/autostart
Replace the contents with:
# Keep the screen on xset -dpms xset s noblank xset s off # Prevent an unclean browser shutdown from stopping kiosk startup sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State' sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences # Rotate the display if required #xrandr -o left # Start the task bar and then open MIX full-screen tint2 & chromium --noerrdialogs --disable-infobars --disk-cache-dir=/dev/null --disk-cache-size=1 --kiosk $KIOSK_URL
Save with Ctrl+O, Enter, Ctrl+X.
Use chromium-browser instead of chromium on older Raspberry Pi OS releases.
If ErgoTech supplied an on-screen keyboard extension, add its --load-extension=<folder> option before --kiosk.
6. Add browser recovery to rc.local
An unexpected power loss can leave Chromium lock files behind. On the next boot Chromium may then report which the profile appears to be in use by another Chromium process.
The boot-maintenance script can safely remove these stale locks before the kiosk starts.
Back up the current file:
sudo cp /etc/rc.local /etc/rc.local.bak.$(date +%Y%m%d_%H%M%S) sudo nano /etc/rc.local
Find:
chmod 1777 /tmp
Immediately after it, add:
# Remove stale browser locks and cap the desktop error log
rm -f /home/mix/.config/chromium/Singleton*
find /home/mix -name ".xsession-errors" -size +10M -exec truncate -s 1M {} \;
Save with Ctrl+O, Enter, Ctrl+X.
Test the complete startup-maintenance script before rebooting:
sudo sh -x /etc/rc.local
It should finish without shell errors.
7. Reboot and verify the kiosk
sudo reboot
The expected result is:
- The Pi boots.
- The
mixuser logs in automatically. - The graphical session starts.
- Chromium opens the MIX interface full-screen.
- No Chromium profile-lock warning appears.
If the kiosk does not start, use the troubleshooting article before changing additional configuration.
