Руководство FreeBSD
Пред. | Глава 8. Настройка ядра FreeBSD | След.

# 8.4. Конфигурационный файл

Обновил для FreeBSD 5.X Joel Dahl.

Формат конфигурационного файла достаточно прост. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется. Следующие разделы описывают каждый параметр, в основном в порядке, в котором они появляются в `GENERIC`, хотя некоторые родственные параметры сгруппированы вместе в одном разделе (например Работа с сетью), даже если на самом деле они разбросаны по всему файлу `GENERIC`. За полным списком архитектурно-зависимых параметров и устройств обратитесь к файлу `NOTES` в том же каталоге, что и `GENERIC`. Архитектурно независимые параметры находятся в `/usr/src/sys/conf/NOTES`.

> Замечание: `NOTES` не существует в FreeBSD 4.X. Детальное описание параметров и устройств из `GENERIC` находится в файле `LINT`. В 4.X `LINT` служит двум целям: предоставить справочное руководство для выбора параметров ядра при сборке ядра по умолчанию и предоставить конфигурацию ядра с параметрами, установленными в значения, отличные от значений по умолчанию (настолько много параметров, насколько это возможно). Это было сделано по той причине, что такая конфигурация хорошо помогала (и все еще помогает) при тестировании нового кода и изменений в существующем коде, поскольку этот код и изменения могут конфликтовать с другими частями ядра. Однако, инфраструктура конфигурации ядра в 5.X прошла через множество серьезных изменений; Одно из таких изменений - перемещение параметров конфигурации драйверов в hints, и теперь они могут быть изменены и загружены динамически во время загрузки системы, а в `LINT` их больше нет. По этой и другим причинам `LINT` был переименован в `NOTES` и в основном по-прежнему соответствует своему назначению: информирование пользователей о доступных параметрах.

> В FreeBSD 5.X и более поздних версиях вы все еще можете создать собираемый `LINT`, выполнив:

>     # cd /usr/src/sys/i386/conf && make LINT

Это пример конфигурационного файла ядра `GENERIC` с различными дополнительными комментариями, которые могут понадобиться для ясности. Этот пример должен совпадать с вашей копией в `/usr/src/sys/i386/conf/GENERIC` практически полностью.

    #
    # GENERIC -- Generic kernel configuration file for FreeBSD/i386
    #
    # For more information on this file, please read the handbook section on
    # Kernel Configuration Files:
    #
    #    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
    #
    # The handbook is also available locally in /usr/share/doc/handbook
    # if you've installed the doc distribution, otherwise always see the
    # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
    # latest information.
    #
    # An exhaustive list of options and more detailed explanations of the
    # device lines is also present in the ../../conf/NOTES and NOTES files.
    # If you are in doubt as to the purpose or necessity of a line, check first
    # in NOTES.
    #
    # $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $

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

    machine        i386

Это архитектура машины. Она должна быть одной из следующих: alpha, amd64, i386, ia64, pc98, powerpc, или sparc64.

    cpu          I486_CPU
    cpu          I586_CPU
    cpu          I686_CPU

Эта опция указывает тип процессора, который используется в вашей системе. В конфигурационном файле может быть несколько вхождений этой опции (например, если вы не уверены, какой из типов процессора необходимо использовать -- I586_CPU или I686_CPU), но для собственного ядра лучше указывать только тот тип процессора, который установлен в вашей системе. Если вы не уверены, какой тип необходимо использовать вам, вы можете воспользоваться файлом `/var/run/dmesg.boot`, чтобы увидеть протокол загрузки системы.

Поддержка типа I386_CPU все ещё существует в исходных текстах FreeBSD, но по умолчанию отключена в ветках -STABLE и -CURRENT. Это означает, что для того, чтобы установить FreeBSD на систему с процессором i386, вы можете использовать следующие способы:

- Установить более раннюю версию FreeBSD и пересобрать систему из исходных текстов в соответствии с Разд. 8.3.

- Собрать систему и ядро на более новой машине и установить на 386 используя уже собранные файлы в `/usr/obj` (за дополнительной информацией можете обратиться к Разд. 19.5).

- Сделать собственный релиз FreeBSD, который включает поддержку I386_CPU в ядре установочного CD-ROM.

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

    ident          GENERIC

Этот параметр определяет ''метку'' ядра. Необходимо, чтобы она соответствовала названию файла конфигурации ядра, например MYKERNEL, если вы следовали инструкциям в предыдущих примерах. Значение, которое вы присвоите параметру ident будет выводиться в процессе загрузки, поэтому полезно давать новым ядрам другие имена для того, чтобы отличать их от обычного ядра (например, если вы хотите собрать экспериментальное ядро).

    maxusers          n

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

