Tips & tricks 100Hz и nVidia в Linux

Заставляем старый, но хороший ЭЛТ монитор показывать нам картинку сто раз в секунду (:
Описан случай для Debian и nVidia, но работает независимо от этого везде, где есть Xorg.
Имеем: Debian 5.0.1 с ядром 2.6.29-2-amd64 + nVidia GeForce 8800GT с последними драйверами с сайта производителя + 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

# 1280x1024 @ 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

# 1600x1200 @ 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; 1600x1200 +0+0"
SubSection "Display"
Depth       24
EndSubSection
EndSection

В «metamodes» вписываем, естественно, свои собственные значения. То есть для 1280*1024@100Гц это будет «1280x1024_100.00 +0+0; 1280x1024 +0+0»
и аналогично для других разрешений и частот. Для наглядности — весь мой xorg.conf целиком.
  • 0
  • 29 января 2010, 00:54
  • Recluse

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.