Сборка и установка собственного ядра



Замечание: Для сборки ядра необходимо наличие всех исходных файлов FreeBSD.

Во-первых, давайте сделаем краткий обзор каталога, в котором будет происходить сборка ядра. Все каталоги, которые будут упоминаться, будут относительными по отношению к основному каталогу /usr/src/sys, который также доступен как каталог /sys. Этот каталог содержит множество подкаталогов, представляющих собой различные части ядра, но наиболее важным для нас будет каталог arch/conf, в котором вы будете редактировать конфигурационный файл ядра и в котором находится каталог compile, где будет собираться ваше ядро. arch может быть i386, amd64, ia64, powerpc, sparc64 или pc98 (альтернативная ветвь аппаратного обеспечения, популярная в Японии). Все, что находится внутри каталога определенной архитектуры, относится только к этой архитектуре; остальной код является машинно независимым и общим для всех платформ, на которые FreeBSD может быть потенциально портирована. Обратите внимание на логическую структуру каталогов, в которой каждое поддерживаемое устройство, каждая файловая система и каждая опция размещается в своём собственном каталоге.

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

Замечание: Если каталог /usr/src/sys отсутствует в вашей системе (или этот каталог пуст), то это значит, что исходные тексты не были установлены. Наиболее простой способ установить их — запустить sysinstall как пользователь root, выбрать Configure, потом Distributions, потом src, и после всего — All. Далее, проверьте наличие символической ссылки /sys/, и, если потребуется, создайте её:

# ln -s /usr/src/sys/ /sys/

Затем, перейдите в каталог arch/conf и скопируйте файл конфигурации GENERIC в файл с выбранным вами именем. Например:

# cd /usr/src/sys/ i386 /conf

# cp GENERIC MYKERNEL

По традиции имя состоит из букв в верхнем регистре, и если вы поддерживаете несколько компьютеров FreeBSD на различном оборудовании, хорошая идея добавлять это имя к имени хоста. Мы назвали ядро MYKERNEL в этом примере.

Подсказка: Помещение файла конфигурации ядра в /usr/src может быть плохой идеей. Если вы испытываете проблемы, их можно решить удалив /usr/src и начав все с начала. После этого обычно требуется несколько секунд, чтобы понять, что вы удалили собственный файл настройки ядра. Не редактируйте непосредственно GENERIC, он может быть также перезаписан и при следующем обновлении дерева исходных текстов, и изменения ядра будут потеряны.

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

Например:

# cd /usr/src/sys/ i386 /conf

# mkdir /root/kernels

# cp GENERIC /root/kernels/ MYKERNEL

# ln -s /root/kernels/ MYKERNEL

Теперь отредактируйте файл MYKERNEL в своём любимом текстовом редакторе. Если вы только начинаете, единственным доступным редактором скорее всего будет vi, который слишком сложен для того, чтобы описать его здесь, но в библиографии перечислено множество книг, в которых его использование хорошо освещено. Однако FreeBSD предоставляет более простой редактор ee, который, если вы — новичок, подойдёт вам больше всего. Не стесняйтесь изменять строки комментариев в начале файла, с тем, чтобы отобразить вашу конфигурацию или изменения, которые вы сделали по сравнению с GENERIC.

Если вам приходилось собирать ядро для SunOS или какой-либо другой операционной системы типа BSD, многое из того, что содержится в этом файле будет очень знакомо вам. Если же вы, напротив, использовали другую операционную систему, такую как DOS, файл конфигурации GENERIC может показаться вам крайне сложным, поэтому следуйте инструкциям в разделе Конфигурационный файл медленно и внимательно.

Замечание: Если вы синхронизируете дерево исходных текстов с деревом проекта FreeBSD, не забудьте свериться с файлом /usr/src/UPDATING перед обновлением. В этом файле описаны все важные вопросы и области исходного кода, требующие особого внимания. /usr/src/UPDATING всегда соответствует версии ваших исходных текстов FreeBSD, поэтому является более актуальным источником информации, чем это руководство.

Теперь вы должны скомпилировать ядро.

Сборка ядра

Замечание: Для сборки ядра необходимо наличие всех исходных файлов FreeBSD.

1. Перейдите в каталог /usr/src:

# cd /usr/src

2. Соберите ядро:

# make buildkernel KERNCONF= MYKERNEL

3. Установите новое ядро:

# make installkernel KERNCONF= MYKERNEL

Подсказка: По умолчанию, при построении ядра, все модули ядра так же будут пересобраны. Если вы хотите обновить ядро быстрее или построить только определённые модули, то вам нужно отредактировать файл /etc/make.conf перед началом процесса сборки ядра:

MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

Эта переменная устанавливает список модулей, которые нужно построить вместо построения всех модулей.

WITHOUT_MODULES = linux acpi sound ntfs