Начиная с FreeBSD 4.5, система автоматически настроит этот параметр если в конфигурационном файле вы установили его в значение 0[1]. В FreeBSD 5.X и выше, maxusers по умолчанию равен 0, если не установлено другое значение. Если вы используете FreeBSD версии более ранней, чем 4.5, или хотите самостоятельно управлять этим значением, рекомендуется устанавливать значение maxusers равным минимум 4, особенно если вы используете X Window System или компиляторы. Причина этого кроется в том, что одной из основных таблиц, размер которой определяет maxusers, является максимальное количество процессов, которое устанавливается равным 20 + 16 * maxusers, таким образом, если вы установите maxusers равным 1, то получите возможность выполнять максимум 36 одновременных процессов, включая 18 или около того процессов, которые система запускает при загрузке, и 15 или около того вы создадите, когда запустите X Window System. Даже такая простая задача, как чтение страницы справочной системы (man(1)), потребует запуска девяти процессов, для того, чтобы использовать фильтры, распаковать и просмотреть её. Установка maxusers в значение 64 позволит запускать до 1044 одновременных процессов, что должно быть достаточно для большинства применений. Однако, если вы видите ошибку proc table full, когда пытаетесь запустить программу или поддерживаете сервер с большим количеством пользователей (такой, как `ftp.FreeBSD.org`), вы всегда можете увеличить это число и пересобрать ядро.

> Замечание: maxusers не ограничивает количество пользователей, которые могут зайти на вашу машину. Он просто устанавливает размеры различных таблиц в разумные значения, учитывая максимальное количество пользователей, которое будет у вас в системе и как много процессов будет запускать каждый из них. Параметр ядра, который действительно ограничивает количество одновременных удалённых сессий и окон X терминала, это pseudo-device pty 16. С FreeBSD 5.X, вам не нужно беспокоиться об этом номере, поскольку драйвер pty(4) ''автоклонируемый''; используйте в файле конфигурации строку device pty.

    # Floating point support - do not disable.
    device          npx

npx -- это интерфейс к модулю операций с плавающей точкой в FreeBSD, который может использовать как аппаратный сопроцессор, так и программную эмуляцию. Этот параметр является обязательным.

    # Pseudo devices
    device   loop          # Network loopback

Стандартное устройство обратной связи для TCP/IP. Если вы запускаете telnet или FTP на `localhost` (он же `127.0.0.1`), то соединение пройдёт через это устройство. Этот параметр обязателен. В FreeBSD 4.X вам потребуется использовать pseudo-device loop.

Все остальные параметры более или менее опциональны. Обращайте внимание на информацию о каждой опции, которая размещается рядом с ней.

    #To statically compile in device wiring instead of /boot/device.hints
    #hints          "GENERIC.hints"         # Default places to look for devices.

В FreeBSD 5.X и более поздних device.hints(5) используются для настройки параметров драйверов устройств. Путь по умолчанию, который loader(8) будет проверять при загрузке - `/boot/device.hints`. Используя опцию hints вы можете вкомпилировать эти параметры статически в ваше ядро. В этом случае не требуется создавать файл `device.hints` в каталоге `/boot`.

    #makeoptions     DEBUG=-g          # Build kernel with gdb(1) debug symbols

Обычный процесс сборки FreeBSD не включает генерацию отладочной информации при сборке ядра и удаляет большую часть вспомогательной информации (symbols) после того как ядро слинковано для того, чтобы сэкономить немного места. Если вы собираетесь проводить тестирование ядер в ветви -CURRENT или разрабатывать собственные правки для ядра FreeBSD, возможно вам потребуется раскомментировать эту строку. Тем самым вы включите использования опции -g, которая включает генерацию отладочной информации gcc(1). Того же самого эффекта можно добиться используя опцию config(8) -g, в случае, если вы используете ''традиционный'' способ сборки ядра (обратитесь к Разд. 8.3 за дополнительной информацией).

    options          SCHED_4BSD         # 4BSD scheduler

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

    options          INET              # InterNETworking

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

    options          INET6             # IPv6 communications protocols

Включает поддержку коммуникационных протоколов IPv6.

    options          FFS               # Berkeley Fast Filesystem

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

    options          UFS_ACL           # Support for access control lists

Этот параметр, присутствующий только в FreeBSD 5.X, включает в ядре поддержку списков управления доступом (ACL). Основывается на использовании расширенных атрибутов и UFS2, детальное описание вы сможете найти в Разд. 14.13. ACL включены по умолчанию и не должны выключаться в случае, если они ранее использовались на файловой системе, так как это удалит списки управления доступом и изменит то, как защищены файлы, непредсказуемым образом.

    options          UFS_DIRHASH       # Improve performance on big directories

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

    options          SOFTUPDATES       # Enable FFS Soft Updates support

