编译优化自己的FreeBSD

来源:互联网 发布:七氟烷的mac值 编辑:程序博客网 时间:2024/05/17 09:12
使用版本为FreeBSD5.3,运行 sysinstall 命令,然后选择configure -> Distrbutions -> src ->

sys 然后安装就可以把内核代码安装到硬盘里面.

   然后进入/usr/src/sys/i386/conf里面把 GENERIC 文件保存到/root目录下面,然后回到/root目

录,开始编辑内核。以下是我的GENERIC文件内容

 

#
# 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.413.2.6.2.2 2004/10/24 18:02:52 scottl Exp $

machine  i386
#cpu  I486_CPU  因为我的处理器版本比较高,所以这两句没什么用去掉
#cpu  I586_CPU
cpu  I686_CPU
ident  GENERIC   这是重新编译后的内核文件名,应该改为你自己的内核名字 我的内核名叫Free

 

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

options  SCHED_4BSD  # 4BSD scheduler
options  INET   # InterNETworking
options  INET6   # 启动IPv6不要
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  # 这几句都不要分别是nfs客户端与服务端

options  NFSSERVER  # 还有与DOS系统互访
options  NFS_ROOT  #
options  MSDOSFS   #

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  SCSI_DELAY=15000 # 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.

 

device  apic  # I/O APIC可要可不要,我的不要了

# 系统总线一般不作修改
device  isa
device  eisa
device  pci

# 软盘我把它删掉
device  fdc

# ATA and ATAPI devices
device  ata
device  atadisk  # ATA disk drives
device  ataraid  # ATA 阵列驱动我没有阵列所以也删掉了
device  atapicd  # ATAPI CDROM drives
device  atapifd  # ATAPI 软盘驱动删除
device  atapist  # 磁带机,删除
options  ATA_STATIC_ID # 静态设备标号,删除

#以是SCSI系统与阵列,串口COM所以全部删除

# 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  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  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 键盘控制器

device  atkbd  # AT 键盘
device  psm  # PS/2 鼠标

device  vga  # VGA 显卡

device  splash  # 屏保

#默认驱动器

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  # AGP支持

# Floating point support - do not disable.
device  npx

# 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 DC21x4x (``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支持不能删除


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  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.

#ISA网卡设备
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  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  wi  # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device  wl  # Older non 802.11 Wavelan wireless NIC.

# Pseudo devices.
device  loop  # Network loopback
device  mem  # Memory and kernel memory devices
device  io  # I/O device
device  random  # Entropy device
device  ether  # Ethernet support
device  sl  # 内核级SLIP
device  ppp  # 内核级PPP
device  tun  # 隧道

device  pty  # Pseudo-ttys (telnet etc)
device  md  # 虚拟盘
device  gif  # IPv6系统
device  faith  # IPv6-to-IPv4 relaying (translation)

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device  bpf  # Berkeley packet filter

#下面的全删除

# USB support
device  uhci  # UHCI PCI->USB interface
device  ohci  # OHCI PCI->USB interface
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  urio  # Diamond Rio 500 MP3 player
device  uscanner # Scanners
# USB Ethernet, requires mii
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

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

修改后的内核文件
#
# 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.413.2.6.2.2 2004/10/24 18:02:52 scottl Exp $
machine  i386
cpu  I686_CPU
ident  Free
maxusers  0
# To statically compile in device wiring instead of /boot/device.hints
#hints  "GENERIC.hints"  # Default places to look for devices.
options  SCHED_4BSD  # 4BSD scheduler
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  SCSI_DELAY=500 # 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.
device  apic  # I/O APIC
# Bus support.  Do not remove isa, even if you have no isa slots
device  isa
device  eisa
device  pci

options IPFILETER
options TCP_DROP_SYNFIN
options IPFIREWALL #防火墙
options IPFIREWALL_FORWARD #允许透明代理
options IPFIREWALL_VERBOSE #允许防火墙日志
options IPFIREWALL_VERBOSE_LIMIT=100 #限制日志
options IPFIREWALL_DEFAULT_TO_ACCEPT #默认允许所有IP包
options IPDIVERT #启用由ipfw divert使用的转向IP套接
# Floppy drives

# ATA and ATAPI devices
device  ata
device  atadisk  # ATA disk drives
device  atapicd  # ATAPI CDROM drives

# SCSI Controllers
#device  ncr  # NCR/Symbios Logic
 
# SCSI peripherals

# RAID controllers interfaced to the SCSI subsystem
# RAID controllers
# atkbdc0 controls both the keyboard and the PS/2 mouse
device  atkbdc  # AT keyboard controller
device  atkbd  # AT keyboard

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
device  agp  # support several AGP chipsets
# Floating point support - do not disable.
device  npx
 
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
# Serial (COM) ports
# Parallel port
# 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.
# 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
e  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 CS89x0 NIC
# 'device ed' requires 'device miibus'
 ISA devices that use the old ISA shims
# Pseudo devices.
device  loop  # Network loopback
device  mem  # Memory and kernel memory devices
device  io  # I/O device
device  random  # Entropy device
device  ether  # Ethernet support
device  pty  # Pseudo-ttys (telnet etc)
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device  bpf  # Berkeley packet filter
# USB support
最后用命令config Free(这是我的内核名),然后 cd ./compile/Free/,然后输入make depend
就开始编译了,最后输入make ,当编译完就输入make install重启动后就OK啦
如有不明请查看FreeBSD文档资料
最后用命令config Free(这是我的内核名),然后 cd ./compile/Free/,然后输入make depend
就开始编译了,最后输入make ,当编译完就输入make install重启动后就OK啦
如有不明请查看FreeBSD文档资料