PDA

View Full Version : Monitor sleep during rhgb since 2.6.35.9-64


madopal
23rd December 2010, 07:42 AM
I'm not sure, but I think this is hardware. Anyway, I have two different boxen running FC14. One has a Nvidia 9800, the other a Nvidia NV96. The former I use as a desktop, the latter a server. I've let the server go with whatever the system autodetects for video, but the desktop I've played with a ton: nouveau, nvidia, etc.

Anyway, since I upgraded both to 2.6.35.9-64, both go to sleep at some point during rhgb. I can't find anything in boot.log, messages, or what have you to try. This happens even if I go to runlevel 3, so unless I'm misunderstanding the boot sequence, this is way before X starts.

Now, just upgraded to 2.6.35.10-72 tonight, and the behavior slightly changed. Before, it would show the rhgb loading screen for a few, but then the monitor would sleep before it completed. As of this kernel, it just goes to sleep right away.

The only quirky thing I can think is that I'm running DVI out into a KVM. I have been making sure to have the machine as the active video when it boots, so it should still be able to feed EDID info to the machine, but I did notice when trying to track down nouveau/nvidia problems on the desktop that X was having trouble reading my EDID all the sudden.

I'm assuming there's some automagic default now that's putting my monitor out of range. The only way I've been able to keep the desktop running is to not have the nvidia driver installed, but also not have a driver type specified in xorg.conf. If I do that *and* specify a modelines, I can boot with rhgb off at runlevel 3, then manually start X. From the Xorg.0.log, it appears to be falling back to vesa, which is the only thing that works.

How can I debug this? If the monitor sleeps but there are no messages in boot.log, messages, or Xorg.0.log, how can I even figure out what rhgb is doing?

madopal
8th April 2011, 04:13 PM
In case anyone else runs into this, I found a solution. Basically, it appears the drivers (nouveau, nvidia) are sniffing the EDID and setting a default resolution if they don't like what they get back from the monitor. I've got a Hanns G JC199D, and it apparently doesn't return the correct checksum.

Anyway, I did the following:
- Grab the bad EDID data from Xorg.0.log, and somehow save it to a binary file
- Recalcuate the checksum for the EDID block
- Put a line in your xorg.conf to the Section "Monitor" like the following:
Option "CustomEDID" "DFP-0:/path/to/edid.bin

Once that's done, the monitor should be a bit more able to be used. I haven't tested it with nouveau, and starting up anything graphical during boot may not use the xorg.conf yet, so not sure if it'll prevent all cases. The nvidia driver doesn't seem to start until after the boot process is done, so I was able to get around the problem with this.

I've updated the bug in bugzilla on this, but it doesn't look like there's been a lot of progress fixing it. It would seem that nouveau is picking a default resolution that is out of range for some monitors, which is kinda shocking.