Video Displays

Normally, Mythbuntu does a pretty good job of detecting the display connected to it and configuring it automagically. However, if your video display does not play well with Mythbuntu (i.e. it cannot be probed and set up automagically), you may have to configure it yourself.

This section describes what to do about this situation but first, a note about how to get out of a bind, if for some reason your display does not work properly and you cannot recover from this state because the picture is too garbled to run the usual configuration tools.

Using SSH on another system, connect to the system that is in trouble and go to the /etc/X11 directory. There, you should find files named xorg.conf*. You should rename xorg.conf to something like xorg.conf.brokey and then symlink xorg.conf to the xorg.conf.failsafe file:

     cd /etc/X11
     sudo mv xorg.conf xorg.conf.brokey
     sudo ln -s xorg.conf.failsafe xorg.conf

This should get you up and running, at which point you can begin monkeying around with the display configuration to arrive at one that works for your display.

Also, before you start playing around with any of the display settings, be aware that some of the NVidia drivers don't handle modelines properly so you may want to check into that first, before you waste a whole lot of time (like we did) trying to set something that's going to have no effect.

If the display you are trying to work with is a TV, you may find some useful notes about setting it up at this URL:

     http://www.linuxis.us/linux/media/howto/linux-htpc/
       video_card_configuration.html

Basically, you are trying to figure out one or more modelines that can be used to set the various screen resolutions supported by your display. There should be a chart in the back of your display's manual that lists all of the supported modes (beware that some of the charts we've seen have the vertical and horizontal frequencies exchanged - a good clue is that the vertical frequency is usually the one that matches the number in the VESA name). First off, you should try to pick one of the standard modes from the list below. Also, it is best to try and pick the highest vertical refresh rate (in Hz) supported by your display:

     # 640x400 @ 85Hz (VGA VESA 85) hsync: 37.9kHz
     ModeLine "640x400"    31.5    640  672  736  832  400  401  404  445 \
       -hsync +vsync
     # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
     ModeLine "640x480"    25.2    640  656  752  800  480  490  492  525 \
       -hsync -vsync
     # 640x480 @ 72Hz (VGA VESA 72) hsync: 37.9kHz
     ModeLine "640x480"    31.5    640  664  704  832  480  489  491  520 \
       -hsync -vsync
     # 640x480 @ 75Hz (VGA VESA 75) hsync: 37.5kHz
     ModeLine "640x480"    31.5    640  656  720  840  480  481  484  500 \
       -hsync -vsync
     # 640x480 @ 85Hz (VGA VESA 85) hsync: 43.3kHz
     ModeLine "640x480"    36.0    640  696  752  832  480  481  484  509 \
       -hsync -vsync
     # 720x400 @ 85Hz (VESA 85) hsync: 37.9kHz
     ModeLine "720x400"    35.5    720  756  828  936  400  401  404  446 \
       -hsync +vsync
     # 800x600 @ 56Hz (SVGA VESA 56) hsync: 35.2kHz
     ModeLine "800x600"    36.0    800  824  896 1024  600  601  603  625 \
       +hsync +vsync
     # 800x600 @ 60Hz (SVGA VESA 60) hsync: 37.9kHz
     ModeLine "800x600"    40.0    800  840  968 1056  600  601  605  628 \
       +hsync +vsync
     # 800x600 @ 72Hz (SVGA VESA 72) hsync: 48.1kHz
     ModeLine "800x600"    50.0    800  856  976 1040  600  637  643  666 \
       +hsync +vsync
     # 800x600 @ 75Hz (SVGA VESA 75) hsync: 46.9kHz
     ModeLine "800x600"    49.5    800  816  896 1056  600  601  604  625 \
       +hsync +vsync
     # 800x600 @ 85Hz (SVGA VESA 85) hsync: 53.7kHz
     ModeLine "800x600"    56.3    800  832  896 1048  600  601  604  631 \
       +hsync +vsync
     # 1024x768 @ 43Hz (industry standard) hsync: 35.5kHz
     ModeLine "1024x768"   44.9   1024 1032 1208 1264  768  768  776  817 \
       +hsync +vsync Interlace
     # 1024x768 @ 60Hz (XGA VESA 60) hsync: 48.4kHz
     ModeLine "1024x768"   65.0   1024 1048 1184 1344  768  771  777  806 \
       -hsync -vsync
     # 1024x768 @ 70Hz (VESA 70, HP1070) hsync: 56.5kHz
     ModeLine "1024x768"   75.0   1024 1048 1184 1328  768  771  777  806 \
       -hsync -vsync
     # 1024x768 @ 75Hz (XGA VESA 75) hsync: 60.0kHz
     ModeLine "1024x768"   78.8   1024 1040 1136 1312  768  769  772  800 \
       +hsync +vsync
     # 1024x768 @ 85Hz (XGA VESA 85) hsync: 68.7kHz
     ModeLine "1024x768"   94.5   1024 1072 1168 1376  768  769  772  808 \
       +hsync +vsync
     # 1152x864 @ 75Hz (SXGA VESA 75) hsync: 67.5kHz
     ModeLine "1152x864" 108.0    1152 1216 1344 1600  864  865  868  900 \
       +hsync +vsync
     # 1280x960 @ 60Hz (SXGA VESA 60) hsync: 60.0kHz
     ModeLine "1280x960"  108.0   1280 1376 1488 1800  960  961  964 1000 \
       +hsync +vsync
     # 1280x960 @ 85Hz (SXGA VESA 85) hsync: 85.9kHz
     ModeLine "1280x960"  148.5   1280 1344 1504 1728  960  961  964 1011 \
       +hsync +vsync

