Linux Slackware Энциклопедия от А до Я
Сайт посвящен свободно распространяемому ПО и Linux Slackware в частности.
Разделы:
Раздел/Тема
Главная -> Настройка -> Настройка графической подсистемы Xorg. Часть I.

Введение

Сейчас уже мало кто представляет себе Linux без X-window. Даже админы сейчас используют их для мониторинга, хотя по-прежнему все сервера ставятся без них. На домашней же машине без них никак - хочется и в инете нормально полазить и в игры поиграть и ... много что еще. Уже давно описание настройки Иксов есть на русском, существуют и форумы и сайты. Все привыкли к XFree86 и его конфигурационному файлу /etc/X11/XF86Config, но новые релизы дистрибутивов почему-то идут с новомодным Xorg. Оказывается проект XFree86 сменил лицензию, и теперь мы не сможем просто так его использовать. Выходом оказался проект Xorg, практически не отличающимся от XFree86. Среди спонсоров проекта есть HP, Sun, IBM, так что будущее покажет, а пока будем пользоваться тем, что есть.

С инсталяцией все просто, думаю сами разберетесь. Перейдем сразу к настройке. По-умолчанию в каталоге /etc/X11 лежат 3 файла

-rw-r--r-- 1 root root 15869 2004-05-30 04:27 xorg.conf
-rw-r--r-- 1 root root 17111 2004-05-30 04:27 xorg.conf-fbdev
-rw-r--r-- 1 root root 15869 2004-05-30 04:27 xorg.conf-vesa
По размеру видно, что 1й и 3й - одно и тоже, т.е. резервная копия уже есть. Файл xorg.conf и есть наш подопечный, он хорошо прокоментирован в традициях XF86Config и на взгляд ничем от него не отличается. Наверняка с дефолтовыми настройками вы сможите загрузиться. Попробовать можно командой
$ Xorg
Завершение сессии (аварийное) по Alt+Ctrl+Breakspase как и раньше. Переключение консоль-иксы по Alt+F7, обратно по Ctrl+Alt+FX.

Методы автоматической настройки

Есть способ автоматической настройки. Для этого выполним:

# Xorg -configure
Не обращаем внимания на сообщения. Результатом выполнения команды будет новый файл /root/xorg.conf.new. Посмотреть полный вывод того, что делал Xorg можно в стандартном логе
# more /var/log/Xorg.0.log
Там же увидим список всех обнаруженных в системе драйверов видео и результаты попыток их применения. Проверять настройки будем командой:
# Xorg -config /root/xorg.conf.new
Если все ОК, то вы увидите вот такой фон и перекрестие мышки.
xorg.conf.new.jpg
Это чистые Иксы. Поверх них запускают различные менеджеры окон. Сейчас их превеликое множество. Самыми популярными и продвинутыми являются KDE и Gnome, но вместе с тем они одни из самых медленных. Сейчас я использую XFCE4, побыстрее будет BlackBox, но настраивать его довольно долго.

Теперь, если все нормально можно заглянуть внутрь /root/xorg.conf.new (откроется в новом окне)
Здесь мы видим практически "голый" файл, изюминкой которого является наличие всех опций выбранного драйвера видеокарты. Остальные параметры просто удручают - ни видеорежимов, ни клавиатурных опций, ни полного списка шрифтов - сплошной минимализм. Кому этого достаточно, могут запустить xorgsetup, ответить на пару вопросов в удобном меню и сразу прописать файл на законное место в /etc/X11/xorg.conf.

Если у вас уже есть мало-мальски настроенный Xorg, да и даже если нет, советую тестировать новые настройки в домашней директории root. Таким образом, вы не испортите старые настройки и в любой момент сможите нормально загрузиться под обычным пользователем. Если в домашней директории лежит файл ~/xorg.conf, то Xorg будет использовать его, а не /etc/X11/xorg.conf. Обычному пользователю можно просто скопировать существующий /etc/X11/xorg.conf в домашнюю директорию, что избавляет его от необходимости регистрироваться root-ом для внесения поправок. Думаю я вас убедил, поэтому ниже буду ориентироваться на это.

