diff --git a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml index 99b612c820..338e3bffcb 100644 --- a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml @@ -4,7 +4,7 @@ $FreeBSD$ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml,v 1.35 2007/06/26 11:42:42 den Exp $ - Original revision: 1.171 + Original revision: 1.194 --> @@ -107,8 +107,8 @@ написанию динамически загружаемого модуля для этой функциональности. - Сборка собственного ядра — один из наиболее важных ритуалов, через который - должен пройти практически любой пользователь BSD. Несмотря на + Сборка собственного ядра — один из наиболее важных ритуалов, + совершаемых опытными пользователями BSD. Несмотря на длительность этого процесса, ваша &os; останется только в выигрыше. В отличие от ядра GENERIC, которое должно поддерживать широкий спектр аппаратного обеспечения, собственное ядро содержит поддержку @@ -124,9 +124,13 @@ - Уменьшение использования памяти. Собственное ядро часто использует меньше - памяти, чем ядро GENERIC, что очень важно, - поскольку ядро всегда находится в физической памяти. Именно по этой + Уменьшение использования памяти. + Собственное ядро часто использует меньше памяти, чем ядро + GENERIC, так как из него исключены + лишние драйвера и неиспользуемые функциональные возможности. + Это важно тем, что часть оперативной памяти постоянно занята + кодом ядра и поэтому не может быть выделена приложениям. + Именно по этой причине собственное ядро особенно полезно при использовании систем с малым объемом оперативной памяти. @@ -139,6 +143,139 @@ + + + + + Tom + Rhodes + Написал + + + + Определение аппаратного обеспечения + + Перед тем, как углубиться в конфигурирование ядра, было бы разумно + составить перечень установленного в компьютер аппаратного обеспечения. + Если &os; не является основной операционной системой, то перечень + оборудования может быть легко составлен на основании анализа конфигурации + текущей операционной системы. Например, Диспетчер устройств + (Device Manager) от µsoft; обычно содержит + необходимую информацию об установленных устройствах. + Диспетчер устройств находится на панели + управления (control panel). + + + У некоторых версий µsoft.windows; есть значок + Система (System), вызов которого + отобразит экран, содержащий среди прочих и Диспетчер + устройств. + + + Если других операционных систем на машине не установлено, системному + администратору придется искать эту информацию самостоятельно. + Один из методов подразумевает использование утилиты &man.dmesg.8; + и команды &man.man.1;. У большинства драйверов во &os; есть страницы + справочника, содержащие список поддерживаемого оборудования, + а найденные во время начальной загрузки устройства будут перечислены + в &man.dmesg.8;. К примеру, следующие строки информируют о том, + что драйвер psm обнаружил мышь: + + psm0: <PS/2 Mouse> irq 12 on atkbdc0 +psm0: [GIANT-LOCKED] +psm0: [ITHREAD] +psm0: model Generic PS/2 mouse, device ID 0 + + Этот драйвер необходимо будет включить в конфигурацию собственного + ядра или загрузить посредством &man.loader.conf.5;. + + В некоторых случаях dmesg отображает + только системные сообщения вместо сообщений начальной загрузки. + В таких случаях необходимо обращаться к файлу + /var/run/dmesg.boot. + + Еще один метод нахождения аппаратного обеспечения подразумевает + использование достаточно информативной утилиты &man.pciconf.8;. + Например: + + ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00 + vendor = 'Atheros Communications Inc.' + device = 'AR5212 Atheros AR5212 802.11abg wireless' + class = network + subclass = ethernet + + Эта часть вывода, полученная в результате запуска команды + pciconf , показывает, что драйвер + ath обнаружил беспроводное Ethernet устройство. + Набрав man ath, вы + получите страницу справочника &man.ath.4;. + + Также, для извлечения необходимой информации, можно воспользоваться + ключом к команде &man.man.1;. В вышеприведенном + случае можно набрать: + + &prompt.root; man -k Atheros + + чтобы получить страницы справочника, содержащие определенное + слово: + + ath(4) - Atheros IEEE 802.11 wireless network driver +ath_hal(4) - Atheros Hardware Access Layer (HAL) + + Теперь, имея в распоряжении перечень аппаратного оборудования, + можно безбоязненно приступить к сборке специализированного ядра. + + + + Драйвера, подсистемы и модули ядра + + + kernel + drivers / modules / subsystems + + + Перед построением специализированного ядра, обдумайте причины, + побудившие вас к этому. Если требуется поддержка специального + оборудования, то она наверняка уже реализована в виде модуля. + + Модули ядра находятся в каталоге + /boot/kernel, и они могут + быть динамически включены в работающее ядро при помощи &man.kldload.8;. + Если не все, то большинство драйверов существуют в виде модулей, + и у них есть соответствующая страница справочника. К примеру, + в предыдущем разделе упоминался драйвер ath + беспроводного Ethernet устройства. Соответствующая ему страница + справочника гласит: + + Alternatively, to load the driver as a module at boot time, place the + following line in &man.loader.conf.5: + + if_ath_load="YES" + + Как уже выше сказано, добавление строки + if_ath_load="YES" в файл + /boot/loader.conf позволит динамически + загружать этот модуль во время загрузки системы. + + В некоторых случаях, однако, интересующего вас модуля + не существует. Чаще всего это справедливо для определенных подсистем + и очень важных драйверов. Например, поддержка файловой системы &os; + (FFS) является обязательной опцией в ядре. + Как и поддержка сети (INET). К сожалению, единственный способ + определить является ли драйвер обязательным — это проверить + наличие соответствующего модуля. + + + Довольно легко удалить встроенную поддержку устройства или + опцию, получив тем самым неработоспособное ядро. Например, если + драйвер &man.ata.4; изъят из конфигурации ядра, то система, + использующая диски ATA, может не загрузиться + без записи, добавленной в loader.conf. + Если есть сомнения, проверьте модуль, и только потом оставьте + поддержку в ядре. + + + Сборка и установка собственного ядра @@ -199,12 +336,12 @@ в файл с выбранным вами именем. Например: &prompt.root; cd /usr/src/sys/i386/conf -&prompt.root; cp GENERIC MYKERNEL +&prompt.root; cp GENERIC MYKERNEL По традиции имя состоит из букв в верхнем регистре, и если вы поддерживаете несколько компьютеров &os; на различном оборудовании, хорошая идея добавлять это имя к имени хоста. Мы назвали ядро - MYKERNEL в этом примере. + MYKERNEL в этом примере. Помещение файла конфигурации ядра в /usr/src @@ -229,7 +366,7 @@ &prompt.root; ln -s /root/kernels/MYKERNEL - Теперь отредактируйте файл MYKERNEL в своём + Теперь отредактируйте файл MYKERNEL в своём любимом текстовом редакторе. Если вы только начинаете, единственным доступным редактором скорее всего будет vi, который слишком сложен для того, чтобы описать его здесь, @@ -270,7 +407,7 @@ Перейдите в каталог /usr/src: + class="directory">/usr/src: &prompt.root; cd /usr/src @@ -302,7 +439,13 @@ MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs Эта переменная устанавливает список модулей, которые нужно построить - вместо построения всех модулей. За другими переменными, которые вы можете + вместо построения всех модулей. + + WITHOUT_MODULES = linux acpi sound ntfs + + В этой переменной перечисляются основные модули, которые + необходимо исключить из процесса сборки. + За другими переменными, которые вы можете посчитать полезными в процессе сборки ядра, обращайтесь к странице справочника &man.make.conf.5;. @@ -371,9 +514,35 @@ независимые параметры находятся в /usr/src/sys/conf/NOTES. + Начиная с &os; 5.0 появилась новая, допустимая в конфигурационном + файле директива include. Она позволяет включать + в текущий конфигурационный файл содержимое другого файла, тем самым + упрощая процесс внесения небольших изменений в существующий файл. + Например, если вам необходимо добавить всего несколько дополнительных + опций или драйверов в ядро GENERIC, то вам придется + поддерживать только разницу к файлу GENERIC: + + include GENERIC +ident MYKERNEL + +options IPFIREWALL +options DUMMYNET +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPDIVERT + + + Большинство администраторов оценят значительные преимущества + перед старым способом — написанием конфигурационного файла + с нуля: ваш конфигурационный файл будет отображать + только изменения относительно GENERIC. А после + обновлений исходного кода, новые функциональные возможности, появившиеся + в GENERIC, будут добавлены и в вашу конфигурацию, если только + не препятствовать этому директивами nooptions + или nodevice. Далее в этом разделе описывается + типовой конфигурационный файл, его опции и устройства, а также + их роли. + - В &os; 5.X и более поздних версиях вы все еще можете создать - собираемый LINT, выполнив: Для сборки ядра со всеми возможными опциями (обычно используется для тестирования), выполните от имени суперпользователя (root) следующую команду: @@ -434,7 +603,7 @@ cpu I686_CPU Этот параметр определяет метку ядра. Необходимо, чтобы она соответствовала названию файла конфигурации ядра, например - MYKERNEL, если вы следовали инструкциям в предыдущих + MYKERNEL, если вы следовали инструкциям в предыдущих примерах. Значение, которое вы присвоите параметру ident будет выводиться в процессе загрузки, поэтому полезно давать новым ядрам другие имена для того, чтобы отличать их от @@ -458,17 +627,13 @@ cpu I686_CPU makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols - Обычный процесс сборки &os; включает генерацию отладочной - информации (опцию -g &man.gcc.1;) при сборке ядра. - Того же самого эффекта - можно добиться используя опцию &man.config.8; , в - случае, если вы используете традиционный способ сборки - ядра (обратитесь к за - дополнительной информацией). + При обычном построении ядра в сборку включается отладочная + информация: опция передается компилятору + &man.gcc.1;. - options SCHED_4BSD # 4BSD scheduler + options SCHED_ULE # ULE scheduler - Традиционный планировщик &os;. Необходимая опция. + Планировщик по умолчанию во &os;. Оставьте эту опцию. options PREEMPTION # Enable kernel thread preemption @@ -609,6 +774,12 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENT + options COMPAT_FREEBSD5 # Compatible with &os;5 + + Эта опция необходима в &os; 6.X и выше для поддержки + приложений, скомпилированных на &os; 5.X и использующих интерфейс + системных вызовов &os; 5.X. + options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI Этот параметр заставляет ядро приостановиться на 5 секунд перед тем, @@ -656,15 +827,8 @@ options NFS_ROOT # NFS usable as /, requires NFSCLIENToptions 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. - - Распечатка регистров для облегчения отладки. + Этот параметр разрешает формирование файлов устройств в + /dev для клавиатур. options ADAPTIVE_GIANT # Giant mutex is adaptive. @@ -680,6 +844,15 @@ options AHD_REG_PRETTY_PRINT # Print register bitfields in debug нить должна была бы уснуть, пока не настанет очередной момент ее выполнения. Если вы не уверены, оставьте этот параметр в покое. + + Для &os; 8.0-CURRENT и более поздних версий, все мьютексы + являются адаптивными по умолчанию, если обратное не указано специально + опцией NO_ADAPTIVE_MUTEXES. Следовательно, + Giant также адаптивен по умолчанию, и поэтому опция + ADAPTIVE_GIANT была удалена из файла + конфигурации ядра. + + kernel options SMP @@ -693,6 +866,13 @@ options AHD_REG_PRETTY_PRINT # Print register bitfields in debug наличие apic является обязательным). Для поддержки многопроцессорности добавьте строку options SMP. + + Устройство apic существует только на архитектурах i386. + На других архитектурах этот конфигурационный параметр использовать + не следует. + + + device eisa Включите эту опцию если у вас материнская плата EISA. Это включает @@ -753,13 +933,17 @@ device atapicd # ATAPI CDROM drives # 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) +device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters @@ -774,7 +958,8 @@ device stg # TMC 18C30/18C50 Контроллеры SCSI. Закомментируйте те, которых у вас в системе нет. Если у вас в системе исключительно IDE устройства, вы можете удалить все - эти строки. + эти строки. Строки вида *_REG_PRETTY_PRINT включают + режим отладки для соответствующих драйверов. # SCSI peripherals device scbus # SCSI bus (required for SCSI) @@ -843,7 +1028,8 @@ device atkbdc # AT keyboard controller device kbdmux # keyboard multiplexer - Поддержка мультиплексора клавиатур. + Поддержка мультиплексора клавиатур. Если использование двух и более + клавиатур не планируется, можете смело исключать этот параметр. device vga # VGA video card driver @@ -898,8 +1084,7 @@ device sc #device apm Поддержка Advanced Power Management. Чаще всего используется в - лэптопах, хотя в ядре GENERIC &os; 5.X - и выше отключена по умолчанию. + лэптопах, хотя и отключена по умолчанию. # Add suspend/resume support for the i8254. device pmtimer @@ -1010,6 +1195,7 @@ 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 @@ -1018,6 +1204,7 @@ 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) @@ -1049,8 +1236,23 @@ device xe # Xircom pccard Ethernet сетевые карты каким драйвером поддерживаются. # Wireless NIC cards -device wlan # 802.11 support -device an # Aironet 4500/4800 802.11 wireless NICs. +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. @@ -1140,7 +1342,7 @@ device bpf # Berkeley packet filter # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface -#device ehci # EHCI PCI->USB interface (USB 2.0) +device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic @@ -1149,6 +1351,7 @@ 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 @@ -1223,12 +1426,6 @@ device fwe # Ethernet over FireWire (non-standard!) - - KLD модули не могут быть загружены в ядро с - включенной поддержкой PAE из-за разницы в - окружении для сборки модулей и самого ядра. - - Драйверы устройств, которые не используют интерфейс &man.bus.dma.9;, приведут к повреждению информации в ядре с включенным @@ -1269,7 +1466,7 @@ device fwe # Ethernet over FireWire (non-standard!) Решение проблем - Существует пять категорий проблем, которые могут возникнуть при + Существует четыре категории проблем, которые могут возникнуть при сборке собственного ядра. Вот они: @@ -1340,7 +1537,7 @@ device fwe # Ethernet over FireWire (non-standard!) - &prompt.root; mv /boot/kernel /boot/kernel.bad + &prompt.root; mv /boot/kernel /boot/kernel.bad &prompt.root; mv /boot/kernel.good /boot/kernel @@ -1374,4 +1571,3 @@ device fwe # Ethernet over FireWire (non-standard!) -