Setting up display without EDID

Hi everyone,

I've been playing around with a waveshare 5 inch B screen the past week. It took me some while to get the screen going so I'd thought I'd share it. I'm still working on the touchscreen driver.

I wasn’t sure it didn’t utilize an EDID so with the use of get-edid on linux (read-edid package)
I could confirm no EDID was present. I’ve also sanity checked this with i2c tools because HDMI utilises DDC which is similar to i2c.

After digging through the kernel log with dmesg I figured out that the drm driver was complaining that no EDID was present so it configured the l915 fb driver to 1024×768 by default.

As the datasheet describes the TPF401 should receive a 800×480 60Hz signal otherwise it will not work.
To configure Linux to bootup with a fixed resolution you can simply add the following line to your kernel bootparam:
video=HDMI-A-1:[email protected]

For the UPboard you should add this to grub:
sudo vim /etc/default/grub 
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=HDMI-A-1:[email protected]"

sudo update-grub
sudo reboot
cat /proc/cmdline

To get this configured on statup, it should be configured in an X11 config.
/etc/X11/xorg.conf
Section "Device"
	Identifier "Card0" 
EndSection
Section "Monitor"
	Identifier "Monitor0" 
EndSection 
Section "Screen"
	Identifier "Screen0"
	Monitor "Monitor0"
	Device "Card0" 
	SubSection "Display" 
	Depth 24
	Modes "800x480"
	EndSubSection
EndSection

I hope it helps, I've tested this on Ubuntu 16.04. But I don't see any reason why this should work on other Linux distro's, boards or different displays.
Sign In or Register to comment.