Для облегчения настройки в 10 релизе Slackware, ознаменованном переходом на Xorg, появилась утилита xorgcfg. Несмотря на то, что запускается в консоли под root, она имеет графический интерфейс. Если мышка не определилась, передвижение курсора осуществляется кнопками цифровой клавиатуры (NumPad). Меня порадовало наличие такой утилиты, однако повозиться с ней пришлось немало. Она позволяет сделать то, что другими средствами сделать невозможно.

Запускаем # xorgcfg. Если ваша видеокарта вообще на что-то способна, то видим что-то похожее на это:

xorg-xorgcfg-1.jpg

Используется стандартный менеджер окон TWM, который не блещет функциональностью и удобствами. Часто размер окошка не умещает всей информации, тогда можно немного растянуть его взявшись за верхний правый угол. Если в каком-то выпадающем списке крайние символы уходят за границы окна, просто подведите мышку к этой границе и меню подвинется.

На основной панели слева вверху помимо основных настроек Configure Layout можно выбрать более детальные Configure Screen (зачем нужен этот пункт я так и не понял - можно просто смотреть на изображение монитора, ничего поменять мне не удалось), Configure Modeline (тонкая настройка видеорежимов как в былые времена, но вот заставить эту штуку работать тоже не удалось), Configure AccessX (здесь можно тонко настроить мышь и клавиатуру). Мне кажется, что реально использовать лучше только первый и последний пункт из списка. Здесь я опишу только первый, т.к. тонкая настройка клавиатуры и мышки - это дело сугубо индивидуальное.
Имеется режим эксперта, при котором доступно дерево параметров с ручным редактированием. Epert Mode лучше использовать для доводки, или вообще вместо него вручную подправить конфигурационный файл.

Configure Layout.
При наведении мышкой на изображение устройства выскакивает стикер с кратким описанием текущей конфигурации. Последовательно пробежимся по устройствам и настроим их.

Mouse. Кликаем по иконке и выбираем Configure mouse(s). Чтобы увидеть все доступные параметры растягиваем окно. Думаю что здесь проблем не будет - выбирайте свой тип и жмите OK.

Keyboard. Повторяем операции с предыдущей иконкой - Configure keyboard(s).
Xkb rusel стоит правильно - xorg (xfree86 лишь симлинк на xorg, а sun и sgi врядли у кого-то есть).
Keyboard model выбираем какую-нибудь из стандартных Generic (для большинства это Generic 105-key).
Keyboard layout не трогаем, пусть U.S. English.
Xkb variant тоже не всем нужен.
А вот с Xkb options мы поиграем. Это как раз то, чего нет в других конфигураторах. Советую переместить окно максимально вправо. Теперь в выпадающем списке Выбираем сначала
Group Shift/Lock behavior (переключение в альтернативную группу). В нем видим список различных комбинаций с приписками:

switched group while pressed - удержанием клавиши;
changles group - нажатием клавиши(комбинации клавиш);
together changles group - одновременным нажатием обеих клавиш.
Идея понятна? Вариантов много, так что выбираем понравившийся.
Third level choosers (переключение в альтернативную третью группу). Это для полиглотов, кому нужен третий язык ввода.
Control key position. Определяет чем нужно заменить используемую для переключения раскладок клавишу (группу клавиш). Я ничего не стал менять, т.к. и без этого CapsLock заменяется на Shift+CapsLock.
Use keyboard LED to show alternative group. Показывает включенную альтернативную группу светодиодом на клавиатуре. Очень удобен Scroll_Lock LED.
CapsLock key behavior,
Alt/Win key behavior. Различные режимы использования клавиш CapsLock/Alt/Win. Кому интересно - предлагаю самим разобраться. По мне, так это лишне.
На этом с клавиатурой закончили. Жмем ОК и переходим к выбору видеокарты.

