CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Настройка X-Window

Сергей А. ЯРЕМЧУК grinder@ua.fm

Окончание, начало см. в МК № 26 (249).

В принципе, манипуляций, описанных в первой части статьи, достаточно, чтобы установить новую версию XFree86. Установка вручную заключается в распаковке архивов при помощи extract, создании символических ссылок на новые файлы, обновлении базы данных библиотек при помощи ldconfig и запуске mkfontdir в каталогах со шрифтами, чтобы обновить файл с их описанием. Т.е. если X-Window до этого не был установлен, переходим в каталог с установочными файлами и вводим (при частом использовании проще записать это в один файл и запускать оттуда):

Ручная установка поверх уже существующей версии хорошо описана в руководстве и в основном состоит из тех же команд, но как мне кажется, половину шагов при этом можно смело пропустить — в большинстве современных дистрибутивов они лишние. Если кому интересно почитайте руководство, которое можно найти на сайте.

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

Теперь самое время попробовать запустить команду startx, авось что-нибудь да получится. На что система выдает довольно устрашающее сообщение вроде Fatal server error: no screens found. Все! Капец! Караул! Сношу пингвина и перехожу обратно в Windows. Примерно таков ход мыслей юзера. А между прочим, все дальнейшие действия сводятся к устранению проблем, о которых говорит сама XFree86 в случае своего неудачного запуска, для чего требуется лишь немного внимательности при анализе возможных причин. Опыт понадобится лишь для того, чтобы сделать систему более удобной (например, русифицированная раскладка клавиатуры), все остальное интеллектуальная XFree86 четвертой версии вполне успешно установит автоматически. Давайте по порядку. Если посмотреть чуть выше пресловутого страшного сообщения, то под версией XFree86, системы и рекомендацией менять ХFree86 хотя бы раз в 6—12 месяцев мы обнаружим такие вот полезные строчки:

А вот что означают эти ребусы:

(--) — соответствующее значение получено путем тестирования оборудования;

(**) — данные установки взяты из конфигурационного файла;

(==) — используются установки по умолчанию;

(++) — параметр взят из командной строки запуска сервера (у него тоже, оказывается, это есть!!!);

(!!) и (II) — уведомление и информационное сообщение;

(WW) — за этим знаком следует предупреждение;

(EE) — сообщение об ошибке; вот что нас больше всего интересует — именно эти сообщения мы и постараемся убрать;

(??) — непонятное серверу (и мне тем более) событие.

Супер! Дополнительно сообщается, что система ведет лог-файл Х-сервера /var/log/XFree86.0.log, т.е. имеем собственный путеводитель по XFree86 со всеми подсказками, а не будем рыскать в потемках. Никаких тебе «Приложение выполнило недопустимую операцию, и дальше разбирайтесь как хотите». Дополнительно можно воспользоваться командой # X -probeonly > probe.log 2>&1; правда, в таком файле информации меньше, но зато ничего отвлекающего. Что просматривать в поисках ошибок — дело вкуса. Далее в последующих строках с (EE) система как бы между прочим сообщает, что не может найти своего конфигурационного файла. Вот как. Про главный файлик-то позабыли! Чтобы не умничать попусту, просто скажу, что это /etc/X11/XF86Config-4 (для четвертой версии; впрочем, XFree86 совсем не против, чтобы он лежал в /usr/X11R6/lib/X11/ и даже в $HOME/ — по крайней мере /root/XF86Config работает точно, что позволяет настроить его действительно индивидуально для каждого пользователя), а также /etc/X11/XF86Config для все еще популярной у владельцев старых машин версии 3.3.6, каковым четвертая версия преспокойно обходится, если нет предыдущего файла — лишь бы формат подходил. Если у вас уже имеется установленный Linux, то можно попробовать взять его оттуда; необязательно, что все так сразу и заработает, но шанс есть (варианты разберем чуть ниже).

