| Наcтройка широкоформатного монитора |
(Перепечатано из журнала "Хакер")В один прекрасный день я решил, что широкоформатный монитор будет намного удобнее обычного. И не потому, что ботов в CS удобнее отстреливать или фильмы смотреть, - для работы лучше. На широком экране можно без проблем разместить два открытых окна терминала, в одном набирать команду, а во втором отслеживать, что там пишут в логах. А если ко всему этому делу еще один монитор прикрутить… Но об этом ниже. Также сегодня продается много лэптопов с широким дисплеем, их пользователям будет полезно узнать, как его настроить. Почему-то все дистры, которые мне попадались, сразу же норовили установить одно и то же разрешение - 1440x900, плюс в конфиге обнаруживался список из восьми других вариантов, но ни один из предложенных мне не показался удобным. Убивало также, что при загрузке на мониторе постоянно высвечивалось предупреждение о неоптимальности режима, который установил Х. В меню графических средств настройки в Центре KDE System Setting нужного разрешения тоже не было (дистрибутив KUbuntu), да и как могло оно там оказаться, если у девелоперов руки растут не откуда положено. Лечится это все очень просто. Открываем /etc/X11/xorg.conf (не забывая сохранить оригинал - он еще может понадобиться) и пишем: $ sudo mcedit /etc/X11/xorg.conf Section "Screen" Identifier "Default Screen" … Defaultdepth 24 SubSection "Display" Modes "1360x1024" "1024x768" EndSubSection EndSection Я оставил себе всего два разрешения, которые и использую. Остальные убрал, чтобы X-сервер меньше думал. Параметр Defaultdepth привел, чтобы показать, как устранить еще одну ошибку. Не знаю почему, но глубина цвета у меня по умолчанию была установлена в 16. Заглянув в лог /var/log/Xorg.0.log, я увидел сообщение, что видеокарта не поддерживает 16-битный цвет с рекомендацией использовать 24-битный (что и было выставлено автоматически): (EE) fglrx(0): The RADEON V7000 chipset does not support depth 16. Using depth 24 instead (**) fglrx(0): Depth 24, (--) framebuffer bpp 32 После корректировки Defaultdepth все пришло в норму, сервер перестал нервничать: (**) fglrx(0): Depth 24, (--) framebuffer bpp 32 (II) fglrx(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps) Но вернемся к широкому экрану. В большинстве случаев корректировки параметров Modes должно хватить, но бывает, что в Windows все работает как следует, а в Linux необходимое разрешение устанавливаться никак не хочет. Это означает, что автоматически сгенерированный режим работы ModeLine не подходит. В таком случае нужные цифры придется вписывать самому. Узнать используемые по умолчанию можно, заглянув в логи: (II) fglrx(0): Supported Future Video Modes: (II) fglrx(0): #0: hsize: 1440 vsize 900 refresh: 60 vid: 149 (II) fglrx(0): #1: hsize: 1440 vsize 900 refresh: 75 vid: 3989 (II) fglrx(0): #2: hsize: 1280 vsize 1024 refresh: 60 vid: 32897 (II) fglrx(0): #3: hsize: 1280 vsize 960 refresh: 60 vid: 16513 (II) fglrx(0): #4: hsize: 1152 vsize 864 refresh: 75 vid: 20337 (II) fglrx(0): Supported additional Video Mode: (II) fglrx(0): clock: 106.5 MHz Image Size: 410 x 257 mm (II) fglrx(0): h_active: 1440 h_sync: 1520 h_sync_end 1672 h_blank_end 1904 h_border: 0 (II) fglrx(0): v_active: 900 v_sync: 903 v_sync_end 909 v_blanking: 934 v_border: 0 (II) fglrx(0): Ranges: V min: 56 V max: 75 Hz, H min: 30 H max: 81 kHz, PixClock max 140 MHz То есть секция Monitor со строкой ModeLine, установленная по умолчанию, выглядит так: $ sudo mcedit /etc/X11/xorg.conf Section "Monitor" Identifier "SyncMaster" Option "DPMS" # "режим" clock h_active h_sync h_sync_end h_blank_end v_active v_sync v_sync_end v_blanking ModeLine "1440x900" 106.5 1440 1520 1672 1904 900 903 909 934 EndSection Чтобы вручную не играться параметрами, можно использовать графические утилиты xvidtune и read-edid, а также онлайн-калькуляторы ModeLine, например xtiming.sourceforge.net/cgi-bin/xtiming.pl. Подробности о ModeLine смотри в XFree86-Video-Timings-HOWTO (www.opennet.ru/docs/HOWTO-RU/XFree86-Video-Timings-HOWTO.html). Есть еще одна полезная утилита, входящая в состав X, – xrandr (в KDE есть аналог krandr), которая позволяет на лету изменять разрешение и частоту развертки без перезапуска X-сервера. Доступные режимы в виде пар «частота/разрешение» можно получить, введя: $ xrandr –q Индекс в первом столбце подойдет в качестве параметра вместо разрешения. В некоторых случаях драйвер не хочет устанавливать нужное разрешение: $ xrandr -s 1360x1024 Size 1360x1024 not found in available modes Тогда можно просто отключить тестирование доступных режимов, указав в секции Device: Option "ModeValidation" "NoMaxPClkCheck" Некоторые мониторы имеют еще одну полезную функцию - поворот вокруг оси. Работать с текстом при вертикальном положении экрана очень удобно. В Linux такая возможность тоже поддерживается. Реализовать ее можно двумя способами: автоматически и вручную. В первом случае добавляем в секцию Device параметр: Option "RandRRotation" "on" Или Option "Rotate" "CCW" # возможно значение "CW" Для поворота в ручном режиме используем тот же xrandr с параметром '–o' (--orientation) и указанием направления (normal, inverted, left, right, 0, 1, 2, 3): $ xrandr -o left |
Наcтройка широкоформатного монитора