В этой переменной перечисляются основные модули, которые необходимо исключить из процесса сборки. За другими переменными, которые вы можете посчитать полезными в процессе сборки ядра, обращайтесь к странице справочника make.conf(5).

Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel, а старое ядро будет перемещено в /boot/kernel.old/kernel. Теперь перезагрузите систему для того, чтобы использовать новое ядро. Если что-то пойдёт не так, вы можете обратиться к разделу Решение проблем в конце этой главы, который может оказаться полезен. Не забудьте прочитать раздел, который объясняет как исправить ситуацию, когда ядро не загружается.

Замечание: Другие файлы, относящиеся к процессу загрузки, такие как загрузчик (loader(8)) и его конфигурационные файлы, размещаются в /boot. Модули сторонних производителей могут быть помещены в /boot/kernel, хотя пользователи должны знать, что очень важно, чтобы модули были синхронизированы с собранным ядром. Модули, не рассчитанные на работу с собранным ядром, могут вызвать нестабильность и некорректность работы.

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

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

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

include GENERIC

ident MYKERNEL

 

options    IPFIREWALL

options    DUMMYNET

options    IPFIREWALL_DEFAULT_TO_ACCEPT

options    IPDIVERT

Большинство администраторов оценят значительные преимущества перед старым способом — написанием конфигурационного файла ''с нуля'': ваш конфигурационный файл будет отображать только изменения относительно GENERIC. А после обновлений исходного кода, новые функциональные возможности, появившиеся в GENERIC, будут добавлены и в вашу конфигурацию, если только не препятствовать этому директивами nooptions или nodevice. Далее в этом разделе описывается типовой конфигурационный файл, его опции и устройства, а также их роли.

Замечание: Для сборки ядра со всеми возможными опциями (обычно используется для тестирования), выполните от имени суперпользователя (root) следующую команду:

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

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

machine   i386

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

cpu     I486_CPU

cpu     I586_CPU

cpu     I686_CPU

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

ident     GENERIC

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

#To statically compile in device wiring instead of /boot/device.hints

#hints     "GENERIC.hints"    # Default places to look for devices.

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

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

При обычном построении ядра в сборку включается отладочная информация: опция -g передается компилятору gcc(1).

options     SCHED_ULE    # ULE scheduler

Планировщик по умолчанию во FreeBSD. Оставьте эту опцию.

options     PREEMPTION    # Enable kernel thread preemption

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

options     INET         # InterNETworking

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

options     INET6        # IPv6 communications protocols

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

options     FFS          # Berkeley Fast Filesystem

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

options     SOFTUPDATES  # Enable FFS Soft Updates support

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

options     UFS_ACL      # Support for access control lists

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

options     UFS_DIRHASH  # Improve performance on big directories

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

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 (requires PSEUDOFS)

Файловая система процессов. Это ''виртуальная'' файловая система монтируемая в /proc, которая позволяет таким приложениям, как ps(1) выдавать вам больше информации о запущенных процессах. Использование PROCFS не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без PROCFS: система по умолчанию не монтирует файловую систему процессов.

options     PSEUDOFS     # Pseudo-filesystem framework

Ядра, которые используют PROCFS, должны также включать поддержку PSEUDOFS,

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, которые используют старые интерфейсы вызовов. Рекомендуется использовать данную опцию на всех системах на платформах i386, на которых могут запускаться старые приложения; платформы, поддержка которых появилась только в FreeBSD 5.X, например ia64 и Sparc64, не требуют этой опции.

options     COMPAT_FREEBSD5 # Compatible with FreeBSD5

Эта опция необходима для поддержки приложений, скомпилированных на FreeBSD 5.X и использующих интерфейс системных вызовов FreeBSD 5.X.

options     COMPAT_FREEBSD6 # Compatible with FreeBSD6

Эта опция требуется для поддержки приложений, собранных на FreeBSD версий 6.X, которые используют интерфейсы системных вызовов FreeBSD 6.X.

options     COMPAT_FREEBSD7 # Compatible with FreeBSD7

Эта опция требуется на системах FreeBSD версий 8 и более поздних для поддержки приложений, собранных для FreeBSD 7.X и использующих интерфейсы системных вызовов FreeBSD 7.X.

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

Этот параметр заставляет ядро приостановиться на 5 секунд перед тем, как идентифицировать каждое устройство SCSI в вашей системе. Если у вас установлены только жесткие диски IDE, вы можете игнорировать эту опцию, в противном случае, возможно, вы захотите уменьшить это число, для того чтобы ускорить загрузку. Естественно, если вы сделаете это, а у 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

Этот параметр разрешает формирование файлов устройств в /dev для клавиатур.

options     ADAPTIVE_GIANT # Giant mutex is adaptive.

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