Video. Нажав на изображение платы, выбираем Configure video card(s).
Это один из больных разделов. Симптомы: медленная работа графической подсистемы, зависоны, черные экраны, отсутствие маштабирования при просмотре фильмов, проблемы в играх... Диагноз: чужие, "очень" стандартные драйвера или просто стандартные драйвера. Лечение:

  1. Бежим в ближайшую "аптеку" за "лекарствами"
  2. Хотя, если "лекарство" широко известно, чтобы не рисковать и получить заведомо точно самое свежее "лекарство", лучше съездить на "завод-изготовитель".
  3. Читаем "инструкцию по применению", при необходимости обращаемся в ближайшие "реабилитационные центры".
  4. Строго следуя инструкции, устанавливаем драйвера.
  5. Опять же из инструкции узнаем точное название "лекарства", например, "sis" и выбираем из списка Driver:

config-videocards.gif

Если вы испытываете некоторые проблемы с вышеуказанными пунктами, есть возможность попробовать поискать по названию карты используя поле Card model filter. Более подробное описание этой секции будет описано позже.

Monitor. Аналогично жмем на изображение дисплея, выбираем Configure monitor(s).
В последнее время все дистрибутивы Linux стали более дружелюбны в этой части. Несколько лет назад именно здесь большинство начинающих пингвиноводов ломали последние копья. Сейчас всем дают подсказку в виде максимального разрешения и частоты горизонтальной развертки - все как в прайсах при покупке монитора. Поэтому, ориентируясь по технической документации на монитор или на худой конец по товарному чеку/прайсам, из списка выбираем строчку, соответствующую максимальному разрешению вашего монитора и максимальной частоте горизонтальной развертки при этом разрешении. При этом увидите пределы изменения горизонтальной развертки (кГц) в строчке
Horizontal sync. Настоятельно рекомендую сравнить верхний предел с технической документацией. В принципе, во всех современных мониторах есть защита от запредельных частот, но возможны случаи, когда в одном модельном ряде используют одну электронику, но разные кинескопы, и есть опасность, что соответствующая блокировка не перестроена. Работать он может и будет, но вот сколько? Это конечно все страшилки, случаев, чтоб кто-то спалил свой монитор таким образом мне не известны, но я вас предупредил.

config-monitor.gif
Vervical sync. Тут все попроще. Ориентируемся на максимальную частоту, которую "держит" ваш монитор. Именно эту цифру показывают в прайсах. Из четырех интервалов выбираем тот, в который входит максимум возможности вашего экземпляра.

Вот и все, теперь жмем Quit и сохраняем наш xorg.conf в одну из папок:

 /usr/X11R6/lib/X11/xorg.conf
 /etc/X11/xorg.conf
 /root/xorg.conf

Мне больше нравится последний вариант, т.к. собираюсь с ним еще поработать.

Радует тот факт, что разработчики пытаются сделать настройку более простой, но пока это еще сыровато, поэтому предпочитаю пользоваться текстовым режимом этой утилиты:

# xorgcfg -textmode

На этом исчерпываются приемлимые автоматические и полуавтоматические методы настройки Xorg. Следующие части будут описавать более тонкую настройку путем прямого редактирования xorg.conf.

Методы настройки параметров монитора

Исторически для настройки связки видеокарта-монитор применяют программы: xdpyinfo, xvinfo, xvidtune, gtf. Все, кроме gtf запускаются только под Иксами.

xdpyinfo. Эта программа дает общую информацию об оконной системе. Версию, релиз Х, загруженные модули и расширения, разрешение экрана, глубину цвета, количество и параметры "экранов" клиент-сервера, а также еще кое-какую информацию. Вот лог (откроется в новом окне) вывода на моей машине.

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

xvidtune. Будет очень полезна владельцам мониторов с электронно-лучевой трубкой. При запуске программа выдает предупреждение, что ее использование может повредить оборудование (обожаю такие программы :). Кстати запускать лучше из xterm, т.к. программа выдает настройки в консоль, откуда их потом удобно скопировать. На скриншоте вы видите ее окно. К сожалению для вас и моей радости - мой ноутбук естественно с ЖК-матрицей и параметры, которые вы видите не показательны.

