Имеем: Debian 5.0.1 с ядром 2.6.29-2-amd64 + nVidia GeForce 8800GT с последними драйверами с сайта производителя (180.51) + 22″ ЭЛТ монитор hp p1230, отлично работающий в разрешении 1600*1200@100Hz. Проблема: невозможность выставить в NVIDIA X Server Settings частоту, большую 85Гц.
В положении Auto так же получаем 85Гц.
Лезем во всеми любимый /etc/X11/xorg.conf, в секцию Monitor
Section «Monitor»
Identifier «Monitor0»
VendorName «Unknown»
ModelName «Unknown»
HorizSync 28.0 — 33.0
VertRefresh 43.0 — 72.0
Option «DPMS»
EndSection
Обнаруживаем, что сие абсолютно не соответствует нашему монитору. Гуглим частоты вертикальной и горизонтальной синхронизации под конкретную модель, подставляем их вместо имеющихся, заодно прописываем модель монитора (для удобства и красоты):
Section «Monitor»
Identifier «Monitor0»
VendorName «hp»
ModelName «hp p1230»
HorizSync 30.0 — 140.0
VertRefresh 50.0 — 160.0
Option «DPMS»
EndSection
Перезапускаем Х-сервер (или комп, хе-хе), обнаруживаем желанные 100Гц в настройках:
Применяем — видим, что добились желаемого. Но, увы, при перезапуске иксов или компьютера снова получаем рябь в глазах и 85Гц. Чтобы этого не повторилось, делаем следующее- в консоли набираем:
gtf <x> <y> <@>
где x- разрешение по горизонтали, y- по вертикали и @ — частота в герцах.
Например, для стандартного 19″ 100Гц монитора получим
:~$ gtf 1280 1024 100
# 1280×1024 @ 100.00 Hz (GTF) hsync: 108.50 kHz; pclk: 190.96 MHz
Modeline «1280x1024_100.00» 190.96 1280 1376 1520 1760 1024 1025 1028 1085 -HSync +Vsync
в моем случае:
:~$ gtf 1600 1200 100
# 1600×1200 @ 100.00 Hz (GTF) hsync: 127.10 kHz; pclk: 280.64 MHz
Modeline «1600x1200_100.00» 280.64 1600 1728 1904 2208 1200 1201 1204 1271 -HSync +Vsync
Получившуюся строчку «Modeline» мы и запишем в секцию «Monitor»:
Section «Monitor»
Identifier «Monitor0»
VendorName «hp»
ModelName «hp p1230»
HorizSync 30.0 — 140.0
VertRefresh 50.0 — 160.0
ModeLine «1600x1200_100.00» 280.64 1600 1728 1904 2208 1200 1201 1204 1271 -hsync +vsync
Option «DPMS»
EndSection
Но и это не всё (: Теперь смотрим на секцию «Screen»:
Section «Screen»
Identifier «Screen0»
Device «Device0»
Monitor «Monitor0»
DefaultDepth 24
SubSection «Display»
Depth 24
EndSubSection
EndSection
Если она выглядит именно так, меняем ее на следующее:
Section «Screen»
Identifier «Screen0»
Device «Device0»
Monitor «Monitor0»
DefaultDepth 24
Option «TwinView» «0»
Option «TwinViewXineramaInfoOrder» «CRT-0»
Option «metamodes» «1600x1200_100.00 +0+0; 1600×1200 +0+0»
SubSection «Display»
Depth 24
EndSubSection
EndSection
В «metamodes» вписываем, естественно, свои собственные значения. То есть для 1280*1024@100Гц это будет «1280x1024_100.00 +0+0; 1280×1024 +0+0»
и аналогично для других разрешений и частот. Для наглядности — весь мой xorg.conf целиком.
и это спер
Получилось тоже, хотя и не надеялся.