Руководство FreeBSD
Пред. | Глава 5. X Window System | След.

# 5.4. Конфигурация X11

Текст предоставил Christopher Shumway.

## 5.4.1. Перед тем, как начать

Перед настройкой X11 необходима следующая информация о конфигурируемой системе:

- Характеристики монитора

- Набор микросхем, используемый в видеоадаптере

- Объём видеопамяти

Характеристики монитора используются в X11 для определения рабочего разрешения и частоты. Эти характеристики обычно могут быть получены из документации, которая прилагается к монитору или с сайта производителя. Тут нужны два диапазона значений, для частоты горизонтальной развёртки и для частоты вертикальной синхронизации.

Набор микросхем графического адаптера определяет, модуль какого драйвера использует X11 для работы с графическим оборудованием. Для большинства типов микросхем это может быть определено автоматически, но все же его полезно знать на тот случай, когда автоматическое определение не работает правильно.

Объём видеопамяти графического адаптера определяет разрешение и глубину цвета, с которым может работать система. Это важно, чтобы пользователь знал ограничения системы.

## 5.4.2. Конфигурирование X11

Начиная с версии 7.3, Xorg зачастую может работать без какого-либо файла настройки, для его запуска достаточно просто набрать:

    % startx

Начиная с версии 7.4, Xorg может использовать HAL для автоматического поиска клавиатуры и мыши. Порты `sysutils/hal` и `devel/dbus` будут инсталлированы как зависимости `x11/xorg`, но для их включения необходимо иметь следующие записи в `/etc/rc.conf` file:

    hald_enable="YES"
    dbus_enable="YES"

Эти сервисы должны быть запущены (вручную или при загрузки системы) до последующей загрузки Xorg конфигурации.

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

> Замечание: Такие оконные менеджеры, как GNOME, KDE или Xfce имеют собственные утилиты, позволяющие пользователю легко устанавливать такие параметры, как разрешение экрана. Поэтому, если конфигурация по-умолчанию не подходящая и вы планируете инсталлировать эти оконные менеджеры, просто можете продолжить настройку рабочей среды, используя их собственные утилиты для установок параметров экрана.

Процесс настройки X11 является многошаговым. Первый шаг заключается в построении начального конфигурационного файла. Работая с правами суперпользователя, просто запустите:

    # Xorg -configure

При этом в каталоге `/root` будет создан скелет конфигурационного файла X11 под именем `xorg.conf.new` (там, куда после su(1) или непосредственного входа будет указывать переменная `$HOME`). Программа X11 сделает попытку распознать графическое оборудование системы и запишет конфигурационный файл, загружающий правильные драйверы для обнаруженного оборудования в системе.

Следующим шагом является тестирование существующей конфигурации для проверки того, что Xorg может работать с графическим оборудованием в настраиваемой системе. Для этого выполните:

    # Xorg -config xorg.conf.new

Начиная с Xorg 7.4 и выше, это тестирование покажет лишь черный экран, что делает диагностику не совсем полноценным. Старое поведение будет доступно при использовании опции `retro`

    # Xorg -config xorg.conf.new -retro

Если появилась чёрно-белая сетка и курсор мыши в виде X, то настройка была выполнена успешно. Для завершения тестирования просто нажмите одновременно Ctrl+Alt+Backspace.

> Замечание: Данная комбинация включена по-умолчанию до Xorg версии 7.3. Для включения этого в версии 7.4 и выше, вы должны ввести следующую команду в любом эмуляторе X терминала:

>     % setxkbmap -option terminate:ctrl_alt_bksp

> или создать конфигурационный файл клавиатуры для hald называемый `x11-input.fdi` и сохранить его в `/usr/local/etc/hal/fdi/policy` директории. Данный файл должен содержать следующие строчки:

>     <?xml version="1.0" encoding="ISO-8859-1"?>
>     <deviceinfo version="0.2">
>       <device>
>         <match key="info.capabilities" contains="input.keyboard">
>           <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
>         </match>
>       </device>
>     </deviceinfo>

> Вам может потребоваться перезагрузка системы для вступления параметров hald в силу.

Если мышь не работает, ее необходимо настроить. Обратитесь к Разд. 2.10.9 в главе об установке FreeBSD. Дополнительно, начиная с версии 7.4, секция `InputDevice` в `xorg.conf` игнорируется в пользу автоматического поиска устройств. Для возвращения старого поведения, добавьте следующие строчки в секции `ServerLayout` или `ServerFlags`:

    Option "AutoAddDevices" "false"

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

> Замечание: Как ранее уже сообщалось, начиная с версии 7.4, по-умолчанию, hald демон будет пытаться распознать вашу клавиатуру автоматически. Есть возможность, что раскладка вашей клавиатуры или ее модель будут определены некорректно. Такие оконные менеджеры как GNOME, KDE или Xfce содержат свои инструменты для конфигурирования клавиатур. Тем не менее, можно установить параметры клавиатуры непосредственно с помощью утилиты setxkbmap(1) или через haldконфигурационные правила.

> Например, если вы хотите использовать клавиши PC 102 клавиатуры, идущая с французской раскладкой, мы должны создать конфигурационный файл клавиатуры для hald называемый `x11-input.fdi` и сохранить в `/usr/local/etc/hal/fdi/policy` директории. Этот файл должен содержать следующие строчки:

>     <?xml version="1.0" encoding="ISO-8859-1"?>
>     <deviceinfo version="0.2">
>       <device>
>         <match key="info.capabilities" contains="input.keyboard">
>           <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
>           <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
>         </match>
>       </device>
>     </deviceinfo>

> Если этот файл уже существует, просто скопируйте и добавьте эти строчки в файл данный файл.

> Вы должны будете перезагрузить систему, чтобы заставить hald применить настройки.

