Raspberry Pi 2 Model B v1.1 SPI touchscreen kiosk (480×320 ILI9486 + XPT2046) setup notes
Download and flash Raspberry Pi OS Bullseye 32-bit (armhf) oldstable image (desktop image is OK). Use Raspberry Pi Imager “Use custom” and enable SSH. Boot and verify kernel is 6.1.x:
uname -a
Install the SPI TFT driver (GoodTFT LCD-show) and apply 3.5” config:
cd ~
git clone https://github.com/goodtft/LCD-show.git
cd LCD-show
sudo ./LCD35-show
(Reboots automatically.)
Disable HDMI so only the SPI display is used. Edit /boot/config.txt and add at the end:
hdmi_blanking=2
Reboot:
sudo reboot
Remove the Raspberry Pi “Welcome / wizard” autostart if it appears:
sudo rm /etc/xdg/autostart/piwiz.desktop
Create the kiosk launch script at /home/kioski/kiosk.sh:
#!/bin/sh
xset -dpms
xset s off
xset s noblank
exec chromium-browser
–noerrdialogs
–disable-infobars
–disable-session-crashed-bubble
–disable-features=TranslateUI
–kiosk file:///home/kioski/site/index.html
Make it executable:
chmod +x /home/kioski/kiosk.sh
Create a custom X session at /usr/share/xsessions/kiosk.desktop:
[Desktop Entry]
Name=Kiosk
Exec=/home/kioski/kiosk.sh
Type=Application
Configure LightDM to autologin as user kioski and start the kiosk session. Edit /etc/lightdm/lightdm.conf and ensure:
[Seat:*]
autologin-user=kioski
autologin-session=kiosk
Ensure the system boots into graphical target:
sudo systemctl set-default graphical.target
Verify:
systemctl get-default
(Expected: graphical.target)
Reboot:
sudo reboot
After boot, Chromium should start fullscreen on the SPI display with HDMI disabled.
To change the page shown in the kiosk, edit /home/kioski/kiosk.sh and replace the URL after –kiosk (e.g. file:///home/kioski/site/index.html or https://your-url). No reboot is required to reload content; restart Chromium:
pkill chromium