lab.MIT.03
.pdfЛабораторная работа № 3
Компиляция ядра ОС FreeBSD Unix
Краткие теоретические сведения
Ядро – это основная часть операционной системы FreeBSD. Оно обеспечивает базовую функциональность операционной системы: создает процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам. Ядро – это совокупность модулей операционной системы, которые постоянно находятся в оперативной памяти для более эффективной организации вычислительного процесса. При формировании состава ядра необходимо учитывать два противоречивых требования. В состав ядра должны войти наиболее часто используемые системные модули. Количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, был не слишком большим.
Традиционно во FreeBSD использовалось монолитное ядро. Это означает, что ядро – это одна большая программа, которая поддерживает фиксированный набор устройств и в случае, если необходимо изменить его поведение, требуется сборка нового ядра и перезагрузка компьютера уже с новым ядром.
На сегодняшний день FreeBSD быстро продвигается к модели, в которой большая часть функциональности содержится в модулях, которые могут быть при необходимости динамически загружены и выгружены из ядра. Это позволяет ядру использовать устройства, которые появляются во время работы системы (например, устройства USB, PCMCIA) или добавлять новую функциональность в ядро, которая не была необходима в момент первоначальной сборки ядра.
Несмотря на это, всё ещё иногда бывает необходимо, чтобы некоторая функциональность была включена в ядро статически. В некоторых случаях это продиктовано тем, что эта функциональность настолько сильно привязана к ядру, что не может быть динамически загружаемой. В других случаях это может быть просто потому, что никто не уделил время написанию динамически загружаемого модуля для этой функциональности.
Сборка пользовательского ядра – одна из наиболее важных операций, которую должен освоить администратор FreeBSD. В отличие от ядра GENERIC, которое должно поддерживать широкий спектр аппаратного обеспечения, пользовательское ядро содержит поддержку аппаратного обеспечения конкретного компьютера. Это дает следующие преимущества:
-меньшее время загрузки;
-уменьшение объема оперативной памяти, которую занимает ядро;
-поддержка дополнительных устройств, отсутствующих в ядре GENERIC.
Сборка и установка пользовательского ядра
Замечание: для выполнения настройки и компиляции ядра необходимо зарегистрироваться в системе под учетной записью администратора (root).
В каталоге /usr/src/sys, который доступен также как /sys, будет происходить сборка пользовательского ядра. Этот каталог содержит множество каталогов, представляющих собой различные части ядра, но наиболее важными являются каталоги /usr/src/sys/arch/conf, в котором находится конфигурационный файл ядра и
/usr/src/sys/compile, в котором собирается ядро (arch может быть i386, alpha, amd64, ia64, powerpc, sparc64 или рс98). Все, что находится внутри каталога определенной архитектуры, относится только к этой архитектуре; остальной код является машинно-независимым и общим для всех платформ, на которые FreeBSD может быть перенесена. Версии FreeBSD до 5.Х поддерживали только архитектуры i386, alpha и рс98.
Замечание: в примерах подразумевается использование архитектуры i386.
Если каталог /usr/src/sys отсутствует, это означает, что исходные коды ядра (src/sys) не были установлены. Для их установки используется утилита sysinstall (/stand/sysinstall во FreeBSD версий младше, чем 5.2). Для настройки и компиляции нового ядра необходимо выполнить следующие действия.
1. Перейти в каталог /usr/src/sys/i386/conf и скопировать файл конфигурации GENERIC в файл с выбранным именем. Например:
#cd /usr/src/sys/i386/conf
#ср GENERIC MYKERNEL
2.Открыть файл MYKERNEL в любом текстовом редакторе, например ee и внести необходимые изменения.
3.Собрать и установить новое ядро. Существует два способа, которые позволяют это сделать.
1
Способ 1. Сборка и установка ядра традиционным способом.
1.Выполнить утилиту config для того, чтобы сгенерировать исходные коды ядра.
# /usr/sbin/config MYKERNEL
2.Перейти в каталог, в котором собирается ядро.
# cd ../compile/MYKERNEL
Для FreeBSD версий более ранних, чем 5.0, вместо этого необходимо выполнить:
#cd ../../compile/MYKERNEL
3. Собрать ядро.
#make cleandepend
#make depend
#make
4. Установить новое ядро.
# make install
Способ 2. Сборка и установка ядра новым способом (требуется дополнительно установить исходные коды src/base).
1.Перейти в каталог /usr/src.
# cd /usr/src
2.Собрать ядро.
#make buildkernel KERNCONF=MYKERNEL
3. Установить новое ядро.
#make installkernel KERNCONF=MYKERNEL
Во FreeBSD 4.2 и в более ранних, необходимо заменить KERNCONF= на KERNEL.
По умолчанию, при построении ядра, все модули ядра так же будут пересобраны. Если необходимо обновить ядро быстрее или построить только определённые модули, то нужно отредактировать файл /etc/make.conf перед началом процесса сборки ядра:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Эта переменная устанавливает список модулей, которые нужно построить вместо построения всех модулей. Также можно собрать ядро без модулей, для этого в файл /etc/make.conf необходимо добавить строчку
NO_MODULES="YES".
Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel, а старое ядро будет перемещено в /boot/kernel.old/kernel. Теперь необходимо перезагрузить систему для того, чтобы использовать новое ядро.
Во FreeBSD 4.X и более ранних, ядро устанавливается в /kernel, модули в /modules, а старое ядро сохраняется в /kernel.old. Другие файлы, относящиеся к процессу загрузки, такие как загрузчик loader и его конфигурационные файлы, размещаются в /boot. Модули сторонних производителей могут быть помещены в
/modules.
Определить состав оборудования можно, прочитав содержимое файла /var/run/dmesg.boot после загрузки ядра GENERIC
FreeBSD содержит набор утилит для определения установленного оборудования: dmesg(8), pciconf(8), atacontrol(8) и camcontrol(8). Утилита dmesg(8) предназначена для вывода на экран последних сообщений ядра. В процессе загрузки операционной системы ядро определяет оборудование. Информация об этом может быть найдена при помощи данной утилиты. Однако в процессе работы системы информация, помещённая в dmesg(8), может быть вытеснена новыми сообщениями ядра. Чтобы всегда иметь доступ к начальным, «загрузочным» сообщениям ядра, можно обратиться к файлу /var/run/dmesg.boot. Для более точного определения списка установленного оборудования средствами файла /var/run/dmesg.boot рекомендуется загружать ядро GENERIC.
Конфигурационный файл
Формат конфигурационного файла достаточно прост. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется. Ниже описываются параметры, в порядке, в котором они появляются в GENERIC, хотя некоторые родственные параметры сгруппированы вместе в одном разделе (например, сетевые средства), даже, если на самом деле они разбросаны по всему файлу GENERIC. Полный список архитектурно-зависимых параметров и устройств находится в файле NOTES в том же каталоге, что и GENERIC. Архитектурно независимые параметры находятся в /usr/src/sys/conf/NOTES.
NOTES не существует во FreeBSD 4.X. Детальное описание параметров и устройств из GENERIC находится в файле LINT. Структура конфигурации ядра во FreeBSD 5.Х прошла через множество серьезных изменений. Одно из таких изменений – перемещение параметров конфигурации драйверов в hints, и теперь они могут быть изменены и загружены динамически во время загрузки системы, а в LINT их больше нет. По этой и другим причинам LINT был переименован в NOTES и в основном по-прежнему соответствует своему назначению: информирование пользователей о
2
доступных параметрах.
Во FreeBSD 5.X и более поздних версиях можно создать LINT, выполнив:
# cd /usr/src/sys/i386/conf && make LINT
Это пример конфигурационного файла ядра GENERIC с различными дополнительными комментариями для
FreeBSD 7.2-RELEASE.
#
#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: src/sys/i386/conf/GENERIC,v 1.474.2.17.2.1 2009/04/15 03:14:26 kensmith Exp $
cpu |
I486_CPU |
cpu |
I586_CPU |
cpu |
I686_CPU |
Эта опция указывает тип процессора, который используется в системе. В конфигурационном файле может быть несколько вхождений этой опции, но для пользовательского ядра лучше указывать только тот тип процессора, который установлен в системе. Чтобы узнать тип установленного процессора, можно воспользоваться файлом /var/run/dmesg.boot, в котором содержится протокол загрузки системы.
Поддержка типа I386_CPU все ещё существует в исходных текстах FreeBSD, но по умолчанию отключена в ветках -STABLE и -CURRENT. Это означает, что для того, чтобы установить FreeBSD на систему с процессором i386, можно использовать следующие способы.
1.Установить более раннюю версию FreeBSD.
2. Собрать систему и ядро на более новой машине и установить на 386 используя уже собранные файлы в /usr /obj.
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
Обычный процесс сборки FreeBSD включает генерацию отладочной информации (опцию -g gcc(1)) при сборке ядра. Того же самого эффекта можно добиться используя опцию config(8) -g, в случае, если используется «традиционный» способ сборки ядра.
options |
SCHED_ULE |
# ULE scheduler |
3
Новый планировщик FreeBSD, который был специально разработан для SMP, но отлично работает также и на однопроцессорных системах. Для замены на стандартный планировщик необходимо заменить SCHED_ULE на SCHED_4BSD в файле конфигурации ядра.
options |
PREEMPTION |
# Enable kernel thread preemption |
Позволяет высокоприоритетным нитям ядра вытеснять конкурентов, находящихся в режиме выполнения. Эта опция может помочь повысить реактивность системы по отношению к внешним воздействиям, например, за счет снижения латентности нитей, обрабатывающих прерывания.
options |
INET |
# InterNETworking |
Поддержка сетевых возможностей. Оставьте эту опцию включенной, даже если вы не планируете подключаться к сети. Большинство программ требуют, чтобы работал хотя бы интерфейс обратной связи (loopback) (т.е. создание сетевых соединений внутри вашего ПК), так что эта опция в принципе является обязательной.
options |
INET6 |
# IPv6 communications protocols |
Включает поддержку коммуникационных протоколов IPv6. |
||
options |
SCTP |
# Stream Control Transmission Protocol |
Включает поддержку протокола SCTP. |
|
|
options |
FFS |
# Berkeley Fast Filesystem |
Включает поддержку основной файловой системы. Этот параметр необходимо оставить, если планируется загрузка системы с жесткого диска.
options |
SOFTUPDATES |
# Enable FFS Soft Updates support |
Этот параметр включает в ядре технологию Soft Updates, которая повышает скорость записи на диск. Несмотря на то, что эта технология включена в ядре, она должна быть включена для каждого диска.
options |
UFS_ACL |
# Support for access control lists |
Этот параметр включает в ядре поддержку списков управления доступом (ACL). Основывается на использовании расширенных атрибутов и UFS2. ACL включен по умолчанию и не должен выключаться. Иначе: списки управления доступом будут удалены, если они использовались в файловой системе и нарушена защита файлов.
options |
UFS_DIRHASH |
# Improve performance on big directories |
Этот параметр позволяет повысить скорость дисковых операций для больших каталогов за счет использования дополнительного объема оперативной памяти. Для большого сервера или рабочей станции рекомендуется оставить его включенным, и выключить в системе, для которой величина свободной оперативной памяти имеет больший приоритет, чем время доступа к дискам, например для брандмауэра.
options |
UFS_GJOURNAL |
# Enable gjournal-based UFS journaling |
Включает ведение gjournal журнала для UFS файловой системы.
options |
MD_ROOT |
# MD is a potential root device |
Этот параметр включает поддержку использования дисков в памяти для корневой файловой системы.
options |
NFSCLIENT |
# Network Filesystem Client |
options |
NFSSERVER |
# Network Filesystem Server |
options |
NFSLOCKD |
# Network Lock Manager |
options |
NFS_ROOT |
# NFS usable as /, requires NFSCLIENT |
Сетевая файловая система. Если не планируется монтировать разделы с файлового сервера UNIX через ТСР/IР, можно исключить этот параметр из конфигурационного файла ядра.
options |
MSDOSFS |
# MSDOS Filesystem |
4
Файловая система MS-DOS. Если не планируется монтировать DOS разделы жесткого диска в момент загрузки, то можно закомментировать этот параметр. Необходимый модуль автоматически загрузится при первом монтировании DOS раздела. Кроме того, пакет emulators/mtools позволяет получить доступ к DOS дискам без необходимости их монтировать и размонтировать.
options |
CD9660 |
# ISO 9660 Filesystem |
Поддержка файловой системы ISO 9660 для компакт-дисков. Если привод компакт-дисков отсутствует или редко монтируются компакт-диски с данными, можно закомментировать эту строку, так как необходимый модуль будет загружен автоматически при первом монтировании компакт-диска с данными. Для монтирования аудио компакт-дисков эта файловая система не потребуется.
options |
PROCFS |
# Process filesystem |
Файловая система процессов. Это «виртуальная» файловая система монтируемая в /prос, которая позволяет таким приложениям, как ps выдавать больше информации о запущенных процессах. Во FreeBSD 5.X и выше, использование PROCFS не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без PROCFS: в отличие от FreeBSD 4.X, новые системы FreeBSD 5.X по умолчанию не монтируют файловую систему процессов. Более того, ядра 6.X-CURRENT, которые используют PROCFS, должны также включать поддержку PSEUDOFS:
options |
PSEUDOFS |
# Pseudo-filesystem framework |
Ядра 6.X, которые используют PROCFS, должны также включать поддержку PSEUDOFS.
options |
GEOM_PART_GPT |
# GUID Partition Tables |
Этот параметр делает возможным наличие большого количества разделов на одном диске.
options |
GEOM_LABEL |
# |
Provides labelization |
options |
COMPAT_43TTY |
# |
BSD 4.3 TTY compat [KEEP THIS!] |
Совместимость с 4.3 BSD. Для некоторых приложений наличие этого параметра обязательно.
options |
COMPAT_FREEBSD4 |
# Compatible with FreeBSD4 |
options |
COMPAT_FREEBSD5 |
# Compatible with FreeBSD5 |
options |
COMPAT_FREEBSD6 |
# Compatible with FreeBSD6 |
Эти параметры требуется во FreeBSD 7.X для платформ i386 и alpha для поддержки приложений, собранных на младших версиях FreeBSD, которые используют старые интерфейсы вызовов. Рекомендуется использовать данный параметр во всех системах на платформах i386 и alpha, в которых могут запускаться старые приложения. Платформы, поддержка которых появилась только во FreeBSD 5.X, например, ia64 и sparc64, не требуют этого параметра.
options |
SCSI_DELAY=5000 # Delay (in ms) before probing SCSI |
Этот параметр заставляет ядро приостановиться на 5 секунд перед тем, как идентифицировать каждое устройство SCSI в системе. Если установлены только жесткие диски IDE, то можно закомментировать этот параметр.
options |
KTRACE |
# ktrace(1) support |
Включает поддержку трассировки процессов, что удобно при отладке.
options |
SYSVSHM |
# SYSV-style shared memory |
Этот параметр предоставляет поддержку разделяемой памяти System V. Наиболее распространенное применение этого параметра – расширение XSHM в X, которое многие приложения, интенсивно работающие с графикой, будут автоматически использовать для повышения скорости работы. Если используется X, то этот параметр необходимо оставить.
options |
SYSVMSG |
# SYSV-style message queues |
Поддержка сообщений System V.
5
options |
SYSVSEM |
# SYSV-style semaphores |
Поддержка семафоров System V.
Замечание: утилита ipcs с параметром р покажет все процессы, которые используют любую из этих возможностей 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 |
ADAPTIVE_GIANT |
# Giant mutex is adaptive |
Giant – имя механизма защиты («спящего» мьютекса) для крупных наборов ресурсов ядра. Этот параметр можно оставить без изменения.
options |
STOP_NMI |
# Stop CPUS using NMI instead of IPI |
options |
AUDIT |
# Security event auditing |
#options |
KDTRACE_HOOKS |
# Kernel DTrace hooks |
# To make an SMP kernel, the next two lines are needed |
||
options |
SMP |
# Symmetric MultiProcessor Kernel |
Включает поддержку SMP в ядре. |
|
|
device |
apic |
# I/O APIC |
Устройство apic разрешает использование набора I/O APIC для распределения прерываний. Оно может быть использовано как с однопроцессорными, так и с многопроцессорными ядрами (для последних наличие apic является обязательным). Для поддержки многопроцессорности необходимо добавить параметр:
# CPU frequency control device cpufreq
Включает управление частотой процессора.
# Bus support. device eisa
Этот параметр включает автоопределение и конфигурирование всех устройств на шине EISA.
device pci
Этот параметр включает автоопределение карт PCI и проксирование из шины PCI в шину ISA.
#Floppy drives |
|
|
device |
fdc |
|
Контроллер флоппи-диска. |
|
|
#ATA and ATAPI devices |
|
|
device |
ata |
|
Этот драйвер поддерживает все устройства АТА и ATAPI. |
||
device |
atadisk |
# АТА disk drives |
Эта строка необходима вместе с device ata для поддержки дисков АТА.
device |
ataraid |
# АТА RAID drives |
6
Эта строка необходима вместе с device 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 |
# EISA AHA1742 family |
||
device |
ahb |
||
device |
ahc |
# AHA2 94 0 and onboard AIC7xxx devices |
|
options |
AHC_REG_PRETTY_PRINT |
# Print register bitfields in debug |
|
device |
ahd |
|
# output. Adds ~128k to driver |
# AHA39320/29320 and onboard AIC79xx devices |
|||
options |
AHD_REG_PRETTY_PRINT |
# Print register bitfields in debug |
|
device |
amd |
# AMD |
# output. Adds ~215k to driver |
53C974 (Teckram DC-390(T)) |
|||
device |
hptiop |
# Highpoint RocketRaid 3xxx series |
|
device |
isp |
# Qlogic family |
|
#device |
ispfw |
# Firmware for QLogic HBAsnormally a module |
|
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 |
# SCSI bus (required for SCSI) |
|
device |
scbus |
|
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, если какой-либо из этих драйверов включен в конфигурацию ядра.
7
# 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 |
device |
hptmv |
# options |
# 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 |
# Adaptec FSA RAID |
|
device |
aac |
|
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-контроллеры. Необходимо закомментировать те устройства, которых нет в системе. Если в системе находятся исключительно IDE устройства, то можно удалить все эти строки.
#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. |
||
device |
psm |
# PS/2 mouse |
Поддержка PS/2 устройств (манипулятор мышь). |
||
device |
kbdmux |
# keyboard multiplexer |
Поддержка мультиплексора клавиатур. |
|
|
device |
vga |
# VGA video card driver |
Драйвер видеокарты. |
|
|
#splash screen/screen saver |
# Splash screen and screen saver support |
|
device |
splash |
Заставка при загрузке. Хранители экрана также требуют этого устройства. Во 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.
device |
agp |
# support several AGP chipsets |
8
Этот параметр включает поддержку AGP и AGP GART.
#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
Устройство таймера для управления энергопотреблением, АРМ и ACPI.
#PCCARD (PCMCIA) support
#PCMCIA and cardbus bridge support
device |
cbb |
# cardbus (yenta) bridge |
device |
pecard |
# PC Card (16-bit) bus |
device |
cardbus |
# CardBus (32-bit) bus |
Поддержка PCMCIA. |
|
|
# Serial (COM) ports |
# 8250, 16 [45]50 based serial ports |
|
device |
sio |
|
device |
uart |
# Generic UART driver |
Четыре последовательных порта, которые известны как COM порты в мире MS-DOS и Windows.
Каждый последовательный порт требует уникального IRQ (кроме тех случаев, когда используется мультипортовая карта, которая поддерживает совместное использование прерываний), поэтому значения IRQ по умолчанию для COM3 и COM4 не могут быть использованы.
#Parallel port device ppc
Интерфейс параллельного порта на шине ISA.
device ppbus
Поддержка шины параллельного порта.
device lpt
#Parallel port bus (required)
#Printer
Поддержка принтеров на параллельном порту.
Замечание: три последних устройства необходимы для поддержка принтеров по параллельном порту.
device |
plip |
# TCP/IP over parallel |
Драйвер ТСР/IР через параллельный порт.
device |
ppi |
# Parallel port interface device |
Поддержка ввода/вывода общего назначения («geek port») + IEEE1284 ввода/вывода.
device |
vpo |
# Requires scbus and da |
Драйвер привода Iomega Zip. Требует наличия scbus и da. Наилучшая производительность достигается с портами в режиме ЕРР 1.9.
#device puc
Поддержка «простой» последовательной или параллельной PCI карта.
#PCI Ethernet NICs. |
# DEC/Intel DC21x4x ("Tulip") |
|
device |
de |
9
device |
em |
# Intel PRO/1000 adapter Gigabit Ethernet Card |
device |
igb |
# Intel PRO/1000 PCIE Server Gigabit Family |
device |
ixgb |
# Intel PRO/10GbE Ethernet Card |
device |
le |
# AMD Am7900 LANCE and Am79C9xx PCnet |
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 |
age |
# Attansic/Atheros L1 Gigabit Ethernet |
device |
age |
# Attansic/Atheros L1 Gigabit Ethernet |
device |
ale |
# Atheros AR8121/AR8113/AR8114 Ethernet |
device |
bce |
# Broadcom BCM5706/BCM5708 Gigabit Ethernet |
device |
bfe |
# Broadcom BCM440x 10/100 Ethernet |
device |
bge |
# Broadcom BCM570xx Gigabit Ethernet |
device |
dc |
# DEC/Intel 21143 and various workalikes |
device |
et |
# Agere ET1310 10/100/Gigabit Ethernet |
device |
fxp |
# Intel EtherExpress PRO/100B (82557, 82558) |
device |
jme |
# JMicron JMC250 Gigabit/JMC260 Fast Ethernet |
device |
lge |
# Level 1 LXT1001 gigabit Ethernet |
device |
msk |
# Marvell/SysKonnect Yukon II Gigabit Ethernet |
device |
nfe |
# nVidia nForce MCP on-board Ethernet |
device |
nge |
# NatSemi DP83820 gigabit Ethernet |
#device |
nve |
# nVidia nForce MCP on-board Ethernet Networking |
device |
pcn |
# AMD Am79C97x PCI 10/100 (precedence over 'le') |
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 |
sn |
# SMCs 9000 series of Ethernet chips |
device |
xe |
# Xircom pccard Ethernet |
Драйвера сетевых карт ISA. |
|
|
#Wireless NIC cards |
# 802.11 support |
|
device |
wlan |
10