This is a guide and scripts to create a kiosk with a Raspberry Pi. This can be used with a TV or with the Raspberry Pi touchscreen.
These instructions will get you up and going from a fresh install. They may need some adaption for your use case.
To start you need a Raspberry Pi and an Micro SD with Raspian Lite. If your SD card came preinstalled with NOOBS you can use that to install Raspian Lite. If you are staring with a empty SD card you can install NOOBS Lite for doing a network install of Raspian Lite. Alternatively you could choose to directly write the Raspian Lite image to the SD card with etcher
Install Raspbian Lite via NOOBS or writing the image to the SD card. Use of NOOBS has been discontinued current recommended method is to use the Raspberry Pi Imager and use the "Raspberry Pi OS Lite (64bit)" or "Raspberry Pi OS Lite (32bit)". If you need to configure hostname, wifi, password and ssh you can now do that in the Raspberry Pi Imager.
Here are some of the most common items that need to be configured on a fresh install.
Install Updates (If you need to configure Wi-fi skip this step and come back after running raspi-config)
sudo apt update && sudo apt install -y raspi-config
Raspberry Pi Config (raspi-config) is a tool used to configure your Raspberry Pi. Most of these settings can be set from the Raspberry Pi Imager but you can also adjust them at any time with raspi-config.
New Versions
sudo raspi-config
* System Options > Password
* System Options > Hostname
* System Options > Boot / Auto Login > Console Autologin (NOT Desktop!!)
* System Options > Wireless LAN (optional)
* Localization Options > Locale > Enable 'en_US.UTF-8 UTF-8'
* Localization Options > Timezone > US > Central
* Localization Options > WLAN Country
* Interface Options > SSH > Enable (optional)
Old Versions (Not really relevant anymore)
sudo raspi-config
* Change Password
* Network Options > Change Hostname
* Network Options > Wi-fi (optional)
* Boot Options > Desktop/CLI > Console Autologin (NOT Desktop!!)
* Localization Options > Change Locale > Enable 'en_US.UTF-8 UTF-8'
* Localization Options > Time Zone > US > Central
* Interfacing Options > SSH > Enable (optional)
While setting up several of these for AIO kiosks with 7" touchscreens and an inline POE adapter several tweaks were added. The key option is the lcd_rotate that may be required if your using a touchscreen and not a TV. The other options mostly apply mostly reducing the power use on a Raspberry Pi 3 because of the POE adapter that was being used. I used a POE splitter verses a POE shield because it was the easiest way to power the screen and Pi via POE. The case I used for the touchscreen and POE splitter will not work with a Raspberry Pi 4 or newer devices.
For those wondering here is the equipment I used for the 7" AIO Kiosks.
. Raspberry Pi 3
. Touchscreen
. Touchscreen Case
. POE Splitter
Here are the /boot/config.txt options I added to rotate the screen and slightly reduce the power usage.
lcd_rotate=2
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off
dtoverlay=pi3-disable-wifi
dtoverlay=pi3-disable-bt
sudo apt update && sudo apt install -y git
cd ~
git clone https://github.com/bertramt/pikiosk.git
cd pikiosk
./install.sh
Head on over to the raspberry pi docs for more details on the config.txt.
Some of my TVs are 4K and I really don't need to display at 4K
framebuffer_width=1920
framebuffer_height=1080
hdmi_group=1
hdmi_mode=16
disable_splash=1
Adding or changing these options should quiet down the booting process. This is done automatically with the install script.
ADD: loglevel=3 consoleblank=0 quiet splash vt.global_cursor_default=0 logo.nologo plymouth.ignore-serial-consoles
CHANGE: console=tty1 to console=tty3
This should be done automatically via the install script.
sudo ln splash.png /opt/splash.png
sudo ln splashscreen.service /etc/systemd/system/splashscreen.service
sudo systemctl enable splashscreen
This section needs to be cleaned up
edit chromium-browser add urls at end
This section needs to be cleaned up
edit .xinitrc and remove --kiosk
https://chrome.google.com/webstore/detail/revolver-tabs/dlknooajieciikpedpldejhhijacnbda
more tools > extensions > detail > enable allow in incognito
Revolver Tabs Options
- Autostart
- Reload
- Rotate only when inactive
edit .xinitrc and add --kiosk to
cd ~/pikiosk
./uninstall.sh
- ADD SMARTS to uninstall
- Install firewall
- Add a cleaner way to enable/disable kiosk mode
- Add a cleaner way to add/edit urls
https://raspberrypi.stackexchange.com/questions/59310/remove-boot-messages-all-text-in-jessie https://yingtongli.me/blog/2016/12/21/splash.html