I had only 3.5" TFT resistive touch screens available, rather than the "tested configuration" 4 inch screen - but perhaps what I learned will be useful, anyway.
I spent several hours trying to debug the issues from attempting to install a driver by running ./LCD-show. It turns out that no additional driver is required on modern pi OS . I have tested with using only the overlay from the LCD-show repo as described below.
To summarise my findings,
The only things required from the LCD-Show repository are the overlay files.
Since it was written for an earlier version of raspberry pi, almost everything else the LCD-Show script does is unnecessary and/or unhelpful.
I followed the principles set out by Akiv Das here: avikdas.com
[Unlike Akiv, I found that no change is required for /boot/firmware/cmdline.txt]
'I should state I have tested only on generic 3.5" SPI screens. The 4" recommended screen will need a different overlay, but probably will work in the same way with all the other settings below.
The overlay will need to match screen - see README.md in the LCD-show repo for descriptions of the screens that might help choose the right overlay.
Copy the chosen overlay to /boot/firmware/overlays
# in general: sudo cp ~/LCD-show/waveshare<xxx>.overlay.dtb /boot/firmware/overlays/waveshare<xxx>.dtbo
# in my case
sudo cp ~/LCD-show/waveshare35a.overlay.dtb /boot/firmware/overlays/waveshare35a.dtbo
Note the change from dtb to dtbo file extension. The overlay in the config.txt file must match this name (but without the extension, see below)
The display works when config.txt has just the lines - and perhaps even some of these could be removed.
# rpi hardware (can turn this on in raspi-config) - only spi is needed for TinyProgrammer
dtparam=spi=on
# Automatically load overlays for detected DSI displays [Actually, even this may not be needed]
display_auto_detect=1
# Automatically load initramfs files, if found
auto_initramfs=1
# Enable the TFT LCD by applying the appropriate boot overlay. Provided by
# the LCD-show repo and must be copied over to the /boot/firmware/overlay directory
# For my (inverted) 3.5" SPI screen - this worked
dtoverlay=waveshare35a:rotate=180
# Enable DRM VC4 V3D driver; Only 1 framebuffer seems to be fine
dtoverlay=vc4-kms-v3d
max_framebuffers=1
# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1
# Run in 64-bit mode
arm_64bit=1
# Disable compensation for displays with overscan
disable_overscan=1
# Run as fast as firmware / board allows
arm_boost=1
Of course, without testing on other screens, I can only confirm this works for the 3.5" SPI screens I have.
I do hope this saves someone else some time!
I had only 3.5" TFT resistive touch screens available, rather than the "tested configuration" 4 inch screen - but perhaps what I learned will be useful, anyway.
I spent several hours trying to debug the issues from attempting to install a driver by running ./LCD-show. It turns out that no additional driver is required on modern pi OS . I have tested with using only the overlay from the LCD-show repo as described below.
To summarise my findings,
The only things required from the LCD-Show repository are the overlay files.
Since it was written for an earlier version of raspberry pi, almost everything else the LCD-Show script does is unnecessary and/or unhelpful.
I followed the principles set out by Akiv Das here: avikdas.com
[Unlike Akiv, I found that no change is required for /boot/firmware/cmdline.txt]
'I should state I have tested only on generic 3.5" SPI screens. The 4" recommended screen will need a different overlay, but probably will work in the same way with all the other settings below.
The overlay will need to match screen - see README.md in the LCD-show repo for descriptions of the screens that might help choose the right overlay.
Copy the chosen overlay to /boot/firmware/overlays
Note the change from dtb to dtbo file extension. The overlay in the config.txt file must match this name (but without the extension, see below)
The display works when config.txt has just the lines - and perhaps even some of these could be removed.
Of course, without testing on other screens, I can only confirm this works for the 3.5" SPI screens I have.
I do hope this saves someone else some time!