Как настроить нормальную частоту и разрешение? Как рассчитать modeline?

Вообще в век ЖК мониторов и ноутбуков проблема с разрешениями и частотой развертки экрана должна уже исчезнуть. Но на всякий случай на ней следует остановиться поподробнее. Для начала можно попробовать добавить в /etc/X11/xorg.conf нечто такое:

Section "Monitor"
Identifier  "Monitor0"
HorizSync   31.5 - 79.0
VertRefresh 50-90
EndSection

Значения ?HorizSync и ?VertRefresh нужно взять из книжки к монитору. Если это способ по каким-либо причинам не устраивает, можно вычислить нужную modeline и прописать ее. Узнать нужную modeline можно с помощью стандартной утилиты gtf или онлайн калькулятора. В любом случае результат должен быть таким:

$ gtf 1024 768 100
Modeline "1024x768_100.00"  113.31  1024 1096 1208 1392  768 769 772 814  -HSync +Vsync

Его и вписываем в в xorg.conf в раздел Monitor, чтобы получилось примерно так:

Section "Monitor"
Identifier   "Monitor0"
HorizSync    31.5 - 79.0
VertRefresh  50-90
Modeline     "1024x768"  113.31  1024 1096 1208 1392  768 769 772 814  -HSync +Vsync
Option       "dpms"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
     Viewport 0 0
     Depth 32
     Modes "1024x768" "800x600"
EndSubSection
EndSection

После перезапуска X-сервера можно провести тонкую настройку (чтобы края не вылезали и т.п.) программой xvidtune - открываем терминал, запускаем в нем xvidtune, когда нам все понравится, жмем apply и получаем в консоли исправленную строчку для modeline. Ее записываем вместо первоначальной.

Что делать, если частоты прописал, а частота обновления экрана по прежнему 60 герц?

Х-сервер перезапустили? Если да, читаем дальше. Есть очень простой, хотя и неочевидный метод, который поможет нам решить данную проблему. Нужно прописать modline под каждое разрешение. Как рассчитывать modeline - смотрите соответствующий вопрос. Метод поможет, например, любителям HoMM-III. Разделы, ответственные за развертку, выглядят так:

Section "Monitor" 
        Identifier   "Monitor0" 
        VendorName   "Monitor Vendor" 
        ModelName    "CTX5378" 
        DisplaySize  330        250 
        HorizSync    30.0 - 72.0 
        VertRefresh  50.0 - 130.0 
        ModeLine     "1152x864" 108.0 1152 1200 1328 1528 864 865 868 904 +hsync +vsync 
        ModeLine     "1024x768" 94.5 1024 1076 1172 1372 768 769 772 812 +hsync +vsync 
        ModeLine     "800x600" 56.3 800 832 896 1032 600 601 604 619 +hsync +vsync 
        ModeLine     "640x480" 36.0 640 712 768 808 480 485 488 525 -hsync -vsync 
        ModeLine     "400x300" 28.1 400 412 444 508 300 304 306 327 +hsync +vsync doublescan 
        ModeLine     "320x200" 15.8 320 360 392 396 200 204 206 222 -hsync +vsync doublescan 
        Option      "dpms" 
EndSection 

Section "Screen" 
        Identifier "Screen0" 
        Device     "Videocard0" 
        Monitor    "Monitor0" 
        DefaultDepth     24 

        SubSection "Display" 
                Depth   8 
                Modes   "1152x864" "1024x768" "800x600" "640x480" "400x300" "320x200" 
        EndSubSection 

        SubSection "Display" 
                Depth   16 
                Modes   "1152x864" "1024x768" "800x600" "640x480" "400x300" "360x200" 
        EndSubSection 

        SubSection "Display" 
                Depth   24 
                Modes   "1152x864" "1024x768" "800x600" "640x480" "400x300" "360x200" 
        EndSubSection 
EndSection 

Частота вне диапазона

Это значит, что Xorg некорректно определяет рабочие частоты монитора. Можно воспользоваться modelline, прощитав и прописав его для всех нужных частот. А можно указать (что значительно проще) в /etc/X11/xorg.conf нужные частоты (или же максимальную) для всех рабочих разрешений. Пример:

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "LG"
    ModelName      "LG L1719S"
    HorizSync       30.0 - 83.0
    VertRefresh     56.0 - 75.0
    Option         "DPMS"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "1280x1024_75 +0+0; 1152x864_75 +0+0; 1024x768_75 +0+0; 832x624_75 +0+0; 800x600_75 +0+0; 640x480_75 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Почему не выставляется 32-битная палитра?

Зато есть 24-битная, по восемь бит на каждый канал из RGB, а больше всё равно ваш монитор не умеет. И четвёртый канал для значения прозрачности не поможет вашему дисплею отобразить кусок стенки за ним. 32-битная адресация включается на уровне драйверов автоматически.

Где взять драйвер для монитора?

Нигде. Если вы не в курсе, в "драйверах для монитора" для Windows обычно пишутся его рабочие частоты (которые современные мониторы и так отдают операционной системе с помощью EDID) иногда рабочую температуру цвета, цветовые профили. Кстати, если вы думаете, что у вас нельзя поставить 100Гц вместо 85Гц из-за того, что у вас отсутствуют данные драйверы, то вы ошибаетесь. Виноват драйвер видеокарты (например, такое наблюдается на картах S3).