Замечание: Для FreeBSD 8.0-RELEASE и более поздних версий, все мьютексы являются адаптивными по умолчанию, если обратное не указано специально опцией NO_ADAPTIVE_MUTEXES. Следовательно, Giant также адаптивен по умолчанию, и поэтому опция ADAPTIVE_GIANT была удалена из файла конфигурации ядра.

device     apic          # I/O APIC

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

Замечание: Устройство apic существует только на архитектурах i386. На других архитектурах этот конфигурационный параметр использовать не следует.

device     eisa

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

device     pci

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

# 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

options    AHC_REG_PRETTY_PRINT # Print register bitfields in debug

                                   # output. Adds ~128k to driver.

device     ahd   # AHA39320/29320 and onboard AIC79xx devices

options    AHD_REG_PRETTY_PRINT # Print register bitfields in debug

                                   # output. Adds ~215k to driver.

device     amd   # AMD 53C974 (Teckram DC-390(T))

device     isp   # Qlogic family

#device    ispfw # Firmware for QLogic HBAs- normally a module

device     mpt   # LSI-Logic MPT-Fusion

#device    ncr   # NCR/Symbios Logic

device     sym   # NCR/Symbios Logic (newer chipsets + those of `ncr')

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 устройства, вы можете удалить все эти строки. Строки вида *_REG_PRETTY_PRINT включают режим отладки для соответствующих драйверов.

# 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     arcmsr # Areca SATA II RAID

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     rr232x # Highpoint RocketRAID 232x

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     mfi   # LSI MegaRAID SAS

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     kbdmux   # keyboard multiplexer

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

device     vga   # VGA video card driver

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

device     splash # Splash screen and screen saver support

Заставка при загрузке. Хранители экрана также требуют этого устройства.

# 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 присутствует практически на любой платформе.

device     agp

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

# Power management support (see NOTES for more options)

#device     apm

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

# 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     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     lge   # Level 1 LXT1001 gigabit ethernet

device     msk   # Marvell/SysKonnect Yukon II Gigabit Ethernet

device     nge   # NatSemi DP83820 gigabit ethernet

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     stge  # Sundance/Tamarack TC9021 gigabit Ethernet

device     ti    # Alteon Networks Tigon I/II gigabit Ethernet

device     tl    # Texas Instruments ThunderLAN

device     tx    # SMC EtherPower II (83c170 ''EPIC'')

device     vge   # VIA VT612x gigabit ethernet

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

Generic 802.11 support. This line is required for wireless networking.

device     wlan_wep   # 802.11 WEP support

device     wlan_ccmp  # 802.11 CCMP support

device     wlan_tkip  # 802.11 TKIP support

Crypto support for 802.11 devices. These lines are needed if you intend to use encryption and 802.11i security protocols.

device     an    # Aironet 4500/4800 802.11 wireless NICs.

device     ath        # Atheros pci/cardbus NIC's

device     ath_hal    # Atheros HAL (Hardware Access Layer)

device     ath_rate_sample # SampleRate tx rate control for ath

device     awi   # BayStack 660 and others

device     wi    # WaveLAN/Intersil/Symbol 802.11 wireless NICs.

#device    wl    # Older non 802.11 Wavelan wireless NIC.

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

# Pseudo devices

device loop     # Network loopback

Стандартное устройство обратной связи для TCP/IP. Если вы запускаете telnet или FTP по отношению localhost (он же 127.0.0.1), то соединение пройдёт через это устройство. Этот параметр обязателен.

device random   # Entropy device

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

device ether    # Ethernet support

ether необходим лишь в случае, если у вас есть сетевая карта. Он включает поддержку стандартного кода протокола Ethernet.

device sl       # Kernel SLIP

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

device ppp      # Kernel PPP

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

device tun      # Packet tunnel.

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

 

device pty      # Pseudo-ttys (telnet etc)

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

device md       # Memory ''disks''

Псевдо-устройства дисков в памяти.

device gif      # IPv6 and IPv4 tunneling

Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Устройство gif является ''автоклонируемым'', и будет срздавать файлы устройств по мере необходимости.

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

Это псевдо-устройство захватывает пакеты, которые были посланы ему и перенаправляет их даемону трансляции IPv4/IPv6.

# The `bpf' device enables the Berkeley Packet Filter.

# Be aware of the administrative consequences of enabling this!

# Note that 'bpf' is required for DHCP.

device bpf      # Berkeley packet filter

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

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

# USB support

device     uhci     # UHCI PCI->USB interface

device     ohci     # OHCI PCI->USB interface

device     ehci     # EHCI PCI->USB interface (USB 2.0)

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     ural     # Ralink Technology RT2500USB wireless NICs

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     cdce     # Generic USB over 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.


Дата добавления: 2018-10-26; просмотров: 190; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!