1

I have an Intel NUC6i7KYK (Intel Graphics 580) and Ubuntu 16.04. I'm trying to get around the problem of Ubuntu booting to a different resolution if it boots while the TV is turned off.

I know there is a hardware solution involving something like Dr HDMI, HDMI Detective etc but I'm trying to see if it's possible to solve this using software.

Here is what I have done, which according to various searches - in particular what I found from this link https://wiki.archlinux.org/index.php/kernel_mode_setting - ought to work.

  1. I installed the read-edid package and then used get-edid to grab a copy of my TV's EDID when it is plugged in and switched-on. I named this "edid.bin".

  2. I copied this into lib/firmware/edid/

  3. I added "drm_kms_helper.edid_firmware=DP-1:edid/edid.bin video=DP-1:e" to the kernel command line

  4. I unplugged the HDMI cable and rebooted.

It seems to load the EDID ok, and indeed the bottom of the Xorg log file shows it recognises all the different modes supported by the TV that it must have got from the EDID. However, none of these modes appear in the Display Settings of Ubuntu. Also, the Display Settings panel doesn't work properly - it shows the TV but it's not selected by default; you have to click on it to select it and then slide the On/Off switch to On but then it doesn't give any screen modes. Attempting to save the profile throws an error. I am guessing it has been disabled because there are no modes - which the output of xrandr also backs up.

So it seems that while my changes have made it read the EDID, this isn't resulting in a valid monitor being setup with the various modes available.

What am I missing here? There must be an additional step I need to take?

I have included the dmesg and Xorg logs and the output from "xrandr --query" for both when the TV is on and when it is off and also the parsed EDID output.

If anyone could shed any light or help me tweak my settings to make this work then I'd be grateful.

Thankyou.

Oliver

https://www.dropbox.com/sh/mo3y3y25qmgb6zm/AAAFJlAbW7KC83cYH9gXcWTla?dl=0

oviano
  • 11

1 Answers1

1

Its a bit of a hack but I handled a similar situation by using xrandr and firing it up immediately after login

Taken from my SU answer, though you'd need to adjust it to your DE - I leave actually running the script as an exercise to the user.

I created a script as mentioned previously that handled creating a new screen mode. I saved this as xrandr.sh and made sure it was executable. I used gtf to generate the modeline (gtf 1280 800 60.0 - horizontal resolution, vertical resolution and frequency - most folk seem to do it to one decimal point so I did so) and used that to generate the script and a bare xrandr command to work out the output name

That spits out something like

[geek@phoebe ~]$ gtf 1280 800 60

  # 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
  Modeline "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831   -HSync +Vsync

The stuff after modeline is what's interesting - you use that to set the mode.

I saved this as xrandr.sh

xrandr --newmode  "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync 
xrandr --addmode HDMI1 "1280x800_60.00"
xrandr --output HDMI1 --mode 1280x800_60.00

This generates a new mode you can use anywhere, then tells your system to allow you to use that mode for the output HDMI1, and tells you to change the resolution settings to that mode

In your case you can run this as needed, or automate it somehow.