Администрирование FreeBSD, Linux, ... FreeBSD: как пересобрать ядро Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


FreeBSD: как пересобрать ядро Печать
Добавил(а) microsin   

Во FreeBSD для оптимизации использования ресурсов есть возможность пересобрать ядро (или перекомпилировать ядро).

Ядро - это программа, в которую включен код операционной системы, работающий с периферийными устройствами.

Можно отключить в ядре поддержку устройств, которые в вашей машине не используются. FreeBSD Handbook достаточно подробно описывает процесс переконфигурирования и сборки ядра в разделе 8.
- папка /usr/src/sys/i386/conf содержит шаблон конфигурации ядра GENERIC, который надо скопировать в свой собственный конфигурационный файл, например, MYKERNEL:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
- теперь нужно в файле MYKERNEL закомментировать символом # все строки, которые включают поддержку отсутствующего у вас оборудования. Каждая строка шаблона и её назначение подробно описана в той же FreeBSD Handbook. Я закомментировал следующие строки (получил из результата команды diff -a GENERIC MYKERNEL):
#cpu  I486_CPU
#cpu  I586_CPU
#options  INET6   # IPv6 communications protocols
#options  SCSI_DELAY=15000 # Delay (in ms) before probing SCSI
#device  eisa
 
#device  ataraid  # ATA RAID drives
#device  atapist  # ATAPI tape drives
#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  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

#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)
#device  amr  # AMI MegaRAID
#device  asr  # DPT SmartRAID V, VI and Adaptec SCSI RAID
#device  ciss  # Compaq Smart RAID 5*
#device  dpt  # DPT Smartcache III, IV - See NOTES for options
#device  hptmv  # Highpoint RocketRAID 182x
#device  iir  # Intel Integrated RAID
#device  ips  # IBM (Adaptec) ServeRAID
#device  mly  # Mylex AcceleRAID/eXtremeRAID
#device  twa  # 3ware 9000 series PATA/SATA RAID
#device  aac  # Adaptec FSA RAID
#device  aacp  # SCSI passthrough for aac (requires CAM)
#device  ida  # Compaq Smart RAID
#device  mlx  # Mylex DAC960 family
#device  pst  # Promise Supertrak SX6000
#device  twe  # 3ware ATA RAID

#device  agp  # support several AGP chipsets
     
#device  cbb  # cardbus (yenta) bridge
#device  pccard  # PC Card (16-bit) bus
#device  cardbus  # CardBus (32-bit) bus

#device  wlan  # 802.11 support
#device  an  # Aironet 4500/4800 802.11 wireless NICs.
#device  awi  # BayStack 660 and others
#device  wi  # WaveLAN/Intersil/Symbol 802.11 wireless NICs.

#device  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  urio  # Diamond Rio 500 MP3 player
#device  uscanner # Scanners
#device  aue  # ADMtek USB Ethernet
#device  axe  # ASIX Electronics USB Ethernet
#device  cue  # CATC USB Ethernet
#device  kue  # Kawasaki LSI USB Ethernet
#device  rue  # RealTek RTL8150 USB Ethernet
#device  firewire # FireWire bus code
#device  sbp  # SCSI over FireWire (Requires scbus and da)
#device  fwe  # Ethernet over FireWire (non-standard!)
  
- не забудьте в файле MYKERNEL исправить ''метку'' ядра
ident          GENERIC
  на
ident          MYKERNEL
- кроме этого шаблона, описывающие устройства, есть дополнительный файл /usr/src/sys/conf/NOTES. Оттуда можно методом copy/paste брать строки для включения в основной шаблон MYKERNEL. Я этого делать не стал.
- сборка ядра "традиционным" способом:
# cd /usr/src/sys/i386/conf
# /usr/sbin/config MYKERNEL
- Перейдите в каталог, в котором будет собираться ядро. Запущенный как показано выше config(8) выведет имя этого каталога.
# cd ../compile/MYKERNEL
- Соберите ядро.
# make depend
# make
- Установите новое ядро.
# make install
- после перезагрузки система должна нормально заработать уже с новыми установками. Я сравнивал использование памяти и ресурсов у оригинальной системы и перекомпилированной, и разницы не заметил. Вслучае ошибок и проблем в загрузке перекомпилированной системы смотрите советы раздела 8.6. Решение проблем из FreeBSD Handbook.

 

Добавить комментарий


Защитный код
Обновить

Top of Page