Этот параметр включает в ядре технологию Soft Updates, которая повышает скорость записи на диски. Несмотря на то, что эта технология включена в ядре, она должна быть включена для отдельных дисков. Просмотрите вывод команды mount(8) чтобы определить, включены ли Soft Updates для дисков вашей системы. Если вы не увидите параметр soft-updates, вам будет необходимо активировать его при помощи команды tunefs(8) (для существующих файловых систем) или команды newfs(8) (для новых файловых систем).

    options          MD_ROOT           # MD is a potential root device

Этот параметр включает поддержку использования дисков в памяти для корневой файловой системы.

    options          NFSCLIENT         # Network Filesystem Client
    options          NFSSERVER         # Network Filesystem Server
    options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT

Сетевая файловая система. Если вы не планируете монтировать разделы с файлового сервера UNIX® через TCP/IP, вы можете исключить этот параметр из конфигурационного файла ядра.

    options          MSDOSFS           # MSDOS Filesystem

Файловая система MS-DOS®. Если вы не собираетесь монтировать форматированный в DOS раздел жесткого диска в момент загрузки, вы можете безопасно закомментировать этот параметр. Необходимый модуль будет автоматически загружен, когда вы в первый раз смонтируете раздел DOS, так, как это описано ниже. Кроме того, замечательный пакет `emulators/mtools` позволяет получить доступ к DOS дискетам без необходимости монтировать и размонтировать их (и не требует наличия MSDOSFS).

    options          CD9660            # ISO 9660 Filesystem

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

    options          PROCFS            # Process filesystem

Файловая система процессов. Это ''виртуальная'' файловая система монтируемая в `/proc`, которая позволяет таким приложениям, как ps(1) выдавать вам больше информации о запущенных процессах. В FreeBSD 5.X и выше, использование PROCFS не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без PROCFS: в отличие от FreeBSD 4.X, новые системы FreeBSD 5.X по умолчанию не монтируют файловую систему процессов. Более того, ядра 6.X-CURRENT, которые используют PROCFS, должны также включать поддержку PSEUDOFS:

    options          PSEUDOFS          # Pseudo-filesystem framework

PSEUDOFS недоступна в FreeBSD 4.X.

    options          GEOM_GPT          # GUID Partition Tables.

Этот параметр делает возможным наличие большого количества разделов на одном диске.

    options          COMPAT_43         # Compatible with BSD 4.3 [KEEP THIS!]

Совместимость с 4.3BSD. Не выключайте эту опцию; некоторые приложения будут вести себя странно, если этой опции не будет в ядре.

    options          COMPAT_FREEBSD4   # Compatible with FreeBSD4

Эта опция требуется в FreeBSD 5.X для платформ i386™ и Alpha для поддержки приложений, собранных на более старых версиях FreeBSD, которые используют старые интерфейсы вызовов. Рекомендуется использовать данную опцию на всех системах на платформах i386 и Alpha, на которых могут запускаться старые приложения; платформы, поддержка которых появилась только в FreeBSD 5.X, например ia64 и Sparc64®, не требуют этой опции.

    options          SCSI_DELAY=15000  # Delay (in ms) before probing SCSI

Этот параметр заставляет ядро приостановиться на 15 секунд перед тем, как идентифицировать каждое устройство SCSI в вашей системе. Если у вас установлены только жесткие диски IDE, вы можете игнорировать эту опцию, в противном случае, возможно, вы захотите уменьшить это число, например до 5 секунд, для того, чтобы ускорить загрузку. Естественно, что если вы сделаете это, а у FreeBSD появятся проблемы с распознанием ваших устройств SCSI, необходимо будет увеличить этот параметр.

    options          KTRACE            # ktrace(1) support

Включает поддержку трассировки процессов, что удобно при отладке.

    options          SYSVSHM           # SYSV-style shared memory

Этот параметр предоставляет поддержку разделяемой памяти System V. Наиболее распространенное применение этого -- расширение XSHM в X, которое многие приложения, интенсивно работающие с графикой, будут автоматически использовать для повышения скорости работы. Если вы используете X, эта опция будет необходима.

    options          SYSVMSG           # SYSV-style message queues

Поддержка сообщений System V. Этот параметр добавляет в ядро всего лишь несколько сотен байт.

    options          SYSVSEM           # SYSV-style semaphores

Поддержка семафоров System V. Не настолько часто используемая возможность, но в ядро добавляет всего несколько сотен байт.