> Есть возможность проделать ту же конфигурацию из X терминала или скрипт следующей командой:

>     % setxkbmap -model pc102 -layout fr

> Файл `/usr/local/share/X11/xkb/rules/base.lst` содержит список различных клавиатур, доступные опции и раскладки.

Теперь выполните тонкую настройку в файле `xorg.conf.new` по своему вкусу. Откройте файл в текстовом редакторе, таком, как emacs(1) или ee(1). Сначала задайте частоты для монитора. Они обычно обозначаются как частоты горизонтальной и вертикальной синхронизации. Эти значения добавляются в файл `xorg.conf.new` в раздел `"Monitor"`:

    Section "Monitor"
            Identifier   "Monitor0"
            VendorName   "Monitor Vendor"
            ModelName    "Monitor Model"
            HorizSync    30-107
            VertRefresh  48-120
    EndSection

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

X позволяет использовать возможности технологии DPMS (Energy Star) с поддерживающими её мониторами. Программа xset(1) управляет временными задержками и может явно задавать режимы ожидания, останова и выключения. Если вы хотите включить использование возможностей DPMS вашего монитора, вы должны добавить следующую строку в раздел, описывающий монитор:

    Option       "DPMS"

Пока файл конфигурации `xorg.conf.new` открыт в редакторе, выберите желаемые разрешение и глубину цвета, которые будут использоваться по умолчанию. Они задаются в разделе `"Screen"`:

    Section "Screen"
            Identifier "Screen0"
            Device     "Card0"
            Monitor    "Monitor0"
            DefaultDepth 24
            SubSection "Display"
                    Viewport  0 0
                    Depth     24
                    Modes     "1024x768"
            EndSubSection
    EndSection

Ключевое слово `DefaultDepth` описывает глубину цвета, с которой будет работа по умолчанию. Это значение может быть переопределено при помощи параметра командной строки `-depth` для Xorg(1). Ключевое слово `Modes` описывает разрешение, с которым нужно работать при данной глубине цвета. Заметьте, что поддерживаются только те стандартные режимы VESA, что определены графическим оборудованием настраиваемой системы. В примере выше глубина цвета по умолчанию равна двадцати четырём битам на пиксел. При такой глубине цвета принимается разрешение в 1024 на 768 точек.

Наконец, запишите конфигурационный файл и протестируйте его при помощи тестового режима, описанного выше.

> Замечание: При решении проблем могут помочь лог файлы X11, в которых находится информация по каждому устройству, к которому подключен сервер X11. Лог файлам Xorg названия даются в формате `/var/log/Xorg.0.log`. Имена лог файлам могут даваться от `Xorg.0.log` до `Xorg.8.log` и так далее.

Если все в порядке, то конфигурационный файл нужно установить в общедоступное место, где его сможет найти Xorg(1). Обычно это `/etc/X11/xorg.conf` или `/usr/local/etc/X11/xorg.conf`.

    # cp xorg.conf.new /etc/X11/xorg.conf

Теперь процесс настройки X11 завершен. Xorg теперь можно запустить с помощью startx(1). X11 можно также запустить через xdm(1).

## 5.4.3. Тонкие вопросы настройки

### 5.4.3.1. Конфигурирование при работе с графическими чипсетами Intel® i810

Конфигурирование при работе с интегрированными наборами микросхем Intel® i810 требует наличия `agpgart`, программного интерфейса AGP, посредством которого X11 будет управлять адаптером. Подробности смотрите на странице справочника agp(4).

Это позволит конфигурировать графическое оборудование точно так же, как и любой другой графический адаптер. Заметьте, что для систем, у которых драйвер agp(4) в ядро не вкомпилирован, попытка погрузить модуль с помощью kldload(8) окончится неудачно. Этот драйвер должен оказаться в ядре во время загрузки, либо вкомпилированным, либо подгруженным посредством `/boot/loader.conf`.

### 5.4.3.2. Настройка широкоэкранного режима

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

Существующие широкоэкранные стандарты (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, и т.д.) поддерживают форматы изображения 16:10 и 10:9, которые могут быть проблемными. Для формата 16:10, например, возможны следующие разрешения экрана:

- 2560x1600

- 1920x1200

- 1680x1050

- 1440x900

- 1280x800

Иногда достаточно добавить одно из этих разрешений в качестве параметра `Mode` в раздел `Section "Screen"` вот так:

    Section "Screen"
    Identifier "Screen0"
    Device     "Card0"
    Monitor    "Monitor0"
    DefaultDepth 24
    SubSection "Display"
        Viewport  0 0
        Depth     24
        Modes     "1680x1050"
    EndSubSection
    EndSection

Xorg может извлечь информацию о разрешении из монитора посредством I2C/DDC, так что у него есть данные, какие частоты и разрешения может поддерживать монитор.

Если эти `ModeLines` не определены в драйверах, может потребоваться дополнительная настройка Xorg. Используя `/var/log/Xorg.0.log`, можно извлечь достаточно информации для создания рабочей строки `ModeLine` вручную. Просто обратитесь к следующей информации:

    (II) MGA(0): Supported additional Video Mode:
    (II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
    (II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
    (II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
    (II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

Эта информация называется EDID. Создание `ModeLine` из сводится к расположению номеров в правильном порядке:

    ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

Для нашего примера `ModeLine` в `Section "Monitor"` будет выглядеть так:

    Section "Monitor"
    Identifier      "Monitor1"
    VendorName      "Bigname"
    ModelName       "BestModel"
    ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
    Option          "DPMS"
    EndSection

После завершения редактирования конфигурации, X должен запуститься в новом широкоэкранном разрешении.

Пред. | Начало | След.
Установка X11 | Уровень выше | Использование шрифтов в X11

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.