Конфигурирование ядра
🕛 16.08.2006, 10:57
Конфигурационный файл ядра GENEREC находится в каталоге /usr/src/sys/i386/conf. Каталог sys - стандартное место для исходников ядра, в i386 помещаются части, имеющие отношение к соответствующей архитектуре. LINT - файл содержащий вспомогательную информацию для настройки файла ядра с последующей компиляцией.- Если папка sys отсутствует, - а это вполне может иметь место, - то просто устанавливаем её. Идем дальше... # cp GENERIC COMPINFO
Последнее слово - это есть будущий файл ядра.
Для сверки с железом нам понадобится команда "dmesg", ибо конфигурировать ядро не зная с чем будет последнее работать, мягко говоря не умно.
Теперь приступаем к редактированию Подробное описание файла ядра смотрите в разделе : Платформы -> FreeBSD -> Конфигурирование ядра
machine i386 # процессор совместимый с Intel 386 # cpu I386_CPU # 386-е процессоры # cpu I486_CPU # 486-е, включая AMD-5x86; # cpu I586_CPU # Pentium, MMX, AMD-K5, AMD-K6 cpu I686_CPU # Pentium Pro, Pentium II и т.д. ident COMPINFO # идентификатор (название) ядра maxusers 16 # максимум User-ов, 0-автомат.
#makeoptions DEBUG=-g # наличие в ядре инфы отладки
#options MATH_EMULATE # эмуляция сопроцессора - для 386 options INET # Поддержка IP версии 4 #options INET6 # Поддержка IP версии 6 #options IPSEC # Защита заголовка IP пакета #options IPSEC_ESP # Защита данных IP пакета (crypto) #options IPSEC_DEBUG # поддержка отладки IPsec options FFS # поддержка файловой системы харда options FFS_ROOT # это тоже лучше не удалять options SOFTUPDATES # поддержка нужно фичи под FFS options UFS_DIRHASH # Увеличение скорости доступа к папкам #options MFS #/ поодержка использования и #options MD_ROOT #\ загрузки виртуального диска #options NFS #/ поддержка файловой системы NFS #options NFS_ROOT #\ и соответственно загрузка по сети options MSDOSFS # поддержка Ms-DOS options CD9660 # поддержка CD-приводов options CD9660_ROOT # загрузка с приводов CD-ROM options PROCFS # для версии 5.Х не используется Служит для вывода информации о системе , что может представлять опасность получения хакером доп информации options COMPAT_43 # Необходимая опция совместимости #options SCSI_DELAY=15000 # задержка опроса устройств SCSI options UCONSOLE # Захват консоли на 1 терминале #options USERCONFIG #/ включение редатора ядра boot -c #options VISUAL_USERCONFIG #\ и visual boot -c editor #options KTRACE # Трассировщик для отладки ядра options SYSVSHM # раздельная памяти в стиле System V options SYSVMSG #/ нужны тоже, в основном для аудио options SYSVSEM #\ и кое-чего еще #options P1003_1B # расширенна система реального #options _KPOSIX_PRIORITY_SCHEDULING # времени options ICMP_BANDLIM # Опция защиты от DoS-атак #options KBD_INSTALL_CDEV # нечто для клавы, толку никакого #options AHC_REG_PRETTY_PRINT # распечатка регистров для отладки # # Эти блоки относядся к многопроцессорной машине #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O # # -= Не стандатрные параметра файла Generic =- # # options MROUTING # Маршрутизация многоадресного трафика options IPFIREWALL # Включает код фильтрации пакетов options IPFIREWALL_VERBOSE # протоколирование пакетов ч/з syslogd options IPFIREWALL_VERBOSE_LIMIT=100 # лимит числа сообщений #options IPFIREWALL_DEFAULT_TO_ACCEPT # прохождение не-IP пакетов причем теперь проходят вообще все пакеты options IPFIREWALL_FORWARD # Поддержка перенаправления пакетов # options IPV6FIREWALL # Файреволл для сетей с IP v6 # options IPV6FIREWALL_VERBOSE # - // - v6 # options IPV6FIREWALL_VERBOSE_LIMIT=100 # - // - v6 # options IPV6FIREWALL_DEFAULT_TO_ACCEPT # - // - v6 options IPDIVERT # поддержки firewall с IP маскарадингом options IPFILTER # поддержка фильтра ip options IPFILTER_LOG # ведение логов для ip-фильтра ##options IPFILTER_DEFAULT_BLOCK # блокирование всех пакетов ##options IPSTEALTH # Перенаправление IP пакетов без изменения ttl ##options TCPDEBUG # нужна только разработчикам #options DUMMYNET # ограничение пропускной способности интерфейсов #options BRIDGE # Использование как сетевой мост options TCP_DROP_SYNFIN # Игнорирование пакетов с флагами SIN и FIN #options ARPPROXY_ALL # прокся ARP для Dial-up серверов # # - # #device isa #device eisa device pci # # Флоппи дисководы # device fdc0 at isa? port IO_FD1 irq 6 drq 2 device fd0 at fdc0 drive 0 #device fd1 at fdc0 drive 1 # # Секция поддержка ATA-устройств # #device ata0 at isa? port IO_WD1 irq 14 # Поддержка старых #device ata1 at isa? port IO_WD2 irq 15 # IDE-контроллеров device ata # Опция поодержки АТА-интерфейса device atadisk # Опция поодержки АТА-винчестеров device atapicd # Опция поодержки АТА-CD-ROM-ов #device atapifd # Опция поодержки Zip и LS #device atapist # Опция поодержки ATAPI-стриммеров options ATA_STATIC_ID # Статическая нумерация дисковых # # устройств на IDE-канале # Секция поддержки конкретных SCSI-контроллеров # #device ahb # EISA AHA1742 family #device ahc # AHA2940 and onboard AIC7xxx devices #device ahd # AHA39320/29320 and onboard AIC79xx devices #device amd # AMD 53C974 (Tekram 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) #options SYM_SETUP_LP_PROBE_MAP=0x40 #device adv0 at isa? #device adw #device bt0 at isa? #device aha0 at isa? #device aic0 at isa? #device ncv # NCR 53C500 #device nsp # Workbit Ninja SCSI-3 #device stg # TMC 18C30/18C50 # # общая поддержка SCSI-устройств #device scbus # SCSI bus (required) #device da # Direct Access (disks) #device sa # Sequential Access (tape etc) #device cd # CD #device pass # Passthrough device (direct SCSI access) # # RAID контроллеры для SCSI интерфейсов #device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID #device dpt # DPT Smartcache - See LINT for options! #device iir # Intel Integrated RAID #device mly # Mylex AcceleRAID/eXtremeRAID #device ciss # Compaq SmartRAID 5* series # # RAID контроллеры #device aac # Adaptec FSA RAID, Dell PERC2/PERC3 #device aacp # SCSI passthrough for aac (requires CAM) #device ida # Compaq Smart RAID #device amr # AMI MegaRAID #device mlx # Mylex DAC960 family #device twe # 3ware Escalade # # atkbdc0 controls both the keyboard and the PS/2 mouse # - поддержка консоли # device atkbdc0 at isa? port IO_KBD # поддержка контроллера device atkbd0 at atkbdc? irq 1 flags 0x1 # поддержка клавиатуры #device psm0 at atkbdc? irq 12 # !!! FOR mouse ps/2 # мыши # device vga0 at isa? # Поддержка VGA-режима консольного экрана # # splash screen/screen saver #pseudo-device splash # Отвечает за работу заставки экрана
# syscons - это драйвер консоли по умолчанию, имитирующий консоль SCO device sc0 at isa? flags 0x100 # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std # # интерфейс к модулю операций с плавающей точкой в FreeBSD - обязательный # device npx0 at nexus? port IO_NPX irq 13 # # Поддержка расширенного управления питанием (APM) # #device apm0 at nexus? disable flags 0x20 # Advanced Power Management # # Поддержка PC-карт (они же - PCMCIA) # #device card #device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000 #device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable # #Поддержка последовательных портов. # #Первые две строки - для внешних, #вторые - если имеется внутренний модем, определяемый как COM3 или COM4. # device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? port IO_COM2 irq 3 #device sio2 at isa? disable port IO_COM3 irq 5 #device sio3 at isa? disable port IO_COM4 irq 9 # #Поддержка параллельных портов # device ppc0 at isa? irq 7 device ppbus # Parallel port bus (required) device lpt # Printer #device plip # TCP/IP over parallel device ppi # Parallel port interface device #device vpo # Zip-привод на параллельном порту # # Подраздел сетевых картах #
# Драйвера сетевых карт PCI # #device de # DEC/Intel DC21x4x (``Tulip'') #device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman'') #device txp # 3Com 3cR990 (``Typhoon'') #device vx # 3Com 3c590, 3c595 (``Vortex'')
# 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 #device dc # DEC/Intel 21143 and various workalikes #device fxp # Intel EtherExpress PRO/100B (82557, 82558) #device pcn # AMD Am79C97x PCI 10/100 NICs #device rl # RealTek 8129/8139 #device sf # Adaptec AIC-6915 (``Starfire'') #device sis # Silicon Integrated Systems SiS 900/SiS 7016 #device ste # Sundance ST201 (D-Link DFE-550TX) #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'') #device bge # Broadcom BCM570x (``Tigon III'')
# Драйвера сетевых карт ISA # # 'device ed' requires 'device miibus' device ed0 at isa? port 0x300 irq 10 iomem 0xd8000 #device ex #device ep #device fe0 at isa? port 0x300 #device xe # Xircom Ethernet # # Установка звуковых карт (на базе Sound Blaster) # device pcm device sbc #device snd #controller snd0 #device sb160 at isa? port 0x220 irq 5 drq 1 # SoundBlaster (PCM, 16, PRO, ProAudioSpectrum) #device sbxvi0 at isa? drq 5 # SoundBlaster 16 #device sbmidi0 at isa? port 0x330 # SoundBlaster 16 MIDI interface #device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15 # #device awi # PRISM I IEEE 802.11b wireless NIC. # #device wi # WaveLAN/IEEE 802.11 # #device an # Aironet 4500/4800 802.11 # # The probe order of these is presently determined by i386/isa/isa_compat.c. #device ie0 at isa? port 0x300 irq 10 iomem 0xd0000 #device le0 at isa? port 0x300 irq 5 iomem 0xd0000 #device lnc0 at isa? port 0x280 irq 10 drq 0 #device cs0 at isa? port 0x300 #device sn0 at isa? port 0x300 irq 10 # # pseudo-device loop # Драйвер" loopback интерфейса. Используется во многих ситуациях.Поэтому, это устройство должно быть обязательно. pseudo-device ether # Общие подпрограммы для всех ethernet'овских драйверов (независимо, какая карточка у вас стоит). Количество "псевдо-девайсов" значения не имеет. #pseudo-device sl 1 # Драйвер SLIP (протокол для передачи IP через COM-порт и, соответственно, через модем). Количество "псевдо-девайсов" должно быть столько, сколько у вас COM-портов. pseudo-device ppp 2 # Драйвер PPP (как и SLIP это протокол для передачи IP через COM-порт). Количество "псевдо-девайсов" должно быть столько, сколько у вас COM-портов. pseudo-device tun 1 # Это устройство используется только программой ppp (смотри man 8 ppp). Если вы этой программой не пользуетесь (не путайте ее с pppd), то и устройство вам не нужно. pseudo-device pty # Драйвер, отображающий "драйвер терминала" (как tty), в тех случаях, когда юзер работает, через сеть (telnet, rlogin и т.п.). Должно быть несколько (16 - вполне нормально). #pseudo-device md # Поддержка Memory Disks, тех самых псевдоустройств, на которых базируется файловая система mfs (о ней говорилось выше). Доступна в виде модуля. #pseudo-device gif # Поддержка туннелирования для IPv6 и IPv4 #pseudo-device faith 1 # Устройство перенаправления пакетов для тунелирования # pseudo-device bpf # Фильтр пакетов Berkeley # # поддержка USB #device uhci # UHCI PCI->USB interface #device ohci # OHCI PCI->USB interface #device usb # USB Bus (required) #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 uscanner # Scanners #device urio # Diamond Rio MP3 Player # поддержка USB Ethernet, рекомендуется mii #device aue # ADMtek USB ethernet #device cue # CATC USB ethernet #device kue # Kawasaki LSI USB ethernet # # Теперь приступаем к генерированию исходных текстов ядра # # /usr/sbin/config COMPINFO # Ошибки исправляем по мере возниновения Переходим в каталог, в котором будет собираться ядро # # cd ../../compile/COMPINFO # Приступаем к сборке его родимого: # # make depend # make # Если все прошло без сучка и задоринки, то инсталлируем новое ядро: # # make install # Все теперь перегружаемся и смотрим # # Ядро установилось и система работает, с чем вас и поздравляю :) # # Если же одна из команд выдала ошибку - то следует еще раз внимательно проверить список устройств и опций в файле /usr/src/sys/i386/conf/FIRST. Если же все на Ваш взгляд нормально, то попробуйте еще раз "пересобрать" ядро. Если после инсталяции и перезагрузке ядро не загрузилось, попробуйте загрузить старое ядро: boot: kernel.old Загрузка старого ядра должна пройти успешно. Замените старое ядро на новое: # cd / # chflags noschg kernel # cp kernel kernel.new # cp kernel.old kernel # chflags schg kernel # reboot
Проверьте наличие файла /boot.config. Если этого файла нет - создайте его следующим образом: # # echo /boot/loader > /boot.config В каталоге /boot должны содержаться следующие файлы: boot0 boot1 boot2 loader Обязательно проверьте их наличие!