> Замечание: Команда ipcs(1) с параметром -p покажет все процессы, которые используют любую из этих возможностей System V.

    options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions

Расширения реального времени, добавленные 1993 POSIX®. Определенные приложения из коллекции используют их, например StarOffice™.

    options          KBD_INSTALL_CDEV  # install a CDEV entry in /dev

Этот параметр относится к клавиатуре. Он добавляет CDEV в `/dev`.

    options          AHC_REG_PRETTY_PRINT     # Print register bitfields in debug
                                              # output.  Adds ~128k to driver.
    options          AHD_REG_PRETTY_PRINT     # Print register bitfields in debug
                                              # output.  Adds ~215k to driver.

Распечатка регистров для облегчения отладки.

    options          ADAPTIVE_GIANT    # Giant mutex is adaptive.

Giant -- имя механизма защиты (''спящего'' мьютекса) для крупных наборов ресурсов ядра. На нынешний момент Giant представляется фактически непригодным для использования в связи с серьезными потерями в производительности, и активно заменяется на механизмы, защищающие отдельные ресурсы ядра. Параметр ADAPTIVE_GIANT включает Giant в число адаптивных мьютексов: в случае, когда нить ядра нуждается в Giant, а он уже захвачен нитью, выполняющейся на другом процессоре, первая нить будет продолжать выполнение и ждать освобождения Giant. В норме нить должна была бы уснуть, пока не настанет очередной момент ее выполнения. Если вы не уверены, оставьте этот параметр в покое.

    device          apic               # I/O APIC

Устройство apic разрешает использование набора I/O APIC для распределения прерываний. Оно может быть использовано как с однопроцессорными, так и с многопроцессорными ядрами (для последних наличие apic является обязательным). Для поддержки многопроцессорности добавьте строку options SMP.

    device          isa

Все компьютеры, поддерживаемые FreeBSD, имеют хотя бы одно устройство ISA. Не удаляйте эту строку, даже если в вашем компьютере нет слотов ISA. Для архитектуры IBM PS/2 (Микроканальная Архитектура (MCA)), FreeBSD предоставляет ограниченную поддержку данной шины. За дальнейшей информацией о поддержке MCA обратитесь к файлу `/usr/src/sys/i386/conf/NOTES`.

    device          eisa

Включите эту опцию если у вас материнская плата EISA. Это включает автоопределение и конфигурирование поддержки всех устройств на шине EISA.

    device          pci

Включите этот параметр, если у вас материнская плата с поддержкой PCI. Это включит автоопределение карт PCI и проксирование из шины PCI в шину ISA.

    device          agp

Включите эту опцию, если у вас есть AGP карта в системе. Это включит поддержку AGP и AGP GART для тех карт, которые поддерживают эту возможность.

    # Floppy drives
    device          fdc

Контроллер флоппи-диска.

    # ATA and ATAPI devices
    device          ata

Этот драйвер поддерживает все устройства ATA и ATAPI. Вам необходима только одна строка device ata в ядре для того, чтобы обнаружить все PCI устройства ATA/ATAPI в современных машинах.

    device          atadisk                 # ATA disk drives

Эта строка необходима вместе с device ata для поддержки дисков ATA.

    device          ataraid                 # ATA RAID drives

Эта строка необходима вместе с device ata для поддержки дисков ATA RAID.

    device          atapicd                 # ATAPI CDROM drives

Поддержка приводов ATAPI CDROM. Используется вместе с device ata.

    device          atapifd                 # ATAPI floppy drives

Поддержка флоппи-приводов ATAPI. Используется вместе с device ata.

    device          atapist                 # ATAPI tape drives

Поддержка ленточных приводов ATAPI (стримеров). Используется вместе с device ata.

    options         ATA_STATIC_ID           # Static device numbering

Заставляет драйвер нумеровать устройства статически; в противном случае происходит динамическая нумерация.

    # SCSI Controllers
    device          ahb        # EISA AHA1742 family
    device          ahc        # AHA2940 and onboard AIC7xxx devices
    device          ahd        # AHA39320/29320 and onboard AIC79xx devices
    device          amd        # AMD 53C974 (Teckram DC-390(T))
    device          isp        # Qlogic family
    device          mpt        # LSI-Logic MPT-Fusion
    #device         ncr        # NCR/Symbios Logic
    device          sym        # NCR/Symbios Logic (newer chipsets)
    device          trm        # Tekram DC395U/UW/F DC315U adapters

    device          adv        # Advansys SCSI adapters
    device          adw        # Advansys wide SCSI adapters
    device          aha        # Adaptec 154x SCSI adapters
    device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
    device          bt         # Buslogic/Mylex MultiMaster SCSI adapters

    device          ncv        # NCR 53C500
    device          nsp        # Workbit Ninja SCSI-3
    device          stg        # TMC 18C30/18C50

