This page describe a quick way to generate custom video modes for X server.
WARNING: setting unsupported video modes for a certain monitor may damage it.
This is not Debian specific, but it works on Debian
Many monitor (especially CRTs) have capabilities for video modes better tha the standard (VESA) ones. X server can choose automatically only VESA modes, non VESA modes must be inserteb by hand in cofiguration file.
The process of configuration may be divided into four steps:
- find parameters, such as pixel clock, horizontal and vertical frequencies, etc.
- calculate modes, either by hand or using some programs
- Insert in X configuration file the modes you calculated
- fine tuning for best fit of image on monitor
The parameter to find are:
Horizontal and vertical frequencies are the maximum number of pixel or lines that can be drawn on the monitor per second. You may find them in your monitor documentation, or googling around, or using read-edid package.
Once you have installed read-edid package, simply run (as root)
# get-edid | parse-edid
get-edid is a nice tool that reads some information directly from your monitor and print them to console in the format of X configuration file (so you can cut and paste them to get a decent monitor configuration). The lines of interst for now are:
HorizSync 30-70 VertRefresh 48-120
Another interesting information that you can find in read-edid output is something like
Mode "1024x768" # vfreq 84.997Hz, hfreq 68.677kHz DotClock 94.500000 HTimings 1024 1072 1168 1376 VTimings 768 769 772 808 Flags "+HSync" "+VSync" EndMode
that is a video mode that is stored in the monitor, and should be in some way the optimal resolution/frequency for your monitor.
Pixel clock (also called dot clock or bandwidth) is the number of pixel that can be drawn on the monitor per second. The value of interest is the minimum beetween the monitor and the video card pixel clock.
You might find both information on hardware documentation. You can also fetch them around. Monitor pixel clock is printed out by read-edid:
# Max dot clock (video bandwidth) 200 MHz
Video card pixel clock may be found in X server log file (/var/log/X*.log). For example you can find:
(II) NV(0): Clock range: 12.00 to 350.00 MHz
AS far as i know, the format of output depends on the video driver you have. To find the infotmation you want in the huge log file you can start
$ vim /var/log/Xorg.0.log
using the appropriate log file, and then give the commands
:set ignorecase /clock /
repeat the last command untill you find what you want. Other words to try are
Another way to try is:
grep -i "mhz" Xorg.0.log | sed -r "/[0-9]+x[0-9]+/ d"
TODO remove all the line containig something like "mode "320x240"". Please not that if you like to surf the log file you can find all the information we talked about.
Blanking times & Co.
Modify X configuration file