Немного о настройке X'ов. В секции Monitor каждый может заметить загадочные строки ModeLine, но не каждый может ответить на вопрос откуда берутся эти параметры.
Приоткроем завесу над этой тайной. Вот два метода позволяющий получить значения ModeLine.
videogen - это программа генерации Modelines для XFree86 сервера.
Теперь как пользоваться первой и второй из них.
Для начала рассмотрим пакет read-edid.
Перейдём ко второму методу, пакету videogen.
Тут всё значительно проще. Просто вызываем videogen с параметрами режима, максимального значения dot clock rate, максимальной частотой горизонтальной развёртки и максимальной частотой вертикальной развёртки:
Следует обратить внимание, что полученные двумя различными способами строки ModeLine слегка отличаются. Собственно это и не удивительно, если первый вариант считывает необходимые параметры с самого монитора то второй является простым калькулятором для ModeLine.
Собственно на этом всё ;)
Приоткроем завесу над этой тайной. Вот два метода позволяющий получить значения ModeLine.
$ aptitude install read-edid $ aptitude install videogenВ первом пакете нас интересуют утилиты get-edid и parse-edid - первая из них получает, а вторая интерпретирует значение спецификации монитора используя VESA VBE DDC протокол.
videogen - это программа генерации Modelines для XFree86 сервера.
Теперь как пользоваться первой и второй из них.
Для начала рассмотрим пакет read-edid.
$ sudo get-edid | parse-edid parse-edid: parse-edid version 2.0.0 get-edid: get-edid version 2.0.0 Performing real mode VBE call Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0 Function supported Call successful VBE version 200 VBE string at 0x2110 "ATI RV370" VBE/DDC service about to be called Report DDC capabilities Performing real mode VBE call Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0 Function supported Call successful Monitor and video card combination does not support DDC1 transfers Monitor and video card combination supports DDC2 transfers 0 seconds per 128 byte EDID block transfer Screen is not blanked during DDC transfer Reading next EDID block VBE/DDC service about to be called Read EDID Performing real mode VBE call Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0 Function supported Call successful parse-edid: EDID checksum passed. # EDID version 1 revision 3 Section "Monitor" # Block type: 2:0 3:fd # Block type: 2:0 3:fc Identifier "SyncMaster" VendorName "SAM" ModelName "SyncMaster" # Block type: 2:0 3:fd HorizSync 30-81 VertRefresh 56-75 # Max dot clock (video bandwidth) 140 MHz # Block type: 2:0 3:fc # Block type: 2:0 3:ff # DPMS capabilities: Active off:yes Suspend:no Standby:no Mode "1280x1024" # vfreq 60.020Hz, hfreq 63.981kHz DotClock 108.000000 HTimings 1280 1328 1440 1688 VTimings 1024 1025 1028 1066 Flags "+HSync" "+VSync" EndMode # Block type: 2:0 3:fd # Block type: 2:0 3:fc # Block type: 2:0 3:ff EndSectionТут наиболее интересная для решения поставленной нами задачи информация содержится практически в самом конце. Для составления ModeLine нас интересуют строки начинающиеся с Mode, DotClock, HTimings, VTimings и Flags:
Mode "1280x1024" # vfreq 60.020Hz, hfreq 63.981kHz DotClock 108.000000 HTimings 1280 1328 1440 1688 VTimings 1024 1025 1028 1066 Flags "+HSync" "+VSync"Итоговая ModeLine:
ModeLine "1280x1024" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +HSync +VSync
Перейдём ко второму методу, пакету videogen.
Тут всё значительно проще. Просто вызываем videogen с параметрами режима, максимального значения dot clock rate, максимальной частотой горизонтальной развёртки и максимальной частотой вертикальной развёртки:
$ videogen -m=1280x1024 -mdc=108 -mhf=81 -mvf=75и получаем результирующую строку ModeLine:
Modeline "1280x1024" 108.00 1280 1320 1368 1640 1024 1026 1030 1078 # 108 MHz, 65.9 kHz, 61.1 Hz
Следует обратить внимание, что полученные двумя различными способами строки ModeLine слегка отличаются. Собственно это и не удивительно, если первый вариант считывает необходимые параметры с самого монитора то второй является простым калькулятором для ModeLine.
Собственно на этом всё ;)
Немає коментарів:
Дописати коментар