Контроллеры SCSI. Закомментируйте те, которых у вас в системе нет. Если у вас в системе исключительно IDE устройства, вы можете удалить все эти строки.

    # SCSI peripherals
    device          scbus      # SCSI bus (required for SCSI)
    device          ch         # SCSI media changers
    device          da         # Direct Access (disks)
    device          sa         # Sequential Access (tape etc)
    device          cd         # CD
    device          pass       # Passthrough device (direct SCSI access)
    device          ses        # SCSI Environmental Services (and SAF-TE)

Периферийные устройства SCSI. Опять-таки, закомментируйте те, которых у вас в системе нет, или, если у вас в наличии исключительно IDE, можете удалить все.

> Замечание: USB umass(4) драйвер (и некоторые другие драйверы) используют подсистему SCSI, хотя и не являются настоящими SCSI устройствами. Следовательно, вам необходимо сохранить поддержку SCSI, если какой-либо из этих драйверов включен в конфигурацию ядра.

    # RAID controllers interfaced to the SCSI subsystem
    device          amr        # AMI MegaRAID
    device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
    device          ciss       # Compaq Smart RAID 5*
    device          dpt        # DPT Smartcache III, IV - See NOTES for options
    device          hptmv      # Highpoint RocketRAID 182x
    device          iir        # Intel Integrated RAID
    device          ips        # IBM (Adaptec) ServeRAID
    device          mly        # Mylex AcceleRAID/eXtremeRAID
    device          twa        # 3ware 9000 series PATA/SATA RAID

    # RAID controllers
    device          aac        # Adaptec FSA RAID
    device          aacp       # SCSI passthrough for aac (requires CAM)
    device          ida        # Compaq Smart RAID
    device          mlx        # Mylex DAC960 family
    device          pst        # Promise Supertrak SX6000
    device          twe        # 3ware ATA RAID

Поддерживаемые RAID-контроллеры. Если у вас нет таковых, можете их закомментировать или удалить эти строки.

    # atkbdc0 controls both the keyboard and the PS/2 mouse
    device          atkbdc     # AT keyboard controller

Контроллер клавиатуры (atkbdc) предоставляет средства ввода/вывода для клавиатуры AT и PS/2 устройств. Этот контроллер необходим драйверу клавиатуры (atkbd) и PS/2 устройств (psm).

    device          atkbd      # AT keyboard

Драйвер atkbd вместе с контроллером atkbdc предоставляет доступ к клавиатуре AT 84 или улучшенной клавиатуре AT, которая подключена к контроллеру AT клавиатуры.

    device          psm        # PS/2 mouse

Используйте это устройство, если ваша мышь включается в порт PS/2.

    device          vga        # VGA video card driver

Драйвер видеокарты.

    # splash screen/screen saver
    device          splash     # Splash screen and screen saver support

Заставка при загрузке. Хранители экрана также требуют этого устройства. В FreeBSD 4.X используйте строку pseudo-device splash.

    # syscons is the default console driver, resembling an SCO console
    device          sc

sc -- это драйвер консоли по умолчанию, который имитирует консоль SCO. Так как большая часть консольных полноэкранных приложений обращаются к консоли через терминальную библиотеку `termcap`, вас не должно волновать, будете ли вы использовать этот драйвер, либо драйвер vt, который является VT220-совместимым драйвером консоли. Если у вас возникнут какие-либо проблемы с приложениями, работающими с этим драйвером консоли, установите переменную окружения `TERM` в значение scoansi.

    # Enable this for the pcvt (VT220 compatible) console driver
    #device          vt
    #options         XSERVER          # support for X server on a vt console
    #options         FAT_CURSOR       # start with block cursor

VT220-совместимый драйвер консоли, обратно совместимый с VT100/102. Он работает лучше на некоторых лэптопах, у которых возникают проблемы несовместимости с sc. Также, установите переменную окружения `TERM` в значение vt100 или vt220. Этот драйвер также может быть полезен в случаях подключения к большому количеству различных машин через сеть, на которых параметры для устройства sc для `termcap` или `terminfo` могут отсутствовать -- vt100 присутствует практически на любой платформе.

    # Power management support (see NOTES for more options)
    #device          apm

Поддержка Advanced Power Management. Чаще всего используется в лэптопах, хотя в ядре `GENERIC` FreeBSD 5.X и выше отключена по умолчанию.

    # Add suspend/resume support for the i8254.
    device           pmtimer

