Инсталляция Linux.

перевод Балуева А. Н.

Оглавление

  • ГЛАВА 5. СИСТЕМА X WINDOW

    ГЛАВА 5. СИСТЕМА X WINDOW

    В начало страницы

    X Window System есть графический пользовательский интерфейс (GUI), впервые разработанный в Massachusetts Institute of Technology. В последствии коммерческие поставщики превратили его в индустриальный стандарт GUI для платформ UNIX. Виртуально каждая рабочая станция UNIX в мире теперь имеет некотороую форму X. Свободно переносимая с MIT X Window System версии 11, выпуск 6 (X11R6) для 80386,80486 и Pentium UNIX систем был разработан группой программистов, которую возглавлял первоначально David Wexelblat. Этот выпуск, известный как XFree86 [1*], доступен для System V/386, 386BSD и других реализаций UNIX на Intel x86l, включая и Linux. Он содержит все двоичные коды, файлы поддержки, библиотеки и средства для инсталляции.

    Вот некоторые особенности этого выпуска:
    
    *** полнное включение выпуска  X Consortium's X11R6.3;
    
    *** новое расширение DPMS, 
    	спонсированное корпорацией Digital Equipment;
    
    *** Low Bandwidth X (LBX) расширение на всех X серверах;
    
    *** поддержка  Microsoft IntelliMouse;
    
    ***  поддержка для  gzip font compression.
    

    Чтобы пользоваться системой X Window, рекомендуем читать The X Window System: A User's Guide (см. приложение A). Здесь мы опишем шаг за шагом инсталляцию XFree86 под Linux.

    ---------------------------------------------

    [1*] XFree86 есть торговая марка XFree86 Project, Inc.

    Вам также нужно будет восполнить некоторые детали из документации по XFree86, которая рассматривается ниже. The Linux XFree86 HOW TO представляе другой хороший источник информации.

    5.1 Требования, которые X Window предъявляет к аппаратуре.

    В начало страницы

    5.1.1 Video display.

    В начало страницы

    В документации к вашему видео-адаптеру указан набор чипов. Если вы обратитесь на рынок за новой видеокартой или покупаете машину, которая сопровождается видеокартой, попросите поставщика точно указать тип (make), модель и набор чипов сопутствующей видеокарты. Поставщику может понадобиться связаться для этого с техническим отделом изготовителя. Многие поставщики аппаратуры для персональных компьютеров утверждают, что их видеокарта есть "стандартная карта SVGA", которая "должна работать" с вашей системой. Объясните, что ваше обеспечение (упомяните Linux и XFree86!) не поддерживает все наборы видеочипов и что вы должны иметь детальную информацию.

    Вы также можете определить набор чипов вашей видеокарты, выполнив прграмму SuperProbe, кторая включена в дистрибуцию XFree86. Она описана ниже. Видеокарты, использующие такие наборы чипов, поддерживаются всеми типами шин. Виртуально все карты поддерживают 256-цветный графический режим. В дополнение, некоторые карты поддерживают такие цветовые режимы, как одноцветный, 15-bit, 16-bit, 24-bit и 32-bit. Для глубин цвета больше чем 256 (8-bit) вы должны иметь установленным requisite amount of video dynamic RAM (DRAM). Обычная конфигурация есть 16 бит на пиксел (65536 цветов).

    Одноцветный сервер также поддерживает родные карты VGA, одноцветные карты Hercules, Hyundai HGC1280, Sigma LaserView и одноцветные карты Apollo.

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

    Одна из проблем, стоявшая перед разработчиками XFree86, заключается, что некоторые изготовители видеокарт используют нестандартные механизмы определения тактовых частот, используемых для управления картами. Они или не приводят спецификаций, описывающих, как программировать карту, или требуют от разработчиков подписывать неясные обязательства о предоставлении информации.

    Такая практика ограничивает свободную дистрибуцию XFree86, и команда разработчиков XFree86 неохотно принимает ее. Это составляло проблему с старыми видеокартами, изготовленными фирмой Diamond, но в отношении выпуска 3.3 Diamond активно поддерживает XFree86 Project, Inc. Мы также предлагаем использовать ускоренные карты, подобные S3 chip set card. Вы должны изучить документацию XFree86 и убедиться в том , что поддержиается и ваша карта, прежде чем решиться оплатить дорогое оборудование. Эталонные сравнения видеокарт регулярно публикуются в Usenet news groups comp.windows.x.i386unix и comp.os.linux.misc.

    Важно отметить, что средняя ускоренная видеокарта значительно быстрее чем стандартная графическая карта большинства рабочих станций. Система Linux на 80486DX2, 66-MHz, с 20 мегабайтами RAM, оборудованная VESA Local Bus (VLB) S3-864 chip set card с 2 мегабайтами DRAM, будет примерно в 7 раз быстрее чем рабочая станция Sun Sparc IPX workstation на эталонном тесте X с сервером XFree86 версии 3.1. Версия 3.3 еще быстрее. В общем, система Linux с ускоренной картой SVGA обладает гораздо большей производительностью, чем коммерческие рабочие станции UNIX, которые обычно играют роль простых кадровых буферов для графики.

    5.1.2 Память, CPU и пространство на диске.

    В начало страницы

    Рекомендуемое место установки для XFree86 под Linux есть 80486 или более быстрая машина с по крайней мере 16 мегабайтами RAM. Чем больше физическая устаноыленная RAM, тем реже система будет делать своппинг между диском и памятью. Поскольку свопинг неизбежно медленен (диски очень медленны по сравнения с оперативной памятью), наличие 16 или больше мегабайт RAM необходимы для комфортной работы XFree86. Система с 4 мегабайтами физической RAM может работать от 10 до 100 раз медленнее чем в случае 16 и более мегабайт RAM.

    Стандартная инсталляция XFree86 требует, как минимум, 60-80 мегабайт дискового пространства. Сюда входит пространство для X сервеов, фонтов, библиотек и стандартных утилитs. Если вы планируете добавить приложения, то вам для комфорта XFree86 потребуетя 200 мегабайт дискового пространства.

    5.2 Инсталляция XFree86.

    В начало страницы

    Двоичная дистрибуция Linux XFree86 имеется на всех CD Linux distributions и также может быть найдена на сайтах FTP. На sunsite.unc.edu она находится в каталоге /pub/X11/XFree86. Во время написания этой книги текущей версией была версия 3.3. Новые версии появляются периодически. Если вы получаете XFree86 как часть дистрибуции Linux, отдельно выгружать ее программы не нужно. Следующие файлы включены в эту дистрибуцию и в дистрибуцию XFree86-3.3.1.

    Требуется один из следующих серверов:

    
        File                          Description
    
    X338514.tgz             Server for 8514-based boards.
    X33AGX.tgz              Server for AGX-based boards.
    X33I128.tgz             Server for the Imagine I128 boards.
    X33Ma64.tgz             Server for Mach64-based boards.
    X33Ma32.tgz             Server for Mach32-based boards.
    X33Ma8.tgz              Server for Mach8-based boards.
    X33Mono.tgz             Server for monochrome video modes.
    X33P9K.tgz              Server for P9000-based boards.
    X33S3.tgz               Server for S3-based boards.
    X33S3V.tgz              Server for S3/Virge-based boards.
    X33SVGA.tgz             Server for Super VGA-based boards.
    X33VGA16.tgz            Server for VGA/EGA-based boards.
    X33W32.tgz              Server for ET4000/W32-based boards.
    
    Требуются также все следующие файлы:
    
    
    File                             Description
    
    preinst.sh               Pre-installation script
    postinst.sh              Post-installation script
    X33bin.tgz               Clients, run-time libs, 
    							and app-defaults files
    X33doc.tgz               Documentation
    X33fnts.tgz              75dpi, misc and PEX fonts
    
    X33lib.tgz                Data files required at run-time X
    33man.tgz                 Manual pages
    X33set.tgz                XF86Setup utility
    X33VG16.tgz               16 colour VGA server 
    						  (XF86Setup needs this server)
    
    

    Следующее требуется для новых инсталляций и по выбору для существующих:

    File Description

    X33cfg.tgz образец конфиг. файлов для xinit, xdm

    Не инсталлируйте X33cfg.tgz поверх существующих инсталляций Free86 без предварительного запасного копирования конфигурационных файлов. Распаковка X33cfg.tgz перекрывает эти и другие файлы. Если вы настроили конфигурационные файлы, этот пакет инсталлироватьне нужно.

    Фонты bit mapped, поставленные с выпуском 3.3.1, сжаты по программе gzip а не по compress. Вы, вероятно, захотите удалить старые фонты после снятия запасной копии. X серверы и серверы фонтов в предыдущих выпусках не могут читать фонты, сжатые по gzip, так что храните копии старых фонтов, если хотите использовать старые серверы.

    Следующие файлы не обязательны:

    
    
    File                      Description
    
    X33f100.tgz              100dpi fonts
    X33fcyr.tgz              Cyrillic fonts
    X33fnon.tgz              Other fonts (Chinese, Japanese, Korean, Hebrew)
    X33fscl.tgz              Scalable fonts (Speedo and Type1)
    X33fsrv.tgz              Font server and config files
    X33prog.tgz              X header files, config files and compile-time libs
    X33nest.tgz              Nested X server
    X33vfb.tgz               Virtual framebuffer X server
    X33prt.tgz               X Print server
    X33ps.tgz                PostScript version of the documentation
    X33html.tgz              HTML version of the documentation
    X33jdoc.tgz              Documentation in Japanese (for version 3.2)
    X33jhtm.tgz              HTML version of the documentation in Japanese (3.2)
    X33lkit.tgz              X server LinkKit
    
    

    Каталог XFree86 должен содежать файлы README и заметки по инсталляции для текущей версии.

    Теперь, в режиме root, создайте каталог /usr/X11R6, если он не был создан ранее. Затем выполните сценарий пре-инсталляции, preinst.sh. Вы должны скопировать этот сценарий и все архивные файлы для вашей системы в каталог /var/tmp до исполнения preinst.sh. /usr/X11R6 должен служить вашим текущим каталогом при исполнении пре-инсталляционного сценария и распаковке архивов:

    # cd /usr/X11R6 
    # sh /var/tmp/preinst.sh
    

    Затем вы должны распаковать файлы из /var/tmp в /usr/X11R6 по команде вида:

    # gzip -d < /var/tmp/X33prog.tgz j tar vxf

    Эти файлы tar упакованы по отношению к /usr/X11R6. Вы должны распаковать расположенные там файлы. В некоторых дистрибуциях Linux родительский каталог есть /var/X11R6.

    После того как вы распакуете требуемые файлы и отобранные необязательные файлы, выполните после-инсталляционный сценарий postinst.sh:

    # cd /usr/X11R6 
    # sh /var/tmp/postinst.sh
    
    

    Теперь свяжите файл /usr/X11R6/bin/X с сервером, который поддерживает вашу видеокарту. Например, пусть это будет SVGA color server, /usr/bin/X11/X и он должен быть связан с /usr/X11R6/bin/XF86 SVGA. Чтобы использовать вместо него монохромный сервер, пересвяжите X с XF86 MONO командой

    # ln --sf /usr/X11R6/bin/XF86 MONO /usr/X11R6/bin/X

    То же остается верным и для других серверов. Вам нужно также убедиться, что каталог /usr/X11R6/bin лежит на вашем пути. Это можно сделать редактированием вашего системного файла умолчаний /etc/profile или /etc/csh.login (основываясь на оболочке, которую используете вы или другие пользователи вашей системы). Или можно просто добавить каталог на вашем персональном пути, модифицировав /etc/.bashrc или /etc/.cshrc на базе вашей оболчки.

    Наконец, убедитесь, что /usr/X11R6/lib можно найти по ld.so, динамическому редактору связей. Чтобы сделать это, добавьте строку /usr/X11R6/lib к файлу /etc/ld.so.conf и исполните в корневом режиме /sbin/ldconfig.

    5.3 Проверка аппаратной конфигурации.

    В начало страницы

    Если вы не уверены в том, какой сервер нужно испольовать или не знаете набор чипов видеокарты, программа SuperProbe, находящаяся в /usr/X11R6/bin, может попытаться определить набор видеочипов и другую информацию. Запишите ее результат для будущих сылок. Чтобы выполнить SuperProbe из командной строки, просто введите

    # SuperProbe

    Может оказаться, что SuperProbe не пройдет на аппаратуре, которая использует адрес I/O порта, занятый, возможно, в видеокарте. Чтобы препятствовать SuperProbe в проверке этих адресов, употребите аргумент excl, за которым следует список адресов, которые SuperProbe проверять не должна. Например:

    # SuperProbe -excl 0x200-0x230,0x240

    Адреса указываются в 16-ричной системе с префиксом 0x. Чтобы выдать список видеоустройств, о которых SuperProbe знает, воспользуйтесь командой:

    # SuperProbe -info

    SuperProbe может напечатать много информации, если вы снабдите ее аргументом -verbose. Вы можете перенаправить ее выход в файл:

    # SuperProbe -verbose >superprobe.out

    Выполнение SuperProbe может привести к зависанию системы. Позаботьтесь о том, чтобы всякие несущественные прикладные программы не работали или по крайней мере сохранили все свои данные на диске и все пользователи вышли из системы. А также, чтобы загруженные программы (например, такие, которые печатают что-то в фоновом режиме) могли отделить (skew) вывод программ SuperProbe или X server, которые пытаются измерить временные спецификации видеокарты.

    5.4. Автоматическая генерация файла XF86Config

    В начало страницы
    Создание файла XF86Config вручную есть трудная, но не невозможная задача. Некоторые средства в XFree86 версии 3.3.1 могут помочь вам в этом. Одно из них, программа XF86Setup, может автоматически генерировать файл XF86Config в правильном формате. Вы должны знать точные спецификации вашей видеоплаты и вертикальное и горизонтальное времена замены (refresh values) вашего монитора. Большая часть этой информации может быть найдена в руководствах изготовителя.

    Доступны также и другие конфигурационные программы, зависящие от дистрибуции Linux. Наиболее обычные -- это Xconfigurator и xf86config. Последняя программа есть прежняя версия XF86Setup, она включена в прежние выпуски XFree86. Вы должны всегда использовать XF86Setup, если и она и xf86config есть в вашем распоряжении.

    5.5 Конфигурирование XFree86.

    В начало страницы

    В этом разделе мы описываем создание и редактирование файла XF86Config, который конфигурирует сервер XFree86. Во многих случаях лучше начать с конфигурирования XFree86, который использует низкое разрешение 640x480, поддерживаемое почти всеми видеокартами и мониторами. Если XFree86 работает при низком стандарте разрешимости, вы можете точно подстроить (tweak) конфигурацию для эксплоатации возможностей вашего видео-оборудования. Это будет гарантировать работу XFree86 на вашей системе и убедит вас в том, что инсталляция в существенном корректна, прежде чем вы будете пытаться решить трудную иногда задачу установки XFree86 для высокопроизводительного использования.

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

    *** Докуметацию по XFree86 в  /usr/X11R6/lib/X11/doc 
    	(из пакета XFree86-3.1-doc). 
    	Вы должны особенно внимательно прочесть файлы
        README.Config, представляющие учебное руководство 
        по конфигурированию XFree86.
    
    
    *** Нескольким наборам видеочипов посвяены отдельные 
    	файлы README в упомянутом
        выше каталоге (такие как README.Cirrus и README.S3). 
        Прочтите файлы,которые относятся к вашей видеокарте.
    
    *** manual page для  XFree86.
    
    *** manual page для XF86Config.
    
    *** manual page для сервера, которым вы пользуетесь, 
    	типа XF86 SVGA или XF86 S3. 
    	Главный конфигурационный файл для  XFree86 есть
        /usr/X11R6/lib/X11/XF86Config. 
        Он содержит информацию для вашей мыши,
        параметры видеокарт и т.д. 
        Файл  XF86Config.eg сопровождает в качестве
        примера дистрибуцию XFree86. 
        Скопируйте этот файл в XF86Config и
        отредактируйте его в качестве начального приближения.
    
    

    XF86Config manual page поясняет формат файла XF86Config. Читайте manual page, если вы еще не сделали этого.

    Мы собираемся описать пример файла XF86Config, секцию за секцией. Он не будет точно похож на образец, включенный в дистрибуцию XFree86, но структура его таже самая.

    Заметим, что формат файла XF86Config может меняться от версии к версии XFree86. См. выпуски вашей дистрибуции по поводу ошибок и исправлений.

    Не копируйте приведенный здесь конфигурационный файл в вашу систему и не пытайтес использовать его. Конфигурационный файл, который не соответствует вашему оборудованию, может управлять монитором с слишком высокой частотой. Имелись жалобы на порчу мониторов, особенно мониторов с фиксированной частотой, причиненную неправильно конфигурированными файлами XF86Config. Будьте абсолютно уверены, что ваш XF86Config соответствует вашей аппаратуре, прежде чем использовать его.

    Каждая секция файла XF86Config окружена парой строк с синтаксисом Section "section-name". . . EndSection.

    Первая секция файла XF86Config есть Files. Она выглядит так:

    Section "Files"
    RgbPath "/usr/X11R6/lib/X11/rgb"
    FontPath "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
    EndSection
    

    Строка RgbPath устанавливает путь к X11R6 RGB color database, и каждая строка FontPath устанавливает путь к каталогу, содержащему фонты X11. Эти строки модифицировать не нужно. Только проверьте , что строка FontPath существует для каждого типа фонта, которые вы установили; то-есть, для каждого каталога в /usr/X11R6/lib/X11/fonts.

    Следующая секция, ServerFlags, специфицирует несколько глобальных флажков для сервера. Обычно эта секция пуста.

    Section "ServerFlags"
    # Уберите комментарий, чтобы вызвать дамп ядра в точке, 
    # где получен сигнал.
    # Это может привести консоль в неиспользуемое состояние, 
    # но может и
    # обеспечить лучшую трассировку стека в дампе ядра при отладке
    # NoTrapSignals
    # Уберите комментарий для выкл. аборта сервера по 
    # DontZap
    EndSection
    

    В секции ServerFlags все строки закомментированы.

    Следующая секция есть Keyboard. Это -- пример базовой конфигурации, которая должна работать на большинстве систем. Файл XF86Config описывает, как модифицировать конфигурацию.

    Section "Keyboard"
    Protocol "Standard"
    
    AutoRepeat 500 5
    ServerNumLock
    EndSection
    
    

    Следующая секция есть Pointer, она указывае параметры для мыши:

    Section "Pointer"
    Protocol "MouseSystems"
    Device "/dev/mouse"
    # Baudrate и SampleRate нужны только некоторым мышам Logitech
    # BaudRate 9600
    # SampleRate 150
    # Кнопки эмуляции есть опция для 2-кнопочной мыши Microsoft
    # Кнопки эмуляции
    # ChordMiddle есть опция для некоторых 3-кнопочных мышей Logitech
    # ChordMiddle
    EndSection
    
    

    В настоящее время единственные опции, касающиеся вас, есть Protocol и Device. Protocol указывает протокол мыши, который не обязательно совпадает с протоколом, названным изготовителем. XFree86 под Linux распознает эти мышиные протоколы:

    *** BusMouse *** Logitech *** Microsoft *** MMSeries *** Mouseman *** MouseSystems *** PS/2 *** MMHitTab

    BusMouse должен использоваться для мышей Logitech bus. Старые мыши Logitech используют Logitech, а новые серийные мыши Logitech используют протоколы или Microsoft или Mouseman.

    Device специфицирует файл устройств, посредством которого производится доступ к мыши. На большинстве систем Linux это /dev/mouse, который обычно представляет связь с последовательным портом, подобно /dev/cua0 для последовательных мышей и подходящим устройством bus mouse в случае bus mice. В любом случае убедитесь, что device file существует.

    Следующая секция есть Monitor. Она специфицирует характеристики вашего монитора. Как и в случаях других секций файла XF86Config, в нем может быть несколько секций Monitor. Это полезно, если вы имеете много мониторов, связанных с вашей системой, или используете один и тот же файл XF86Config для многих аппаратных конфигураций.

    Section "Monitor"
    Identifier "CTX 5468 NI"
    # Эти значения предназначены только для CTX 5468NI! 
    # Не пытайтесь использовать их с вашим монитором,
    # если у вас другая модель.
    Bandwidth 60
    HorizSync 30-38,47-50
    
    
    VertRefresh 50-90
    # Modes: Name   dotclock   horiz           vert
    ModeLine "640x480" 25 640 664 760 800 480 491 493 525
    ModeLine "800x600" 36 800 824 896 1024 600 601 603 625
    ModeLine "1024x768" 65 1024 1088 1200 1328 768 783 789 818
    EndSection
    
    
    

    Identifier есть проивольное имя строки в секции Monitor. Он может означать любую строку и используется для позднейших ссылок на строки в Monitor в файле XF86Config.

    HorizSync специфицирует правильные горизонтальные синнхронизирующие частоты в kHz для вашего монитора. Мониторы типа Multisync могут иметь диапазон значений или несклько диапазонов, разделенных запятыми. Мониторы типа Fixedfrequency требуют список дискретных значений, например: HorizSync 31.5, 35.2, 37.9, 35.5, 48.95

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

    VertRefresh специфицирует правильные вертикальные скорости обновления (или вертикальные частоты синхронизации) для вашего монитора в kHz. Подобно HorizSync,это может быть диапазон или список дискретных значеий. Ваше руководство по монитору должно их содержать.

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

    Директива ModeLine используется для спецификации режимов разрешения для вашего монитора. Формат их таков:

    ModeLine name clock horiz-values vert-values

    name есть произвольная строка, которую вы будете использовать для ссылки на режим разрешения позже в файле. dot-clock есть driving clock frequency, или "dot clock", асоциированные с режимом разрешения . dot clock обычно указана в MHz. Это есть частота, с которой видеокарта может посылать пикселы в монитор при данном разрешении. horiz-values и vert-values есть четверки чисел каждое, показывающие, когда электронная пушка монитора должна стрелять и когда горизонтальный и вертикальный синхронизирующие импульсы стреляют во время развертки.

    Файл VideoModes.doc, включенный в дистрибуцию XFree86, описывает в деталях, как определять значения ModeLine для каждого режима разрешения, который поддерживает ваш монитор.

    clock должнo соответствовать одному из значений dot clock, которое поддержиавает ваша видеокарта. Позже в файле XF86Config вы будете указывать это clock.

    Два файла, modeDB.txt и Monitors, могут иметь информацию ModeLine для вашего монитораr. Они находятся в /usr/X11R6/lib/X11/doc.

    Начните с значений ModeLine для VESA-standard мониторных тактов (timings), потому что их поддерживает большинство мониторовm. ModeDB.txt включает тактовые частоты для разрешениий VESA-standard. Например, такая строка

    # 640x480@60Hz Non-Interlaced mode 
    # Horizontal Sync = 31.5kHz
    # Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms) 
    #
    # name clock horizontal timing vertical timing flags
    "640x480" 25.175 640 664 760 800 480 491 493 525
    

    есть VESA-standard timing для видеорежима 640x480. Он имеет dot clock 25.175, который должна поддерживать ваша видеокарта. Это описывается ниже. Чтобы включить эту строку в файл XF86Config file, используйте строку ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525

    Аргумент name для ModeLine ("640x480") есть произвольная цепочка (string). По соглашению режимы именуются по их разрешению, но name, технически, может быть любой описательной меткой.

    Для каждой ModeLine сервер проверяет спецификацию режима и проверяет, что он попадает в диапазон значений, указанный для Bandwidth, HorizSync и VertRefresh. Если нет, server протестует, когда вы пытаетесь запустить X. С одной сторны, dot clock, используемый в режиме, не должен быть больше чем значение, используемое в Bandwidth. Однако во многих случаях безопасно использовать режим, который имеет немного большую ширину диапазона, чем может поддерживать ваш монитор.

    Если VESA standard timings не работают (вы узнаете это при попытке использовать их), посмотрите в файлы modeDB.txt и Monitors, которые содержат значения режимов, соответствующих многим типам мониторов. Вы можете создать строку ModeLine из этих значений. Проверьте только, что используются значения, соответствующие вашему монитору. Многие 14- и 15-дюймовые мониторы не поддерживают режимы высокого разрешения, а часто и разрешения 1024x768 при низких dot clocks. Если вы не можете найти режима высокого разрешения для вашего монитора в этих файлах, то, вероятно, ваш монитор их не поддерживает.

    Если вы находитесь в полной растерянности и не можете найти значений ModeLine для вашего монитора, следуйте инструкциям файла VideoModes.doc, который включен в дистрибуцию XFree86 и генерируйте значения из спецификаций в руководстве по вашему монитору. Ваш "километраж" заметно изменится при попытке генерировать вручную значения ModeLine. Но это хороший пример убедиться, можете ли вы найти нужные вам значения. В VideoModes.doc также описаны формат директивы ModeLine и другие аспекты сервера XFree86 с живописными деталями.

    Наконец, если вы получите значения ModeLine, которые почти, но не совсем правильны, вы вероятно будете в состоянии немножко модифицировать их для получения желаемого результата. Например, если дисплейный образ XFree86 слегка смещен или подрагивает, следуйте инструкциям файла VideoModes.doc и исправьте значения. При этом не забывайте проверять управление самого монитора. Во многих случаях вы должны менять горизонтальный или вертикальный размеры экрана после запуска XFree86, центрировать и изменять размер образа.

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

    Следующая секция файла XF86Config есть Device, она указывает параметры для вашей видео карты. Приведем пример.

    Section "Device"
    Identifier "#9 GXE 64"
    # Пока ничего; мы впишем сюда значения позже.
    EndSection
    
    

    Эта секция определяет свойства для конкретной видео карты. Identifier есть произвольная дескриптивная цепочка. Вы будете использовать потом ее для ссылки на карту. Вначале вам не нужно ничего включать в секцию Device, кроме Identifier. Мы будем использовать сам сервер X для испытания свойств видео карты и введем их в секцию Device позже. Сервер XFree86 способен измерять (probing) набор видео чипов, clocks, RAMDAC и количество video RAM на плате.

    Все это описано в разделе 5.6. Но прежде чем приступить к нему, мы должны окончить описание файла XF86Config file. Его следующая секция есть Screen, она описывает комбинацию монитор/видеокарта для использования ее конкретным сервером.

    Section "Screen"
    Driver "Accel"
    Device "#9 GXE 64"
    Monitor "CTX 5468 NI"
    
    
    Subsection "Display"
    Depth 16
    Modes "1024x768" "800x600" "640x480"
    ViewPort 0 0
    Virtual 1024 768
    EndSubsection
    EndSection
    
    

    Строка Driver специфицирует сервер X, который вы будете использовать. Правильные значения для Driver есть:

    *** Accel: для серверов XF86 S3, 
    		   XF86 Mach32, XF86 Mach8, XF86 8514,
               XF86 P9000, XF86 AGX, and XF86 W32;
    *** SVGA: для сервера XF86 SVGA;
    *** VGA16: для сервера XF86 VGA16 server;
    *** VGA2: для сервера XF86 Mono server;
    *** Mono: для non-VGA монохромных драйверов 
    		  в серверах XF86 Mono и XF86 VGA16.
    
    

    Проверьте, что /usr/X11R6/bin/X есть символическая связь к вашему серверу.

    Строка Device указывает Identifier для секции Device, которая соответствует видео карте, используемой для этого сервера. Выше мы создавали секцию Device со строкой Identifier "#9 GXE 64" Следовательно, мы используем "#9 GXE 64" здесь в строке Device.

    Аналогично, строка Monitor указывает имя секции Monitor, которое нужно использовать с данным сервером. Здесь "CTX 5468 NI" есть Identifier, используемый в описанной выше секции Monitor.

    Подсекция "Display" определяет некоторые свойства сервера Free86, соответствующие вашей комбинации монитор/видеокарта. Файл XF86Config описывает в деталях все эти опции. Большинство из них не необходимы для работы системы. Опции, о которых вы должны знать, это:

    *** Depth. Определяет количество цветовых планов; то-есть количество битов на пиксел. Обычно Depth устанавливается на 16. Для сервера VGA16 вы должны использовать глубину 4, а для монохромного сервера глубину 1. Если вы используете ускоренную видео карту с достаточным количеством памяти для поддержки больше битов на каждый пиксел, можно установить Depth на 24 или 32. Если возникнут проблемы с глубиной больше чем 16, установите ее опять на 16 и попробуйте отладить ее позже.

    *** Modes. Это список названий режимов , которые определяются при употреблении директив ModeLine в секции Monitor. В приведенной выше секции мы использовали ModeLines с именами "1024x768", "800x600" и "640x48"0. То-есть, мы использовали строки для режимов "1024x768" "800x600" "640x480" Первый режим, названный в этой строке, есть умолчание при запуске XFree86. После запуска XFree86 вы можете переключаться между перечисленными здесь режимами с помощью клавиш Ctrl - Alt Numeric + и Ctrl - Alt - Numeric - .

    Может быть, будет лучше, если вы сначала сконфигурируете XFree86 для использования видео режима низкой разрешимости вида 640x480, который работает для большинства систем. Если вы получили работающую базовую конфигурацию, вы можете потом модифицировать XF86Config для поддержки более высоких разрешений.

    *** Virtual. Устанавливает виртуальный размер рабочего стола (desktop size). XFree86 может использовать дополнительную память на вашей видео карте для увеличения размера desktop. Когда вы двигаете указатель мыши к краю дисплея, desktop прокручивается (scrolls), обнаруживая дополнительное пространство. Даже если вы используете сервер при низком видео разрешении, таком как 800x600, вы можете установить Virtual на полную разрешимость, на которую способна ваша видео карта. Видео карта в 1 мегабайт может поддерживать 1024x768 при глубине 8 битов на пикселl; 2-мегабайтная карта -- 1280x1024 при глубине 8 или 1024x768 при глубине 16. Конечно, вся площадь не будет видима вся сразу, но пользоваться ею можно.

    Свойство Virtual довольно ограничено. Если вы хотите по-настоящему использовать виртуальный рабочий стол, то оконные менеджеры fvwm и similar позволят вам иметь большие виртуальные рабочие столы посредством скрытия окон и использования других техник вместо хранения всего стола в видео памяти. См. manual pages для fvwm для получения сведений об этом. Многие системы Linux используют fvwm по умолчанию.

    *** ViewPort. Если вы используете опцию Virtual, которая описана выше, то ViewPort устанавливает координаты верхнего левого угла виртуального рабочего стола при запуске XFree86. Часто используется Virtual 0 0. Если это не указано, рабочий стол центрируется по виртуальному рабочему столу, что может быть нежелательно для вас.

    Для этой секции имеется много других опций; см. XF86Config manual page для полного их описания. На практике эти опции не используются при начальном использовании XFree86.

    5.6 Перенос информации с видео карты.

    В начало страницы

    Ваш файл XF86Config теперь готов, за исключением полной информации о видео карте. Мы используем X server для исследования этой информации и добавления ее к XF86Config.

    Вместо извлечения этой информации с помощью X сервера, можно воспользоваться тем, что значения XF86Config для многих карт перечислены в файлах modeDB.txt, AccelCards и Devices. Все эти файлы находятся в /usr/X11R6/lib/X11/doc. Кроие того, имеются различные файлы README для некоторых наборов чипов. Вы можете посмотреть на эти файлы для получения информации о вашей видео карте и использовать эту инфомацию (значения clock, тип набора чипов и разные опции) в файле XF86Config. Если какой-нибудь информации там нет, вы должны ее найти. В большинстве примеров мы демонстрируем конфигурации с видеокарты #9 GXE 64, которая имеет набор чипов XF86 S3.

    Прежде всего, определим набор чипов на карте. Исполнив программу SuperProbe (она находится в /usr/X11R6/bin), получим эту информацию. Но нам нужно знать имя этого набора, как оно известно серверу X. Для этого выполним команду X -showconfig. Она выдаст имена наборов чипов, известные X серверу. ( manual pages для каждого X сервера также перечисляют эти имена). Например, для ускоренного сервера XF86 S3 мы получим:

    XFree86 Version 3.1 / X Window System (protocol Version 11, revision 0, vendor release 6000) Operating System: Linux Configured drivers: S3: accelerated server for S3 graphics adaptors (Patchlevel 0) mmio_928, s3_generic

    Правильные имена наборов чипов для этого сервера есть mmio 928 и s3 generic. XF86 S3 man page описывает эти наборы чипов и видео карты, которые их используют. В случае видео карты #9 GXE 64 подходит mmio 928. Если вы не знаете, какой набор чипов используется, X server может исследовать это для вас. Чтобы осуществить это, выполните команду

    X -probeonly > /tmp/x.out 2>&1

    если вы пользуетесь оболочкой bash. Если же вы используете csh, выполните:

    X -probeonly &> /tmp/x.out

    Вы должны выполнить эту команду, пока система не загружена работой; то-есть, пока никакой другой активности в системе не было. Эта команда также исследует dot clocks для вашей видео карты (как это видно ниже), и загрузка системы может уничтожить эти вычисления. Результаты этих команд в /tmp/x.out должны содержать строки вида:

    XFree86 Version 3.1 / X Window System 
    					(protocol Version 11, revision 0,
    vendor release 6000) 
    Operating System: Linux Configured drivers:
    S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
    mmio_928, s3_generic.... пропускаем нескольто строк. . . (--)
    S3: card type: 386/486 localbus (--) 
    S3: chipset: 864 rev. 0 (--)
    S3: chipset driver: mmio_928
    
    

    Здесь мы видим, что два правильных набора чипов для нашего сервера (в нашем случае, XF86 S3) есть mmio 928 и s3 generic. Сервер исследовал и нашел видеокарту, которая имеет набор чипов mmio 928.

    В секцию Device файла XF86Config добавим строку Chipset, которая имеет имя набора чипов, определенное выше. Например,

    Section "Device"
    # Мы уже записали сюда Identifier ...Identifier "#9 GXE 64"
    # Теперь добавляем строку: Chipset "mmio_928"
    EndSection
    
    

    Теперь нам нужно определить driving clock frequencies, используемые в видео карте. driving clock frequency, или dot clock, есть просто скорость, с которой видео карта может посылать пикселы в монитор. Как описывалось выше, каждому разрешению монитора соответствует связанное с ним dot clock. Нам нужно определить, какие скорости доступны при данной видеокарте.

    Прежде всего, вы должны ознакомиться с упомянутой выше документацией и посмотреть, указаны ли в ней dot clocks для карты. Нужные dot clocks обычно указаны списком из 8 или 16 значений в MHz. Например, при взгляде на modeDB.txt, мы видим строку (entry) для видео карты Cardinal ET4000, которая выглядит так:

    # chip ram virtual clocks default-mode flags
    ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
    

    dot clocks для этой карты есть 25, 28, 38, 36, 40, 45, 32 и 0 MHz. В секцию Devices файла XF86Config нужно добавить строку, содержащую список dot clocks для вашей карты. В нашем случае нужно добавить строку

    Clocks 25 28 38 36 40 45 32 0

    к секции Devices после строки Chipset. Порядок значений dot clocks очень важен. Не переставляйте их в списке и не удаляйте дубликаты. Если вы не можете найти dot clocks, связанные с вашей картой, X server может сделать это. Испольуйте X -probeonly ,как это описано выше. Выход должен содержать строки следующего вида:

    (--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00

    Мы можем затем добавить строку Clocks, которая содержит все эти значения. Вы можете использовать более одной строки Clocks в XF86Config, если все значения (иногда их печатается больше чем 8) не помещаются в одной строке. И в этом случае сохраняйте в списке тот порядок значений, в котором они выдаются. Проследите за тем, чтобы в секции Devices не было других строк Clocks (или они были закомментированы) во время исполнения X -probeonly. Если строка Clocks присутствует, сервер не исследует clocks--он использует значения, указанные в файле XF86Config.

    Некоторые видео платы используют программируемые clock chip. См. manual page для X сервера или файл XFree86 README, который описывает вашу видеокарту. Такой чип по существу позволяет X серверу сообщать карте, какую dot clocks нужно использовать. Для видеокарт с clock chips вы можете не найти список dot clocks для карты ни в одном из названных выше файлов. Или список dot clocks, напечатанный по X -probeonly, будет содержать только одно или два дискретных значений clock, остальныt будут дубликатами или нулем. Или X сервер может выдать явное сообщение, что видеокарта имеет программируемый clock chip:

    (--) SVGA: cldg5434: Specifying a Clocks line makes no sense for this driver

    Это пример взят из XF86 SVGA сервера, использующего карту Cirrus Logic PCI. Для плат, которые используют программируемые clock chips, вы должны употреблять строку ClockChip вместо строки Clocks в файле XF86Config. ClockChip есть имя clock chip, используемое видео картой; manual pages для каждого сервера описывают их.

    Например, в файле README.S3 мы увидим, что несколько видео карт S3-864 используют "ICD2061A" clock chip и что мы должны использовать строку ClockChip "icd2061a" вместо Clocks в файле XF86Config. Как и с Clocks, эта строка фигурирует в секции Devices после Chipset.

    Подобным же образом некоторые видеокарты требуют, чтобы вы указывали для чипов тип RAMDAC в файле XF86Config. Это делается в строке Ramdac. XF86 Accel man page описывает эту опцию. Часто X будет правильно находить RAMDAC. Некоторые типы видеокарт требуют, чтобы вы указывали несколько опций в секции Devices файла XF86Config. Эти опции описаны в manual page для вашего сервера, так же как и в различных файлах типа README.cirrus и README.S3. Эти опции задействуются с испоьзование строки Option. Например, карта #9 GXE 64 требует две опции:

    Option "number_nine"
    Option "dac_8_bit"
    
    

    X сервер может работать без строк Option, но они необходимы для получения максимальной производительности от карты. Имеется слишком много опций для того, чтобы перечислять их здесь. Они свои у каждой карты. Если вы хотите использовать какую-то карту, то X server manual pages и раpные файлы из /usr/X11R6/lib/X11/doc объяснят вам роли этих опций.

    Когда вы кончите, вы получите секцию Devices, которая будет выглядеть подобно следующему:

    Section "Device"
    # Секция Device только для  
    #9 GXE 64 !
    Identifier "#9 GXE 64" Chipset "mmio_928"
    ClockChip "icd2061a" Option "number_nine"
    Option "dac_8_bit"
    EndSection
    
    

    Имеются и другие опции, которые вы можете включить в строки Devices entry. В X server manual pages можно найти все нужные детали.

    5.7 Эксплуатация XFree86.

    В начало страницы

    Если файл XF86Config сконфигурирован, вы можете запустить X сервер и опробовать его. Здесь опять вы должны быть уверены, что каталог /usr/X11R6/bin лежит на вашем пути.

    Команда для для запуска XFree86 есть startx. Это передний край (front end) для xinit. Она запускает сервер X и выполняет команды в файле .xinitrc в вашем начальном каталоге. .xinitrc есть сценарий оболочки, содержащий командные строки клиентов X для исполнения при запуске сервера X. Если этого файла нет, используется по умолчанию /usr/X11R6/lib/X11/xinit/xinitrc.

    Простой файл .xinitrc выглядит подобно следующему:

    #!/bin/sh
    xterm -fn 7x13bold -geometry 80x32+10+50 &
    xterm -fn 9x15bold -geometry 80x34+30-10 &
    oclock -geometry 70x70-7+7 & 
    xsetroot -solid midnightblue &
    exec twm
    
    

    Этот сценарий запускает двух клиентов xterm и одного oclock и устанавливает цвет корневого окна (заднего плана) на темносиний. Он запускает twm, оконного менеджера. twm исполняется с оболочечным оператором exec. Это вызывает замену процесса xinit на twm. По окончании процесса twm закрывается и сервер X. Вы можете принудить twm к выходу, используя корневое меню. Щелкнете кнопкой 1 мыши на заднем плане рабочего стола. Это вызовет всплывающее меню, которое позволит вам выйти из Twm.

    Необходимо, чтобы последняя команда в .xinitrc запускалась по exec и чтобы она не попала на второй план (не было амперсанда в конце строки). В противном случае сервер X закроется (will shut down) непосредственно после того, как запустит клиентов в файле .xinitrc.

    Альтернаьтвно, вы можете выйти из X, нажав комбинацию Ctrl - Alt - Backspace. Это убьет X сервер непосредственно, выключив оконную систему.

    Все скаанное выше представляет только простейшую конфигурацию рабочего стола. Мы опять рекомендуем вам читать книги, такие как The X Window System: A User's Guide (см. приложение A). Возможные варианты и конфигурации в использовании X слишком обширны, чтобы разъяснять их здесь. xterm, oclock и twm manual снабдят вас начальными сведениями.

    5.8 Если у вас произошли неприятности.

    В начало страницы

    Часто что-то бывает не в порядке, когда вы впервые запускаете X сервер. Причина этого почти всегда лежит в файле XF86Config. Обычно дело в том, что частотные данные монитора или dot clocks для видеокарты установлены неправильно. Это приводит к тому, что дисплей как бы подрагивает или края изображения нечетки. Также проверьте, что вы правильно указали набор чипов видео карты и опции в секции Device файла XF86Config. Будьте абсолютно уверены в том, что используете правильный X сервер и что /usr/X11R6/bin/X есть символическая связь с ним.

    Если дело в другом, попробуйте запустить "голый" X ; то-есть, воспользуйтесь командой вида:

    X > /tmp/x.out 2>&1

    Затем вы можете убить сервер X (по Ctrl - Alt - Backspace ) и проверить содержимое /tmp/x.out. Туда X-сервер передает все предостережения и сообщения об ощибках--например, что ваша видео карта не имеет dot clock, соответствующих режиму вашего монитора. Файл VideoModes.doc, включенный в состав дистрибуции XFree86, содержит много рекомендаций по присоединению значений к вашему файлу XF86Config.

    Напомним, что вы можете использовать Ctrl - Alt - Numeric + и Ctrl - Alt - Numeric - для переключения между видео режимами, перечисленными в строке Modes секции Screen в файле XF86Config. Если режим самого высокого разрешения работает неправильно, попробуте переключиться на более низкий. Это позволит вам по крайней мере узнать, работают ли правильно эти части вашей X-конфигурации. А также подстройте вертикальные и горизонтальные кнопки size/hold на вашем мониторе. Во многих случаях это необходимо при запуске X. Например, если дисплей кажется слегка сдвинутым в одну сторону, вы можете исправить это средствами регулировки монитора.

    Группа новостей USENET comp.windows.x.i386unix посвящена дискуссиям об XFree86. И может оказаться полезным прочесть ее сообщения о видео конфигурациях.

    Имеются также отдельные файлы XF86Config, привнесенные пользователями. Некоторые из них доступны на архиве sunsite.unc.edu в каталоге /pub/Linux/X11 и других местах. Вы можете найти конфигурационный файл, который кто-то уже написал для вашего оборудования.


<<< Оглавление Страница: 5  6 >>>