首页 > 代码库 > Freebsd 编译内核

Freebsd 编译内核

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

# cp GENERIC GENERIC.20060812
# ee GENERIC

如果要加入ipf防火墙的话则加入
options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
options         IPDIVERT

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

运行config命令来产生内核源代码。
# /usr/sbin/config GENERIC

切换到建立内核的目录。
# cd ../compile/GENERIC

编译内核
# make cleandepend  (最好先清除一下)
# make depend
# make

安装新内核。
# make install

OK,到这里,如果中间没有出现任何错误的话,那么我们的内核心就已经安装成功了,
reboot后就能够使用我们的新编译的内核了。如果出现了

错误,那么请检查你的步骤是否跟上面的步骤一致,同时要检查你的内核配置文件配置的是否正确,
一般编译不成功都是内核文件配置的问题

,请仔细检查。

四、新内核无法启动:

如果你编译的内核无法启动,那么可以使用以前的内核来启动。一般编译一次内核后,
都会把把旧内核备份,一般/boot/kernel.old就是旧内

核的备份,出现问题就能够使用久内核来启动。

具体实现方法是:
你可以在系统启动进行10计数的时候按Enter以外的任何键, 接着键入unload命令,
再键入boot kernel.old,或者任何能正常启动的内核名字

,然后就能够正常启动系统,进入系统后再重新进行内核的配置工作。

注意: 你不能仅依靠kernel.old,因为当你安装一个新内核时, 
kernel.old会被上一次安装的内核所覆盖,所以你要么自己手动备份一个能

正常启动的内核,或者注意你的kernel.old是否能正常启动的内核。

结束

好,到这里,我们的编译内核的工作就完成了,来然我们来看看我们的内核是否已经减小了:

# ls -l /boot/kernel/kernel
-r-xr-xr-x 1 root wheel 3090929 Sep 1 21:30 /boot/kernel/kernel

呵呵,明显把原来的5940286变成了现在的3090929,虽然没有变小一倍,
但是也变小好多啦,以后系统又更快啦

修改时请参http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/kernelconfig-config.html

#######################################################################
machine  i386
cpu  I486_CPU
cpu  I586_CPU
cpu  I686_CPU
ident  GENERIC

# To statically compile in device wiring instead of /boot/device.hints
#hints  "GENERIC.hints"  # Default places to look for devices.

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

#options  SCHED_ULE  # ULE scheduler
options  SCHED_4BSD  # 4BSD scheduler
options  PREEMPTION  # Enable kernel thread preemption
options  INET   # InterNETworking
options  INET6   # IPv6 communications protocols
options  FFS   # Berkeley Fast Filesystem
options  SOFTUPDATES  # Enable FFS soft updates support
options  UFS_ACL   # Support for access control lists
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
#options  MSDOSFS   # MSDOS Filesystem
#options  CD9660   # ISO 9660 Filesystem
options  PROCFS   # Process filesystem (requires PSEUDOFS)
options  PSEUDOFS  # Pseudo-filesystem framework
options  GEOM_GPT  # GUID Partition Tables.
options  COMPAT_43  # Compatible with BSD 4.3 [KEEP THIS!]
options  COMPAT_FREEBSD4  # Compatible with FreeBSD4
options  COMPAT_FREEBSD5  # Compatible with FreeBSD5
#options  SCSI_DELAY=5000  # Delay (in ms) before probing SCSI
options  KTRACE   # ktrace(1) support
#options  SYSVSHM   # SYSV-style shared memory
#options  SYSVMSG   # SYSV-style message queues
options  SYSVSEM   # SYSV-style semaphores
options  _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options  KBD_INSTALL_CDEV # install a CDEV entry in /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.
options  ADAPTIVE_GIANT  # Giant mutex is adaptive.

options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD

device  apic   # I/O APIC

# Bus support.
device  eisa
device  pci

# Floppy drives
device  fdc

# ATA and ATAPI devices
device  ata
device  atadisk  # ATA disk drives
device  ataraid  # ATA RAID drives
device  atapicd  # ATAPI CDROM drives
device  atapifd  # ATAPI floppy drives
device  atapist  # ATAPI tape drives
options  ATA_STATIC_ID # Static device numbering

# SCSI Controllers
#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  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 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)

# 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  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  mlx  # Mylex DAC960 family
#device  pst  # Promise Supertrak SX6000
#device  twe  # 3ware ATA RAID

# atkbdc0 controls both the keyboard and the PS/2 mouse
device  atkbdc  # AT keyboard controller
device  atkbd  # AT keyboard
device  psm  # PS/2 mouse

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

# 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

device  agp  # support several AGP chipsets

# Power management support (see NOTES for more options)
#device  apm
# Add suspend/resume support for the i8254.
device  pmtimer

# 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

# Serial (COM) ports
#device  sio  # 8250, 16[45]50 based serial ports

# Parallel port
device  ppc
device  ppbus  # Parallel port bus (required)
device  lpt  # Printer
device  plip  # TCP/IP over parallel
device  ppi  # Parallel port interface device
#device  vpo  # Requires scbus and da

# If you’ve got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
#device  puc

# PCI Ethernet NICs.
#device  de  # DEC/Intel DC21×4x (“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 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
#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  nge  # NatSemi DP83820 gigabit Ethernet
#device  nve  # nVidia nForce MCP on-board Ethernet Networking
#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  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”)

# ISA Ethernet NICs.  pccard NICs included.
#device  cs  # Crystal Semiconductor CS89×0 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

# Wireless NIC cards
#device  wlan  # 802.11 support
#device  an  # Aironet 4500/4800 802.11 wireless NICs.
#device  awi  # BayStack 660 and others
#device  ral  # Ralink Technology RT2500 wireless NICs.
#device  wi  # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device  wl  # Older non 802.11 Wavelan wireless NIC.

# Pseudo devices.
device  loop  # Network loopback
device  random  # Entropy device
device  ether  # Ethernet support
device  sl  # Kernel SLIP
device  ppp  # Kernel PPP
device  tun  # Packet tunnel.
device  pty  # Pseudo-ttys (telnet etc)
device  md  # Memory "disks"
device  gif  # IPv6 and IPv4 tunneling
device  faith  # IPv6-to-IPv4 relaying (translation)

# 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

# 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 miibus
#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

# FireWire support
#device  firewire # FireWire bus code
#device  sbp  # SCSI over FireWire (Requires scbus and da)
#device  fwe  # Ethernet over FireWire (non-standard!)
#######################################################################

Freebsd 编译内核