If you didn't find your display's resolution in this list, there are more standard modes listed at:

     http://m.domaindlx.com/LinuxHelp/resources/modelines.htm

Another way to obtain a modeline for your display is to use videogen. If it is not installed on your Mythbuntu system, you can obtain it with:

     sudo apt-get install videogen

To use it, you select the maximum dot or pixel clock frequency from your display's specifications, along with the maximum vertical and horizontal refresh rates. Feed the desired screen resolution plus these values into videogen:

     videogen -m640x480 -mdc=108 -mhf=87 -mvf=72

This will generate a modeline with the highest refresh rate that can be supported by your monitor for the resolution selected. In the above example, we determined that the maximum dot clock was 108 (from perusing all of the resolutions listed for the monitor) and the maximum horizontal frequency was 87 KHz, while the maximum vertical frequency was 72Hz.

This would yield a modeline for a dot clock of 30MHz, a horizontal refresh rate of 36.4 kHz and a vertical refresh rate of 72Hz.

Yet another alternative is to use the modeline calculator at:

     http://xtiming.sourceforge.net/cgi-bin/xtiming.pl

Instead of determining the maximum refresh rate for your display, this will let you put in the refresh rate and calculate the modeline from that. If you are trying to match your display's refresh rate with that of a video broadcast so as not to see jitter from interpolated frames, you might find this method more to your liking.

Now, make a copy of your working xorg.conf file in /etc/X11 and begin hacking the Monitor section. Set the device identification fields to something useful:

     Identifier   "Syntax LT27HV LCD Display"
     VendorName   "Syntax"
     ModelName    "Olevia LT27HV"

Next, you should probably set the minimum and maximum horizontal and vertical sync frequencies from the chart of your display's capabilities:

     HorizSync    56-87
     VertRefresh  24-72

These values are not used to calculate any actual display settings but the values in the modelines are checked against these limits to ensure that you do not exceed your display's capabilities (and possibly destroy it).

Then, add the modelines to this section:

     # 640x480 @ 85Hz (VGA VESA 85) hsync: 43.3kHz
     ModeLine "640x480-85"  36.0  640 696 752 832  480 481 484 509  -hsync -vsync
     # 800x600 @ 85Hz (SVGA VESA 85) hsync: 53.7kHz
     ModeLine "800x600-85"  56.3  800 832 896 1048  600 601 604 631  +hsync +vsync
     # 1024x768 @ 85Hz (XGA VESA 85) hsync: 68.7kHz
     ModeLine "1024x768-85"  94.5  1024 1072 1168 1376  768 769 772 808 \
       +hsync +vsync
     # 1280x720 @ 60Hz (1280x720-60) vsync: 60.39Hz, hsync: 45.72kHz, clk: 74.25
     # This is the only true native mode for the LT27HV display.
     Modeline "1280x720-60" 74.25 1280 1312 1592 1624 720 735 742 757 \
       +hsync +vsync

For the Syntax Olevia models, you may want to add the following, as well:

     # Power saving mode
     Option       "DPMS"
     # We know everything about this display
     Option       "UseEDID" "false"
     # We know what the dot pitch is
     Option       "DPI" "96×96"
     # Make sure the video card always picks the CRT.  Or, if you have the
     # display plugged in on the DVI connection, use "DFP" instead of "CRT-0".
     Option       "UseDisplayDevice" "CRT-0"

Next, hack the Screen section to use the display that you just defined by setting the Display SubSection to point to it:

     # The color depth
     Depth        24
     # All of the supported modes that we defined in modelines.  The first is
     # the default mode chosen at startup.
     Modes        "1280x720-60"  "1024x768-85"  "800x600-85"  "640x480-85"

Now, you can either copy this file over the top of xorg.conf or symlink it:

     sudo rm -f xorg.conf
     sudo ln -s xorg.conf.failsafe xorg.conf

If you have any more questions about the configuration of display devices under Xorg, you can look at the man page:

     man xorg.conf