This repository contains installation scripts for enabling SPI TFT touchscreen displays on Raspberry Pi devices running Kali Linux, Parrot OS, Raspbian, and other Debian-based operating systems.
π οΈ Originally forked from GoodTFT's LCD-show
π» Enhanced by @at0m-b0mb for multi-OS compatibility
π¦ Includes framebuffer mirroring (fbcp), calibration, and rotation support
- β Multi-OS Support: Works with Kali Linux, Parrot OS, Raspbian, and other Debian-based systems
- β Automatic OS Detection: Detects your operating system and boot partition automatically
- β
Boot Path Detection: Supports both
/boot/(old style) and/boot/firmware/(new style) - β Tested on Raspberry Pi 5 and other Raspberry Pi models
- β Supports multiple LCD models (MHS35, LCD35, LCD7B, and many more)
- β Installs required drivers and device overlays
- β Enables touch and display output via SPI
- β
Optional framebuffer mirroring via
fbcp β οΈ Rotation is not fully functional yet on some setups β work in progress
- Raspberry Pi (any model supporting SPI displays)
- One of the following operating systems:
- Kali Linux (ARM/ARM64) from official source
- Parrot OS ARM version
- Raspbian / Raspberry Pi OS
- Other Debian-based ARM distributions
- Compatible SPI TFT LCD Display (MHS35, LCD35, LCD7B, LCD24, etc.)
- Internet connection for dependency installation
| OS | Status | Notes |
|---|---|---|
| Kali Linux ARM/ARM64 | β Fully Supported | Tested on Kali Linux 2025.2 |
| Parrot OS ARM | β Fully Supported | Auto-detected and configured |
| Raspbian / Raspberry Pi OS | β Fully Supported | Original compatibility maintained |
| Other Debian-based | Should work with most Debian derivatives |
| File / Folder | Purpose |
|---|---|
*-show scripts |
π§ Installation scripts for different LCD models (e.g., MHS35-show, LCD35-show) |
os-detect.sh |
π NEW: Automatic OS and boot path detection |
lcd-show-common.sh |
π οΈ NEW: Common functions for all scripts |
rotate.sh |
βͺοΈ Optional screen rotation logic |
LCD-hdmi |
πΊ Switch back to HDMI output |
system_backup.sh |
π‘οΈ Backup current system files before installation |
system_restore.sh |
π Restore backed up system files |
usr/, boot/, etc/ |
π Drivers and config files |
- Kali Linux 2025.2 ARM64 on Raspberry Pi 5
- Parrot OS ARM on Raspberry Pi 4
- Raspberry Pi OS (formerly Raspbian) on various models
- Multiple LCD models: MHS35, LCD35, LCD7B, LCD24, LCD28, LCD32, and others
sudo rm -rf LCD-show-kali
git clone https://github.com/at0m-b0mb/LCD-show-kali.git
chmod -R 775 LCD-show-kali
cd LCD-show-kaliChoose the appropriate script for your LCD model:
sudo ./MHS35-showsudo ./LCD35-showsudo ./LCD7B-show # For LCD7B 7" display
sudo ./LCD24-show # For LCD24 2.4" display
sudo ./LCD28-show # For LCD28 2.8" display
sudo ./LCD32-show # For LCD32 3.2" display
# ... and many moreThe script will:
- Automatically detect your OS (Kali Linux, Parrot OS, Raspbian, etc.)
- Detect the correct boot partition path (
/boot/or/boot/firmware/) - Install necessary dependencies
- Configure the LCD display
- Reboot the system
Note: The system will automatically reboot after installation.
After installation, you can rotate the display:
sudo ./rotate.sh [rotation]Where [rotation] can be:
0β Normal (no rotation)90β Portrait (90 degrees)180β Inverted (180 degrees)270β Portrait (270 degrees, other side)360β Horizontal flip (HDMI only)450β Vertical flip (HDMI only)
Example:
sudo ./rotate.sh 90
β οΈ Note: Rotation may not work perfectly on all Kali Linux and Parrot OS images due to X11/input driver differences. This is being actively improved.
If you want to disable the LCD and switch back to HDMI:
sudo ./LCD-hdmiThe system will reboot and use HDMI output.
The installation scripts automatically install the following packages (if not already present):
cmake- For building fbcp (framebuffer copy tool)git- For cloning repositoriesbuild-essential- Compilation toolsxserver-xorg-input-evdev- Touch input driverlibraspberrypi-dev- Raspberry Pi libraries (on compatible systems)
Package installation is OS-aware and will use the appropriate package repositories for your system (Kali, Parrot, Raspbian, etc.).
- Check your boot configuration file:
- Kali Linux / Newer systems:
/boot/firmware/config.txt - Raspbian / Older systems:
/boot/config.txt
- Kali Linux / Newer systems:
- Verify SPI is enabled in the config
- Ensure correct overlay is present:
dtoverlay=mhs35:rotate=90(or your LCD model) - Check that overlay files exist in the overlays directory
- Confirm
/etc/X11/xorg.conf.d/99-calibration.confis in place - Install/reinstall:
sudo apt-get install xserver-xorg-input-evdev - Try restarting fbcp:
sudo fbcp & - Check if touch device is detected:
ls /dev/input/
- Try rotating using Xinput or
xrandr - Check if you're using X11 (not Wayland)
- Manual touch configuration may be needed
- Some rotations require specific calibration files
- Update package lists:
sudo apt-get update - Check your internet connection
- The scripts will fall back to local
.debpackages if repository install fails - For Kali/Parrot: Ensure your system is up-to-date with
sudo apt-get upgrade
- Verify the correct boot path is being used
- Check system logs:
dmesg | grep -i lcd - Manually check the boot config file matches expected settings
- Some systems may require additional boot parameters
- Run the OS detection manually:
bash os-detect.sh - Check
/etc/os-releasefor OS information - Report issues with OS detection on the GitHub issues page
The scripts now include an intelligent OS detection system (os-detect.sh) that:
- Reads
/etc/os-releaseto identify the operating system - Detects whether the system uses
/boot/or/boot/firmware/ - Automatically configures paths for overlay files
- Selects appropriate package installation methods
This ensures compatibility across:
- Kali Linux (ID: kali)
- Parrot OS (ID: parrot)
- Raspbian (ID: raspbian)
- Other Debian-based systems (ID: debian)
Modern Raspberry Pi systems (including Kali Linux) use /boot/firmware/ for boot configuration, while older Raspbian systems use /boot/. The scripts automatically detect and use the correct path.
Contributions are welcome! If you:
- Test on a new OS or Raspberry Pi model
- Fix a bug or improve compatibility
- Add support for a new LCD model
Please open a Pull Request or Issue on GitHub.
- Based on the original driver from GoodTFT
- Adapted for multi-OS support by @at0m-b0mb
- Thanks to the Kali Linux and Parrot OS communities for testing
MIT License β Free to use, modify, and distribute.
- Open an Issue on GitHub
- Contact @at0m-b0mb
- Check the Troubleshooting section above
- β Added support for Kali Linux ARM/ARM64
- β Added support for Parrot OS ARM
- β Automatic OS detection system
- β
Dynamic boot path detection (
/boot/vs/boot/firmware/) - β OS-agnostic package installation
- β Maintained backward compatibility with Raspbian
- β Updated all LCD show scripts for multi-OS support
- β Improved error handling and user feedback