Устройство таймера для управления энергопотреблением, APM и ACPI.

    # PCCARD (PCMCIA) support
    # PCMCIA and cardbus bridge support
    device          cbb               # cardbus (yenta) bridge
    device          pccard            # PC Card (16-bit) bus
    device          cardbus           # CardBus (32-bit) bus

Поддержка PCMCIA. Включите ее, если вы используете лэптоп.

    # Serial (COM) ports
    device          sio               # 8250, 16[45]50 based serial ports

Четыре последовательных порта, которые известны как `COM` порты в мире MS-DOS/Windows®

> Замечание: Если у вас есть внутренний модем на `COM4` и последовательный порт `COM2`, вам понадобится поменять IRQ модема на 2 (по непонятным техническим причинам IRQ2 = IRQ9) для того, чтобы получить к нему доступ из FreeBSD. Если у вас есть многопортовая карта с последовательными портами, ознакомьтесь с sio(4) чтобы узнать корректные значения для добавления в `/boot/device.hints`. Некоторые видеокарты (в частности те, что используют чипы S3) используют адреса ввода/вывода в форме 0x*2e8 и, так как многие дешевые последовательные карты не полностью раскодируют шестнадцатибитное пространство адресов ввода/вывода, они конфликтуют с этими картами, в итоге `COM4` оказывается практически недоступным.

> Каждый последовательный порт требует уникального IRQ (кроме тех случаев, когда вы используете мультипортовую карту, которая поддерживает совместное использование прерываний), поэтому значения IRQ по умолчанию для `COM3` и `COM4` не могут быть использованы.

    # Parallel port
    device          ppc

Интерфейс параллельного порта на шине ISA.

    device          ppbus      # Parallel port bus (required)

Поддержка шины параллельного порта.

    device          lpt        # Printer

Поддержка принтеров на параллельном порту.

> Замечание: Все три последних устройства необходимы для поддержка принтеров на параллельном порту.

    device          plip       # TCP/IP over parallel

Драйвер TCP/IP через параллельный порт.

    device          ppi        # Parallel port interface device

Поддержка ввода/вывода общего назначения (''geek port'') + IEEE1284 ввода/вывода.

    #device         vpo        # Requires scbus and da

Драйвер привода Iomega Zip. Требует наличия scbus и da. Наилучшая производительность достигается с портами в режиме EPP 1.9.

    #device         puc

Раскомментируйте это устройство, если у вас есть ''простая'' последовательная или параллельная PCI карта, поддерживаемая драйвером puc(4).

    # PCI Ethernet NICs.
    device          de         # DEC/Intel DC21x4x (''Tulip'')
    device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
    device          ixgb       # Intel PRO/10GbE Ethernet Card
    device          txp        # 3Com 3cR990 (''Typhoon'')
    device          vx         # 3Com 3c590, 3c595 (''Vortex'')

Драйвера сетевых карт PCI. Закомментируйте или удалите драйвера тех карт, которые отсутствуют в вашей системе.

    # PCI Ethernet NICs that use the common MII bus controller code.
    # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
    device          miibus     # MII bus support

Поддержка шины MII требуется для некоторых PCI 10/100 Ethernet карт, которые используют MII-совместимые передатчики или реализуют интерфейс управления передатчиком, который имитирует MII. Добавление device miibus в конфигурационный файл ядра включает поддержку стандартного API miibus и всех драйверов PHY, включая стандартный для тех PHY, которые не обрабатываются специфическим образом конкретным драйвером.

    device          dc         # DEC/Intel 21143 and various workalikes
    device          miibus     # MII bus support
    device          bfe        # Broadcom BCM440x 10/100 Ethernet
    device          bge        # Broadcom BCM570xx Gigabit Ethernet
    device          dc         # DEC/Intel 21143 and various workalikes
    device          fxp        # Intel EtherExpress PRO/100B (82557, 82558)
    device          pcn        # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
    device          re         # RealTek 8139C+/8169/8169S/8110S
    device          rl         # RealTek 8129/8139
    device          sf         # Adaptec AIC-6915 (''Starfire'')
    device          sis        # Silicon Integrated Systems SiS 900/SiS 7016
    device          sk         # SysKonnect SK-984x & SK-982x gigabit Ethernet
    device          ste        # Sundance ST201 (D-Link DFE-550TX)
    device          ti         # Alteon Networks Tigon I/II gigabit Ethernet
    device          tl         # Texas Instruments ThunderLAN
    device          tx         # SMC EtherPower II (83c170 ''EPIC'')
    device          vr         # VIA Rhine, Rhine II
    device          wb         # Winbond W89C840F
    device          xl         # 3Com 3c90x (''Boomerang'', ''Cyclone'')

