Nvidia-cards and no picture when box is on before the TV
Some nVidia cards can cause problems with not enabling outputs if it does not detect a device on the port. This can be particularly troublesome if you frequently restart the X server, for instance when shutting down your machine at night and using ACPI-Wakeup to wake it as needed.
Digital interfaces (DVI/HDMI) can be fixed by forcing an archived copy of the TV's EDID into the driver on startup. There are two methods of getting a copy of this data block.
This method requires you have a mouse and keyboard attached to your frontend.
- Run 'nvidia-settings' on the local X-Server
- Click the entry corresponding to your TV (e.g. DFP-0)
- Click 'Acquire EDID' and save the 'edid.bin' file someplace safe, for instance '/etc/X11/tv-edid.bin'
This method can be run entirely from the command line, locally or remotely.
- Run an X server with enough verbosity to print out the EDID block
startx -- -logverbose 6
- After the X-Server has finished initializing, close it
- Find your log file, it will probably be in /var/log/Xorg.0.log
- Extract the EDID block using nvidia-xconfig
nvidia-xconfig --extract-edids-from-file=/var/log/Xorg.0.log --extract-edids-output-file=/etc/X11/tv-edid.bin
Applying EDID to config file
- Open your existing config file, usually in /etc/X11/xorg.conf
- Find the 'Device' section for your video card.
- Add a line to force the stored EDID
Option "CustomEDID" "DFP-0:/etc/X11/edid.bin"
- Save and close the config file, and restart your X-Server
If the above changes didn't work, below are some other lines you can try to put in the 'Device' section in your config file.
Option "ModeValidation" "NoDFPNativeResolutionCheck"
Option "ExactModeTimingsDVI" "True"
Option "UseDisplayDevice" "DFP-0"
Option "ConnectedMonitor" "DFP-0"
Newer nVidia cards may show the console properly on a TV connected by S-Video or Composite, but will not output on those ports unless the TV is connected and on while X is started. EDID data is not sent over analog, so the above fix is not possible in this scenario. Rebooting the machine will work on a frontend-only box, but is inconvenient. Other options would be to SSH in to restart the X-Server, or running 'irexec', and making a script bound to a key on your remote to terminate the X-Server and restart it.