Самому же создать данный файл можно несколькими способами — при помощи программ xf86config, xf86cfg и конфигурационного режима запуска самого Х-сервера. Какой вариант сработает в конкретном случае, трудно сказать, а посему рассмотрим их все. Начнем, как водится, с первого. Для этого достаем документацию на видеооборудование (монитор, видеокарта), вводим команду xf86config и начинаем правдиво, ничего не скрывая, отвечать на поставленные вопросы, в качестве ответа выбирая подходящий номер, соответствующий конкретно установленному оборудованию. Там, где предлагается ввести какое-либо значение самостоятельно, в большинстве случаев достаточно оставить подсовываемое по умолчанию. Например, в качестве номера протокола для мыши, подключенной к последовательному порту, в большинстве случаев срабатывают значения 1 или 2, реже приходится выбирать 5; для мыши, подключенной к PS/2-разъему, ответ один —4 (к ноутбукам это тоже относится). Далее программа спрашивает, к какому устройству подключена мышь, и записывает ответ в /dev/mouse. В большинстве своем это срабатывает, но можно получить и вот такой вот ответ при попытке запуска Х-Window:

В этом случае следует проверить наличие файла /dev/mouse — это символическая ссылка на действительный файл устройства, к которому подключена мышь. Для последовательной мыши —/dev/ttuS0 (FreeBSD —/dev/cuaa0), для PS/2 —/dev/psaux (FreeBSD —/dev/psm0). Например, в CRUX, использующей devfs, такой ссылки не было, поэтому я занес в файл /etc/rc.local такую строку: ln -s /dev/psaux /dev/misc/mouse (необходимо каждый раз создавать ее динамически при запуске, иначе ничего не получится).

Так, соглашаясь со значением, предлагаемым xf86config по умолчанию, проходим всю процедуру — не бойтесь, если что-то нас не устроит, потом можем подправить непосредственно в файле (исключение составляют характеристики монитора — здесь вводим правдивую информацию). В итоге создается файл /etc/X11/XF86Config (надеюсь, старый вы сохранили).

Но есть одна пакость. Для сервера версии 3.3.6 всего этого было достаточно — как правило, X-Window после описанной процедуры запускался без особых проблем. Единственное, что могло помешать, —отсутствие символической ссылки на вариант сервера, поддерживаемый видеокартой (в третьей версии для каждого типа видеокарты был свой сервер). Это проблема решалась созданием ссылки. В моем случае это выглядело так:

А вот при установке сервера четвертой версии, по идее, сперва не мешает проверить, обязательно ли наличие такой ссылки (Х-сервер здесь уже один на всех):

Увы, сколько я не бился как рыба об лед, в итоге получал одно и то же:

Это связано, скорее всего, с тем, что утилита xf86config генерирует файл старого образца, совместимый с третьей версией сервера, но для четвертой не вполне подходящий. Зато он, в отличие от других, отлично комментирован, так что даже при отсутствии под рукой справочника можно и даже нужно создать такой файл самостоятельно, просто скопировав из старого некоторые опции.

