CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
25.04.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Окружение

Автоконфигурация X Window

От редактора: статья написана в 2005 году, но до сих пор сохраняет свою актуальность — с поправкой на то, что XFree86 следует заменить Xorg'ом.

Возможно, не всем известно, что X Window имеет средства автоконфигурирования. Средства эти с каждой версией совершенствуются и, на мой взгляд, в настоящее время уже вполне могли бы конкурировать со специальными программами настройки, такими как xf86config или xf86cfg. Об этих самых средствах и речь.

Все описываемые ниже операции проводятся под root-ом в каталоге, опять же, /root. В консольном режиме, разумеется, поскольку настройка X-сервера сразу в графическом режиме напоминает ремонт автомобиля в движении: возможно, но - зачем? Так же, само собой разумеющимся, я полагаю отсутствие автоматической загрузки графической среды. То есть: загружаемся в консольном режиме, X-Window запускаем командой startx.

Заранее прошу прощения у специалистов за намеренно упрощённое описание вывода на экран: хотелось как можно проще, но достаточно для понимания конфигурационных параметров.

Запуск

Предельно просто:

$ X -configure

Результат: /root/XF86Config.new

Обычно, этот файл имеет размер менее 3-х килобайт: со времён третьей версии X-Window XF86Config заметно "похудел" и вряд ли его анализ окажется затруднительным. К чему и приступим. Секции, не нуждающиеся в редактировании, просто не упоминаются.

Section "Files"

Что касается RgbPath и ModulePath, то их редактировать не придётся, а вот опции FontPath требуют внимания. Если сервер фонтов xfs

не используется (а X-Window так и предполагает), то нужно добавить строки, указывающие путь к фонтам с кириллицей: ну не догадывается конфигуратор о нашей привязанности к этому алфавиту. Если же xfs используется: удаляем все строки с FontPath, и вставляем вместо них только одну:

FontPath "unix/:7100"

Рекомендации по поводу кириллицы в этом случае аналогичны, только модифицировать нужно будет файл конфигурации xfs-сервера (/etc/X11/fs/config).

Section "Module"

Список загружаемых модулей, обеспечивающих различные аспекты работы X Window, можно не трогать: конфигуратор составляет его с учётом особенностей видеокарты и используемого драйвера и, как правило, не ошибается. А вот со списком модулей, обеспечивающих растеризацию шрифтов, можно поспорить: в него включены только type1 и speedo. На мой взгляд, отказываться от фонтов true-type нынче вряд ли стоит. А для этого потребуется включить строки

Load "freetype"
Load "xtt"

Section "InputDevice"

В секции, описывающей мышь, вполне можно согласиться с опцией

Option    "Protocol" "auto"

А, если симлинк /dev/mouse указывает на реально имеющуюся мышь, то и на следующую за ней

Option "Device" "/dev/mouse"

Для 3-х кнопочной мыши не лишним будет добавить

Option "ZAxisMapping" "4 5"

А вот в одноимённой секции для клавиатуры изменений будет побольше: опять придётся отдать должное нашей привязанности к кириллице. Вставляем:

Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru"
Option "XkbVariant" "winkeys"
Option "XkbOptions" "grp:caps_toggle,grp_led:scroll"

Разумеется, количество клавиш на клавиатуре, желание использовать winkeys, CapsLock в качестве переключателя, а scroll - в качестве индикатора - дело вкуса.

Section "Monitor"

Зона "особого внимания". Буквально два слова теории:

  • видимое на экране - кадры, сменяющие друг друга с частотой, скажем, 25..150 Гц;
  • кадры состоят из строк (480 .. 1200 для стандартных нынче разрешений по вертикали), которые, как нетрудно догадаться, могут следовать с частотой 25х480 .. 1200х150, или: 12 .. 180 кГц;
  • строки состоят из точек, количество которых определяется разрешением по горизонтали (для приведённых выше значений разрешения по вертикали это, соответственно: 640 .. 1600). То есть точки будут следовать друг за другом с частотой 12х640 .. 180х1600, или: 7.68 .. 288 МГц;
  • реальная картина несколько сложнее, уже хотя бы потому, что электронному лучу кроме полезного "рисования" приходится совершать ещё и так называемый невидимый "обратный ход", но в первом приближении именно приведённые цифры характеризуют работу монитора и именно они определяют его способность обеспечивать нужное разрешение с желаемой кадровой развёрткой;
  • справедливости ради, нужно заметить, что видеокарта также имеет ограничение по частоте "рисования" точки (так называемая dot-clock) и, по идее, реальным ограничением будет меньшая из двух величин: dot-clock видеокарты или полоса пропускания (bandwidth) монитора. Но, практически, первая всегда превышает вторую, так, что "слабое звено" всё же - монитор.