Драйвера, которые используют контроллер шины MII.

    # ISA Ethernet NICs.  pccard NICs included.
    device          cs         # Crystal Semiconductor CS89x0 NIC
    # 'device ed' requires 'device miibus'
    device          ed         # NE[12]000, SMC Ultra, 3c503, DS8390 cards
    device          ex         # Intel EtherExpress Pro/10 and Pro/10+
    device          ep         # Etherlink III based cards
    device          fe         # Fujitsu MB8696x based cards
    device          ie         # EtherExpress 8/16, 3C507, StarLAN 10 etc.
    device          lnc        # NE2100, NE32-VL Lance Ethernet cards
    device          sn         # SMC's 9000 series of Ethernet chips
    device          xe         # Xircom pccard Ethernet

    # ISA devices that use the old ISA shims
    #device         le

Драйвера сетевых карт ISA. Ознакомьтесь с файлом `/usr/src/sys/i386/conf/NOTES`, чтобы узнать, какие сетевые карты каким драйвером поддерживаются.

    # Wireless NIC cards
    device          wlan       # 802.11 support
    device          an         # Aironet 4500/4800 802.11 wireless NICs.
    device          awi        # BayStack 660 and others
    device          wi         # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
    #device         wl         # Older non 802.11 Wavelan wireless NIC.

Поддержка различных беспроводных карт.

    device   mem           # Memory and kernel memory devices

Устройства системной памяти.

    device   io            # I/O device

Этот параметр позволяет процессу получение привилегий ввода/вывода. Он полезен для написания пользовательских программ, работающих с оборудованием непосредственно. Необходим для работы X Window system.

    device   random        # Entropy device

Генератор случайных чисел для криптографической защиты.

    device   ether         # Ethernet support

ether необходим лишь в случае, если у вас есть сетевая карта. Он включает поддержку стандартного кода протокола Ethernet. В FreeBSD 4.X используйте строку pseudo-device ether.

    device   sl            # Kernel SLIP

sl -- это поддержка SLIP. SLIP был практически вытеснен PPP, который легче настраивается, лучше подходит для соединений модем-модем и имеет больше возможностей. В FreeBSD 4.X используйте строку pseudo-device sl.

    device   ppp           # Kernel PPP

Поддержка PPP в ядре для соединений dial-up. Также существует версия PPP, реализованного как приложение, использующее tun, и предлагающее большую гибкость и большее количество возможностей, как, например, соединение при необходимости (наличии обращения к сети). В FreeBSD 4.X используйте строку pseudo-device ppp.

    device   tun           # Packet tunnel.

Используется пользовательским программным обеспечением PPP. Обратитесь к разделу PPP этой книги за дальнейшей информацией. В FreeBSD 4.X используйте строку pseudo-device tun.

    device   pty           # Pseudo-ttys (telnet etc)

''псевдо-терминал'' или имитированный порт для входа. Используется входящими `telnet` и `rlogin`-сессиями, приложением xterm и некоторыми другими приложениями, такими как Emacs.

> Замечание: В FreeBSD 4.X используйте строку pseudo-device pty number. Число после pty определяет количество pty, которое необходимо создать. Если вам необходимо более, чем стандартное (16) количество окон xterm и/или удаленных входов, увеличьте это число в соответствии с вашими потребностями, но не более чем до 256.

    device   md            # Memory ''disks''

Псевдоустройства дисков в памяти. В FreeBSD 4.X используйте строку pseudo-device md

    device   gif           # IPv6 and IPv4 tunneling

Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Начиная с FreeBSD 4.4 устройство gif является ''автоклонируемым'' и вы должны использовать строку pseudo-device gif. Более ранним версиям FreeBSD 4.X требуется номер, например pseudo-device gif 4.

    device   faith         # IPv6-to-IPv4 relaying (translation)

Это псевдоустройство захватывает пакеты, которые были посланы ему и перенаправляет их даемону трансляции IPv4/IPv6. В FreeBSD 4.X используйте строку pseudo-device faith 1

    # The `bpf' device enables the Berkeley Packet Filter.
    # Be aware of the administrative consequences of enabling this!
    device   bpf           # Berkeley packet filter

Фильтр пакетов Berkeley. Это псевдоустройство позволяет переводить сетевые интерфейсы в ''неразборчивый'' (promiscuous) режим, в котором перехватывается любой пакет в широковещательной сети (например ethernet). Эти пакеты могут быть сохранены на диск и/или исследованы при помощи tcpdump(1). В FreeBSD 4.X используйте строку pseudo-device bpf.