Переходим к утилите хf86cfg, тоже создающей конфигурационный файл, но уже в графическом режиме. Как ни странно, проблем с ней оказалось куда больше. Стоило запустить ее, и все застыло, мышь не двигалась, а потому компьютеру пришлось делать Reset (за время работы Linux'e я уже успел было позабыть, где находится эта кнопка). Надо сказать, данную утилиту в графическом режиме я видел полностью работающей только во FreeBSD. Мышь мне в конце концов удалось-таки заставить работать (причина сбоя заключалась в наличии работающей ссылки /dev/mouse), но все остальное, увы, расшевелить так и не удалось, а потому работу с данной утилитой пришлось закончить. Но когда, наконец, мне удалось запустить X-Window, я все же к ней вернулся, в надежде разобраться. Все оказалось проще простого — запустив # хf86cfg -help, я получил.

Как видите, поживиться есть чем. Нас же в первую очередь интересует опция -textmode. После запуска с такой опцией инициализируются какие-то модули, и затем появляется псевдографическое меню, при помощи которого и можно создать конфигурационный файл. В каждом подпункте можно добавить, удалить и отредактировать опции выбранного устройства. Если xf86cfg удалось хоть как ни будь запуститься, создается файл, содержащий настройки по умолчанию (разрешение 640480, 256 цветов VGA), с которого можно попробовать загрузиться. После окончания процесса настройки все изменения записываются в файл и копируются в указанное место (пункт меню Save XF86Config and Exit). Могу сказать, что после перезагрузки, набрав startx, я не только увидел работающий WindowMaker, но и частота кадров стояла 85.2 Гц при разрешении 1024768. До того только инсталлятор anaconda из RedHat'a мог автоматически выставить максимально допустимую частоту для моего монитора. Кстати, во FreeBSD все эти утилиты можно запустить из /stand/sysinstall, в том числе и xf86cfg -textmode, где для каждого имеется отдельный пункт в настройке Х-Window.

И последний вариант, рекомендуемый самими разработчиками. Сам Х-сервер имеет опцию, позволяющую автоматически сгенерировать нужный нам файл. Вызывается она просто:

После этого что-то там помигает в мониторе, и утилита сообщит, что создала новый конфигурационный файл /root/XF86Config.new, который можно тут же испытать, запустив

Но я просто перенес его в /etc/X11 с именем XF86Config и попробовал запустить графический режим. Естественно, ничего не получилось, хотя на некоторых компьютерах мне все же удалось запустить X-Window — правда, в не самом оптимальном режиме. Но забегая вперед, скажу, что если startx не запускается, попробуйте набрать просто # X; если появилось окно с крестиком мышки, значит, с Х-сервером все нормально, пора разбираться с оконным менеджером. А сейчас смотрим, что там в лог-файле. Ищем сообщения об используемых опциях и загружаемых модулях. Например:

Далее следуют искомые сообщения:

Это сообщение я оставил без внимания; оно связано с активацией функции энергосбережения, но что взять с BIOS четырехлетней давности? Идем дальше:

Как видите, автомат. Настроил все по минимуму: выставил разрешение 640480 с частотой 60 Гц, 8-битный PseudoColor-цвет и решил, что видеопамять у карты 256 Кб. К тому же частоты вертикальной и горизонтальной развертки явно не соответствуют моему монитору. Чтобы поправить положение, открываем файл XF86Config на редактирование. Он состоит из секций, описывающих какую-то определенную часть видеоподсистемы или устройств ввода информации. Чтобы установить значение частоты вертикальной и горизонтальной развертки, дописываем в секцию "Monitor" свои параметры. В моем случае это:

Чтобы заставить систему использовать другую глубину цвета по умолчанию, в начале секции "Screen" дописываем параметр DefaultDepth с указанием нужного значения. И здесь же в подсекции Display с параметром Depth равным DefaultDepth при помощи опции "Modes" указываем используемое разрешение (можно указать несколько сразу).

В моем случае:

Если, как в моем случае, видеопамять определилась не полностью, то в секции "Device" дописываем строку VideoRam 4096 или сколько там у вас.

Пробуем снова запустить X-Window; отмечаем, что все параметры теперь устанавливаются как положено — если нет, ищите ошибки .

Чтобы система меньше думала, вычисляя необходимые параметры, можно сразу задать строку Modeline, отвечающую за частоту развертки, и добавить ее в секцию Monitor. У меня дежурная такая строка:

После всех изменений я получил еще одно сообщение:

Это значит, что моя видеокарта не поддерживает 16-битный цвет, рекомендуется использовать 15-битный. Все свелось к корректировке секции Display.

Обычно же после этого всего X-Windows работает. Если явных ошибок не выдает, попробуйте набрать Х; при нормальном запуске начните разбираться с оконным менеджером. Имеет смысл работать первоначально с twm, который идет в комплекте и не так требователен ко всякого рода излишествам. У меня был случай, когда проблема заключалась в присутствии пустого файла ~/.Xclients, которому отдается предпочтение (читайте «Пингвин стучится в окна»), а так как в нем ничего не было написано, то ничего и не запускалось. В другом случае просто не мог загрузиться IceWM из-за отсутствия одной из необходимых библиотек — об этом я узнал лишь после того как попытался перезагрузиться в него из работающего WindowMaker’a, а так никакой информативной ошибки и не получал вовсе.

Как-то попытался я использовать старый файл, взятый из RedHat 7.3. В ответ, кроме сообщения о том, что система не может загрузить какие-то там модули, получил еще две ошибки:

В чем здесь проблема? Если посмотреть выше по тексту, находим строчку, устанавливающую путь, по которому Х-сервер будет искать фонты для своей работы:

Это означает, что используется сервер шрифтов xfs с конфигурационным файлом /etc/X11/fs/config, и система не может подключиться к нему, чтобы взять их. Скорее всего, xfs просто в данный момент не запущен, и его просто требуется запустить (что-то вроде /etc/init.d/xfs restart). Кстати, можно использовать при наличии сети всего один такой сервер, доверху набитый шрифтами. Подключаться к нему так: в файле /etc/X11/fs/config в строке "client-limit = 10" установите число компьютеров клиентов (рекомендуется не более сорока); в файле /etc/X11/XF86Config -4 замените строку FontPath "unix/:-1" на FontPath "tcp/localhost:7100"; наконец, в файле /etc/rc.d/init.d/xfs замените строку daemon --check xfs xfs -port -1 -daemon -droppriv -user xfs на daemon --check xfs xfs -port 7100 -daemon -droppriv -user xfs и строку daemon --check xfs su xfs -c \"xfs -port -1\" -s /bin/sh на daemon --check xfs su xfs -c \"xfs -port 7100\" -s /bin/sh. Теперь перезапустите сервер и проверьте, слушает ли он порт под номером 7100. А у клиентов следует прописать FontPath "192.168.0.1:7100", где 192.168.0.1 — IP-адрес сервера.

Но по-моему мнению, использовать его на локальном компьютере большого смысла нет, и поэтому его можно отключить (например, в CRUX, где я получил эти строки, он как раз и не используется), а в XF86Config -4 в секции "Files" прописать путь индивидуально к каждому каталогу, стараясь разместить первыми записи о кириллических шрифтах.

Если после этого при запуске будут выдаваться ошибки для определенных каталогов, в них просто нужно зайти и дать команду mkfontdir. После этого, как правило, все работает нормально. Вторая ошибка выглядела так.

Как видно, мышиное устройство определилось правильно и оно работает, но система не может подобрать самостоятельно для него протокол, который по умолчанию стоит как auto. Ну, это мы еще в первом классе проходили. В секции Section "InputDevice" ищем идентификатор мыши по умолчанию (Identifier "Mouse0"), заменяем строку Option "Protocol" "auto" на Option "Protocol" "IMPS/2" для PS/2-мыши со скроллом, или просто PS/2, если без него. Если используется последовательная мышь, то в качестве протокола используется Microsoft — или IntelliMouse, если с колесиком. При исследовании проблем я нашел любопытный модуль, предназначенный для работы с video4linux, а попросту с ТВ-тюнерами и подобными устройствами, — к сожалению, испытать догадку не на чем, но у кого проблемы с их настройкой, попробуйте добавить в секцию "Module" строку Load "v4l" — авось, поможет. А вообще, загляните в каталог, куда указывает ModulePath (обычно это /usr/X11R6/lib/modules) — может, найдется что-то подходящее.

Вот и все ошибки, которые мне удалось собрать за время эксплуатации Linux. Полагаю, это те, что чаще всего встречаются, остальные возникают в исключительных случаях. Если что, адрес есть, интересно будет пополнить коллекцию. Надеюсь, мне удалось хоть немного помочь разобраться в происходящем. Как видите, Linux не скрывает проблем, и главное, при их возникновении можно спокойно обдумать сложившуюся ситуацию и поискать выход. Ошибки следует искать в каталоге /var/log — там обычно находится зацепка, помогающая распутать весь клубок. Наконец, чрезвычайное сообщение: на днях официально стартовал проект Xwin — альтернативный проект по созданию X-сервера «другого типа» —http://xwin.org/index.php. Так что поживем — увидим.

Linux forever!

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov