I installed Ubuntu Server on my Raspberry Pi 4. I have a 3.5" Waveshare display for it.

Waveshare provides instructions to clone a GitHub repository and then run a script called "./LCD35-show" (https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)). I did this on Raspberry Pi OS and the display worked. With Raspberry Pi OS, after the script runs, HDMI gets switched off. However, it does not work on Ubuntu Server. The HDMI is still displaying, and the LCD is not.

I found a GitHub project which seems to have fixed the issue for Ubuntu 20.04 and Raspberry Pi 3 (https://github.com/victorbrca/waveshare35-rpi3b-ubuntu-20.04-64). I will try this out, but I'd like to understand the principles on a deeper level.

Waveshare's driver is open-source, so it seems quite possible to study how it works. I'm just curious, what is it about Raspberry Pi OS which allows their driver script to work but not for Ubuntu? What specifically is it about Ubuntu that is different and is not working?

1 Answer 1


The Pi OS and Ubuntu have different kernels, and most likely this display uses a device driver which is not "mainlined", that is, it was developed for a specific kernel and may not work with a different one. Mainlined drives become part of Linux and are tested for compatibility with every kernel release.

That repo you have found likely contains a patch needed to make the driver compatible with Ubuntu.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.