> Замечание: Устройство bpf(4) также используется программой dhclient(8) для того, чтобы получить адрес шлюза по умолчанию и т.п. Если вы используете DCHP, не удаляйте эту опцию.

    # USB support
    device          uhci          # UHCI PCI->USB interface
    device          ohci          # OHCI PCI->USB interface
    device          usb           # USB Bus (required)
    #device         udbp          # USB Double Bulk Pipe devices
    device          ugen          # Generic
    device          uhid          # ''Human Interface Devices''
    device          ukbd          # Keyboard
    device          ulpt          # Printer
    device          umass         # Disks/Mass storage - Requires scbus and da
    device          ums           # Mouse
    device          urio          # Diamond Rio 500 MP3 player
    device          uscanner      # Scanners
    # USB Ethernet, requires mii
    device          aue           # ADMtek USB Ethernet
    device          axe           # ASIX Electronics USB Ethernet
    device          cue           # CATC USB Ethernet
    device          kue           # Kawasaki LSI USB Ethernet
    device          rue           # RealTek RTL8150 USB Ethernet

Поддержка различных USB устройств.

    # FireWire support
    device          firewire      # FireWire bus code
    device          sbp           # SCSI over FireWire (Requires scbus and da)
    device          fwe           # Ethernet over FireWire (non-standard!)

Поддержка различных устройств Firewire.

За дальнейшей информацией о дополнительных устройствах, поддерживаемых FreeBSD, обратитесь к файлу `/usr/src/sys/i386/conf/NOTES`.

## 8.4.1. Конфигурации с большим количеством оперативной памяти (PAE)

Машины с большим количеством оперативной памяти, в которых требуется более 4 гигабайт в пользовательском адресном пространстве и адресном пространстве ядра (User+Kernel Virtual Address, KVA) в обычном случае не смогут использовать более 4 гигабайт. Для решения этой проблемы Intel добавили поддержку 36-битной адресации в Pentium® Pro и более поздних моделях процессоров.

Расширение физического адресного пространства (PAE) в процессорах Intel® Pentium Pro и более поздних позволяет использовать до 64 гигабайт оперативной памяти. FreeBSD имеет поддержку этой возможности посредством опции ядра PAE, доступной в FreeBSD 4.9-RELEASE, FreeBSD 5.1-RELEASE и более поздних. В связи с ограничениями архитектуры Intel, не делается никакого различия между памятью ниже или выше 4 гигабайт. Память, размещенная выше 4 гигабайт, просто добавляется к доступной памяти.

Для того, чтобы включить PAE в ядре, просто добавьте приведенную строку в конфигурационный файл ядра:

    options            PAE

> Замечание: Поддержка PAE в FreeBSD существует только для процессоров Intel IA-32. Также следует заметить, что PAE в FreeBSD не было полностью протестировано и должно считаться находящимся в состоянии бета-тестирования по сравнению с другими, стабильными возможностями FreeBSD.

Поддержка PAE в FreeBSD имеет следующие ограничения:

- Процесс не может получить доступ к более, чем 4 гигабайтам пространства VM.

- KLD модули не могут быть загружены в ядро с включенной поддержкой PAE из-за разницы в окружении для сборки модулей и самого ядра.

- Драйверы устройств, которые не используют интерфейс bus_dma(9), приведут к повреждению информации в ядре с включенным PAE. Не рекомендуется использовать такие драйверы. По этой причине в FreeBSD 5.X включен конфигурационный файл ядра `PAE`, из которого удалены все драйверы, о которых известно, что они не работают при включенной поддержке PAE.

- Некоторые системные переменные определяют использование ресурсов памяти по количеству доступной физической памяти. Такие переменные могут привести к ненужному чрезмерному выделению памяти из-за особенностей работы системы PAE. Один из таких примеров -- переменная kern.maxvnodes, которая управляет максимальным количеством vnode, разрешенных в ядре. Рекомендуется установить эту и подобные ей переменные вручную в адекватные значения.

- Возможно, понадобится увеличить пространство виртуальных адресов ядра (KVA) или уменьшить какую-либо переменную (см. выше), значение которой было неоправданно велико и могло привести к исчерпанию KVA. Для этого может быть использована опция ядра KVA_PAGES.

В случае сомнений относительно производительности и стабильности рекомендуется обратиться к странице руководства tuning(7). Страница руководства pae(4) содержит свежую информацию о поддержке PAE в FreeBSD.

### Примечания

[1] | Алгоритм автоматической настройки устанавливает maxusers равным количеству памяти в системе, минимум 32 и максимум 384.

Пред. | Начало | След.
Сборка и установка собственного ядра | Уровень выше | Создание файлов устройств

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

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