xvidtune.gif
С ее помощью можно "двигать" изображение по вертикали и горизонтали. Смотрите, не переусердствуйте! Лучше после каждого шага нажимать Test или кликнуть Auto, тогда при каждом изменении любого параметра - настройки автоматически будут проверяться. Нажимая на разные кнопочки вверху можно выставить такие параметры, которые устроили бы всех - и вас и оборудование. Мощь этой на вид невзрачной программы даже не снилась Windows. С ее помощью можно разогнать даже монитор, например, поставить не 100, а 105-110 Гц, но учтите - это опасно (хотя если в паспорте монитора написано, что максимум 111 Hz - то почему бы не использовать такую возможность)! Итак, вволю наигравшись, выбрав тот самый режим, нажимаем Show и видим, что программа вывела в консоль строчку, наподобие этой:
"1024x768" 65.15 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
Кнопки Next и Perv - переход между режимами экрана (обычно просто разные разрешения). Последовательно настроив все режимы, не забывая в каждом нажимать Show, выходим из программы. Теперь можно спокойно заменить этими строчками старые Modeline в файле xorg.conf. Для примера это может выглядеть так:
Section "Monitor"
Identifier  "My Monitor"
HorizSync   31.5 - 50.0
VertRefresh 40-90
Modeline "1024x768" 65.15 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
Modeline "800x600" 49.52 800 816 896 1056 600 601 604 625 +hsync +vsync
Modeline "640x480" 36.06 640 696 752 836 480 481 484 509 -hsync -vsync
EndSection

gtf. Это тоже очень интересная утилита. Подойдет тем, кто побаивается использовать xvidtune, у кого с ней ничего не вышло или просто если нужно знать в каком направлении плыть дальше. gtf в качестве параметров требует указать разрешение и частоту кадровой развертки, после чего строит Modeline для этих значений. Подобная функция встроена в сам Xorg для автоопределения параметров монитора. Вот как пользоваться gtf:

[01:09][gena@u158:~]$gtf

usage: gtf x y refresh [-v|--verbose] [-f|--fbmode] [-x|--xorgmode]

            x : the desired horizontal resolution (required)
            y : the desired vertical resolution (required)
      refresh : the desired refresh rate (required)
 -v|--verbose : enable verbose printouts (traces each step of the computation)
  -f|--fbmode : output an fbset(8)-style mode description
 -x|--xorgmode : output an Xorg-style mode description (this is the default
                if no mode description is requested)

[01:09][gena@u158:~]$gtf 1024 768 85

  # 1024x768 @ 85.00 Hz (GTF) hsync: 68.60 kHz; pclk: 94.39 MHz
  Modeline "1024x768_85.00"  94.39  1024 1088 1200 1376  768 769 772 807 -HSync +Vsync

[01:09][gena@u158:~]$
Обратите внимание, что название видеорежима в строке Modes секции "Screen" должно совпадать с Modeline "1024x768_85.00" секции "Monitor". Эта программка особенно полезна, когда Иксы еще вообще не запускаются, т.к. работает в чистой консоли.

Различные программы, используемые для настройки

xlsatoms. Выдаст на консоль все переменные X-сервера, используемые в данный момент шрифты и параметры оформления. Вывод большой - лога нет.

xlsfonts. Выдает список всех шрифтов в системе. Можно посмотреть их параметры, если запустить программу с ключами. Но будьте готовы, что вывод окажется очень большим, а если еще и ключики использовать, то она и думать будет довольно долго.

xlsclients. Просто показывает все клиентские программы Иксов (xterm, xmms, gimp...). Лог.

xprop. Выдаст информацию о конкретном окне, которое выбирается мышкой сразу после запуска программы. Информация больше отладочного характера (позиция окна, размеры, кодировка, название окна и т.п.) и будет полезна разве что программистам, т.к. показывает имена используемых переменных Х-сервера. Лог.

xwininfo. Программа наподобие предыдущей, но более приятная для глаза - просто сводная информация. Лог.

xev. Предназначена в основном для тестирования клавиатуры, мышки и др. устройств ввода-вывода. Представляет собой маленькое белое окошко с черным квадратом внутри. При перемещении мышки, нажатий клавиш мышки и клавиатуры выводит опознавательные коды. Полезна при программировании, а обычному пользователю-администратору пригодится для настройки мультимедиа-клавиш.

Gena 05.12.2004