Секция "Monitor" как раз и содержит информацию о максимально возможных частотах горизонтальной синхронизации (HorizSync) и вертикальной развёртки (VertRefresh). Точнее: должна содержать, поскольку опирается при этом на данные, получаемые от монитора. Так называемый EDID. А EDID этот самый принят в качестве стандарта только в 1996-м, да и сейчас не все мониторы выдают корректные данные о себе. Именно это и "удлиняет несчастьям нашим жизнь", как выразился когда-то Гамлет, принц датский. Не получен EDID - не будет автоконфигурации. Что не мешает, разумеется, поправить дело вручную. Если опции HorizSync и VertRefresh в XF86Config.new отсутствуют, их нужно просто вставить, почерпнув нужные цифры из документации монитора. Если же документации нет, то рекомендации следующие:

HorizSync 28.0 - 96.0
VertRefresh 50.0 - 70.0

Если монитор старенький, то с верхней границей частоты горизонтальной синхронизации мы, возможно, и "погорячились", но страшного в этом нет, пока не задана слишком большая частота развёртки кадровой. Что бы не "погорячиться" и с ней, нужно помнить, что для разных разрешений она различна. Примерно так:

800х600   - 75
1024х768 - 70
1280x1024 - 65
1600x1200 - 60

dot-clock видеокарты Х сервер проверяет сам, bandwidth монитора при отсутствии данных EDID - рассчитывает. Так что больше ничего не требуется.

Section "Device"

В этой секции находятся опции драйвера, предлагаемого Х-сервером для использования с данной видеокартой. Все они "закомментированы" и могут быть востребованы исключительно по инициативе пользователя. Пара примеров:

Option "LcdCenter"
# автоматическое "центрирование" изображения
# для драйвера neomagic
Option "CursorShadow"
# для драйвера nvidia

Section "Screen"

Задаёт используемые видеорежимы. По моему глубокому убеждению, эксперименты с видеорежимами оправданы только при смене видеокарты или монитора. В обычной же жизни, в этой секции кроме опций, идентифицирующих видеосистему, требуется только:

DefaultDepth 24

и всего одна SubSection "Display":

Depth 24          Modes "1024x768"

Разумеется, глубина цветопередачи и разрешение - дело вкуса.

Resume

Очевидно, всё описанное не очень изменило размер XF86Config.new, скорее - наоборот. Осталось переименовать его в XF86Config, перенести, при желании, в /etc/X11 или куда-то ещё (в зависимости от дистрибутива), проверить и обеспечить графический вход в систему, если уж такая привычка имеет место.

Bonus

  • три с лишним десятка драйверов, входящих в версию 4.3 покрывают очень широкий спектр оборудования. Но "нельзя объять необъятное" и не исключено, что как раз нужного-то драйвера и нет. В этом случае рекомендуется пробовать универсальные драйвера: fbdev, vesa и vga, подставляя их в опцию Driver секции Device;
  • если геометрические характеристики изображения неудовлетворительны, используйте xvidtune, входящую в комплект X-Window. С её помощью (предварительно нажав Auto), можно изменить размеры изображения и сместить его в требуемом направлении. Кнопка Show заставит xvidtune выдать в stdout (куда он попадёт конкретно - определяется способом запуска xvidtune и Х-сервера) значения, которые можно подставить в опцию ModeLine. Саму же опцию нужно поместить в секцию Monitor;
  • Х-сервер всегда старается задать максимально возможную для монитора кадровую развёртку. Для того чтобы ограничить это стремление, нужно уменьшить максимальное значение VertRefresh. Чаще, однако, требуется обратное: монитор поддерживает более высокую частоту кадровой, а Х-сервер её не выдаёт. Объяснение просто: Х-сервер "перебирает" только стандартные значения развёртки, "освящённые", так сказать, VESA. Что не мешает нам навязать ему любой видеорежим с помощью всё той же опции ModeLine. Осталось выяснить, где взять желаемые значения для ModeLine. Лучшее из известных мне средство videogen. Сочетание videogen и xvidtune позволяет "выжать" из монитора максимум.




Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
Помощь по работе с linux. Секреты и тонкости.
24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds