2

Questions

Does Linux store hardware information between boots? (Such as EDIDs)

If so is it possible to configure what gets cached?


Background

The reason I ask is that I currently am trying to configure a second monitor, and this monitor has a VGA (display) to display-port (graphics card) passive converter (I know this is a bad idea, and was not my own). To my understanding the use of a passive converter requires the graphics card do some amount of work to get the signal to the display correctly.

I can get the display working, however if I hard power off either the display or the computer it will cease to work once turned back on. My solution so far which is very successful is to unplug the display-port from the graphics card, reboot the machine, plug the display-port back in, reboot again and it works fine. This is however quite tedious because I have many computers with this configuration.

After power off/on and working again the second display has a different EDID.


Thoughts

My first hunch is that the graphics card is receiving some amount of information from the display, and doing some additional work to produce the final EDID because of the passive adapter. Because the card performs this work the EDID is not consistent between power cycles.

My second hunch is that Linux (RHEL 7.0 specifically) caches hardware information (because of how static it normally is), and when the cached EDID and current EDID conflict the monitor no longer works.

My workaround corroborates this, because unplugging the monitor and booting would be a significant enough change to detect the hardware again (which would be none in the display-port), then plugging in the display-port and booting would cause the display to be treated as new hardware and detected from fresh. This workaround basically seems like a way to flush cache for this display.

0

I dont think EDID data is cached anywhere, but you can play with sudo ddccontrol -p to see if you can read it at any time over the i2c bus in a vga cable. See doc.

Also, use xrandr to control your monitors. It should list which ports of your graphics card have something connected to them and allow you to play with their settings.

By default, the Xorg server tries to dynamically determine what screens are connected when it starts up, unless you have an overriding xorg.conf file. You could try creating such a file with sudo X -configure when X is not running and your monitors are working ok. See archlinux for some examples.

  • I am making use of xorg.conf, with both of the screens configured using it (there are two different device/monitor/screen sections). Since it can work with the xorg.conf it seems configured properly. xrandr will always report the second monitor connected, but when the screen is not working it presents a generic name (NVIDIA VGA... instead of the usual monitor name) and lists no resolutions. – Centimane Jun 28 '16 at 17:44
  • You could try adding Option "IgnoreEDID" "true" and Option "NoDDC" "true" to the Device section. – meuh Jun 28 '16 at 17:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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