FreeBSD内核定制参考

3/28/2005来源:FreeBSD教程人气:10643

#
# GENERIC -- Generic machine kernel
#

## 主机类型i386,因为FreeBSD是在X86上运行的嘛
machine "i386"

## CPU 种类,看看自己属于几86嘛
#cpu "I386_CPU"      # 386 的电脑
#cpu "I486_CPU"      # 486 的电脑    
cpu "I586_CPU"      # 586 的电脑
#cpu "I686_CPU"      # 686 的电脑

## 内核标识,没有特殊意义
ident GENERIC

## 定义一些系统的结构应该保留多大的内存空间,通常
## 16 或 32 就够了, 除非你开站,或运行X,就用 64 吧
## 注意这个值永远小于你的内存数目
maxusers 32

## 一个用户可以执行的进程数限制
options         CHILD_MAX=256
## 一个用户可以打开的文件数限制
options         OPEN_MAX=256

## 打开内核调试, 一般人用不到
#options         DDB

## 允许调试跟踪内存单元(详情見 ktrace, kdump), 还是留给内核黑客用吧
#options         KTRACE                  #kernel tracing

## 没有 FPU (SX) 的朋友用的, 用 DX 的人就不用了
#options MATH_EMULATE #Support for x87 emulation

## 你有64MB以上内存量时指定,单位是K。例如 128MB RAM:
#options "MAXMEM=(128*1024)"

## 支持网络, 一定要有,真是废话
options INET #InterNETworking

## ipX 相关协议
#options         IPX                     #IPX/SPX communications PRotocols
#options         IPXIP                   #IPX in IP encapsulation (not available
#options         IPTUNNEL                #IP in IPX encapsulation (not available
#options         IPXPRINTFS=0            #IPX/SPX Console Debugging Information
#options         IPX_ERRPRINTFS=0        #IPX/SPX Console Debugging Information

## 文件系统设定
## 只有 UFS 是必需的, 其他的可以不必, 要用时 kernel 会用 LKM 载入
## 注意文件系统名有数字时要用双引号括起来哦,看看下面的linux文件系统就知道了
options           FFS              #Berkeley Fast Filesystem
#options          NFS              #Network Filesystem
#options          NFS_NOSERVER     #Disable the NFS-server code.
#options          MSDOSFS          #MSDOS Filesystem
#options          "CD9660"         #ISO 9660 Filesystem
#options          PROCFS           #Process filesystem
#options          KERNFS           #Kernel filesystem
#options          NQNFS            #Enable NQNFS lease checking
#options          FDESC            #File descriptor filesystem
#options          LFS              #Log filesystem
#options          MFS              #Memory File System
#options          NULLFS           #NULL filesystem
#options          PORTAL           #Portal filesystem
#options          UMAPFS           #UID map filesystem
#options          UNION            #Union filesystem
#options          DEVFS            #devices filesystem
##
## 有LINUX文件系统的朋友注意要用下面这一行
#options          "EXT2FS"         #ext2fs, only in 2.2-CURRENT

## 4.3BSD 兼容, 这是必要的,可能有些程序会用到
options "COMPAT_43" #Compatible with BSD 4.3

## 执行 Linux 的程序文件,就算你利用 LKM 载入,你还是需要这个参数
## 你可以修改 /etc/sysconfig 中的 linux=YES,或是执行 /usr/bin/linux
## 对了,你必需安裝 packages 中的 linux_lib
#options "COMPAT_LINUX" #Linux Emulator

## SCO 二进制程序模拟
#options "IBCS2"

## 一开机时 SCSI 卡会先等待设备准备几秒钟时间, 对于一些比较慢的 SCSI设备,
## 如 CDROM 而言是需要的, 最小值是 2, 选择适合你的值就好了
options "SCSI_DELAY=4" #Be pessimistic about Joe SCSI device

## 允许使用者截取控制台信息,对于 xconsole 之类的程序是必要的
options UCONSOLE #Unix console

## 虚拟控制台最大数目, Alt-F1 到 Alt-F12 等等, 只是定义上限而已
## 真正能用的 virtual console 必需看 /etc/ttys 定义 vty 的数目
## 本值內定是 16
options "MAXCONS=8" #Max number for virtual console

## 给 WINE (MS-Windows Emulator) 用的
#options USER_LDT #For WINE, MS-Windows Emulator

## 使用 QUOTA限额
#options QUOTA #For quotas

## SYSV IPC/SHM (BBS 跟 X-window 及 COMPAT_LINUX 需要用), 这是必要的
options SYSVMSG,SYSVSEM,SYSVSHM #For SYSV-IPC

## LKM 的载入器, 这是必要的(在 2.1.5R 以后已经废除,成为内定参数)
#options LKM #Loadable kernel module loader

## 如果你用 ISA 的 SCSI 卡, 又有大於 16MB 的内存, 必需打开此项, 否则无法
## 使用 >16MB 内存. 如果你是用 EISA/VL/PCI 的 SCSI 卡就不需要了
## 打开它会减低一点点速度, 没事不要开 (用 IDE 的当然不用了)
#options BOUNCE_BUFFERS #include support for DMA bounce buffers

## 要用 IP-Firewall 才需要,你可以用 LKM 载入
#options IPFIREWALL #Firewall code
#options IPFIREWALL_VERBOSE #Print information about dropped packets
#options IPACCT #Used with ipfirewall

## 要用 IP-Firewall 或要当 router 才要
## 在 2.2-960323-SNAP 后已废除, 以 sysctl 打开 (見 /etc/sysconfig)
#options GATEWAY #Internetwork gateway

## Multicast routing, 做多路由器时用
#options         MROUTING                # Multicast routing

## 允许 swap device 的数目 (內定 20)
#options         NSWAPDEV=20

## 指定 root partition 在那个硬盘上
#在第一个SCSI HD上
config          kernel  root on sd0
#在第一个IDE HD上
#config kernel root on wd0 dumps on wd0

## 使用 ISA 总线
controller isa0

## 使用 EISA 总线
#controller eisa0

## 使用 PCI 总线
controller pci0

## 软驱控制器
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
# 软驱A
disk fd0 at fdc0 drive 0
# 软驱 B
# disk fd1 at fdc0 drive 1

## IDE 硬盘控制器
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
disk wd1 at wdc0 drive 1

## 第二个 IDE 硬盘控制器, 有接第二个IDE控制器时才用
#controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
#disk wd2 at wdc1 drive 0
#disk wd3 at wdc1 drive 1

## IDE(ATAPI 规格) 光驱
#options         ATAPI   #Enable ATAPI support for IDE bus
#options  ATAPI_STATIC
#device          wcd0    #IDE CD-ROM

## SCSI 控制卡, 请从 /sys/i386/conf/LINT 中读取详细说明
#controller ahc0
#controller ncr0
#controller bt0 at isa? port "IO_BT0" bio irq ? vector btintr
#controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr
#controller ahc1 at isa? bio irq ? vector ahcintr
#controller ahb0 at isa? bio irq ? vector ahbintr
#controller aha0 at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
#controller aic0    at isa? port 0x340 bio irq 11 vector aicintr
#controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr
#controller nca1 at isa? port 0x350 bio irq 5 vector ncaintr
#controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr

## SCSI 总线支持, 使用 SCSI 必备的
#controller scbus0

## SCSI HD SCSI硬盘
#device sd0 #Only need one of these, the code dynamically grows

## SCSI CDROM SCSI光驱
#device cd0 #Only need one of these, the code dynamically grows

## SCSI tape SCSI磁带机
#device st0 #Only need one of these, the code dynamically grows

## SCSI optical disk (MO)  SCSI的MO驱动器
#device od0 #Only need one of these, the code dynamically grows

## SCSI media changers (Juke-Box)
#device ch0 #Only need one of these, the code dynamically grows

#------------------  用AT-总线的光驱 (非 ATAPI,现在很少了吧) ---------------
## Mitsumi CDROM  美上美光驱
#controller mcd0 at isa? port 0x300 bio irq 10 vector mcdintr

## SONY CDROM  索尼光驱
#controller scd0 at isa? port 0x230 bio

## Panasonic CDROM  松下光驱
#controller      matcd0  at isa? port ?

## QIC tape QIC磁带机
#device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr

## console 屏幕驱动程序, 这是必备的,少了启动不了
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr

## 调用 FPU 的机制, 无论有无 FPU 都要有, 都是必要的
device npx0 at isa? port "IO_NPX" irq 13 vector npxintr

## COM1 到 COM4  串口设备1-4
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
#device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr
#device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr

## Joystick  操纵杆设备
#device          joy0    at isa? port "IO_GAME"

## 如果你有 Logitech or ATI InPort 总线鼠标的卡, 就要將此打开
## 請注意一般人使用的是 serial mouse 不是 bus mouse
#device mse0 at isa? port 0x23c tty irq 5 vector ms

## 给 PS/2 mouse 用的
#device          psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
#options         PSM_NO_RESET

## 打印机端口
device lpt0 at isa? port? tty irq 7 vector lptintr
#device lpt1 at isa? port? tty
#device lpt2 at isa? port? tty

## 网卡, 读一下 /sys/i386/conf/LINT,注意PCI卡不用指定硬件资源,系统会自测
#device ed0 at isa? port 0x280 net irq  5 iomem 0xd8000 vector edintr
#device ed1 at isa? port 0x300 net irq  5 iomem 0xd8000 vector edintr
#device eg0 at isa? port 0x310 net irq 5 vector egintr
#device ep0 at isa? port 0x300 net irq 10 vector epintr
#device ie0 at isa? port 0x360 net irq  7 iomem 0xd0000 vector ieintr
#device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz 32768 vector ixintr
#device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr
#device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr
#device lnc1 at isa? port 0x300 net irq 10 drq 0 vector lncintr
#device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector zeintr
#device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr
#device de0 #PCI --- DEC chip 21x4x series (such as DE530CT+)
#device vx0
#device fpa0
#device fxp0 #PCI --- Intel chip 

## SB16 声卡, 其他的声卡参考 /sys/i386/conf/LINT
#controller snd0
#device sb0      at isa? port 0x220 irq 5 conflicts drq 1 vector sbintr
#device sbxvi0   at isa? drq 5
#device sbmidi0  at isa? port 0x330
#device opl0     at isa? port 0x388

## SB32/AWE32/AWE64 声卡, 其他的声卡参考 /sys/i386/conf/LINT
#controller snd0
#device sb0      at isa? port 0x220 irq 5 conflicts drq 1 vector sbintr
#device sbxvi0   at isa? drq 5
#device sbmidi0  at isa? port 0x330
#device opl0     at isa? port 0x388
#device awe0     at isa? port 0x620

## PC Speaker Audio (用 PC Speaker 模拟声卡,效果很烂的)
#device pca0 at isa? port IO_TIMER1 tty

## 网络回路, 这是必备的,
pseudo-device loop

## 使用以太网接口, 这是必备的
pseudo-device ether

## Berkerley 包过滤, tcpdump ,dhcp 需要用, 这是必备的
pseudo-device bpfilter 4

## syslogd 需要, 这是必备的
pseudo-device log

## 使用者 tty 上限, 限制最大登录人数, 預设上限 256
pseudo-device pty 256

## PC speaker, 这是必备的
pseudo-device speaker

## 可以直接执行 gzip 的程式, 这是必备的,不过只支持a.out格式程序
pseudo-device gzip # Exec gzipped a.out's

## 支持监控 tty 使用者
pseudo-device snp 4 #Snoop device - to look at pty/vty/etc..

## 把一个文件模拟成一个分驱, 通常用來做为交换文件或读磁盘镜像文件时用
pseudo-device vn 4 #Vnode driver (turns a file into a device)

## 内核级PPP (man pppd),可用 LKM 载入
#pseudo-device   ppp     2               #Point-to-point protocol

## 用户级PPP (man ppp),可用 LKM 载入
#pseudo-device   tun     1               #Tunnel driver(user process ppp)

## SLIP,可用 LKM 载入,现在很少用了
#pseudo-device   sl      2               #Serial Line IP

## 虛拟网卡驱动, 可任意写入,读取信息, 用于开发网路相关程序,可用 LKM 载入
#pseudo-device   disc                    #Discard device

## 提供 RAID-0 Striping,Mirroring,parity(not complete) 的功能
## 可以有效的将多个 SCSI 磁盘合并起來,成为一个高速的文件系统
## 详情请 man ccdconfig
#pseudo-device   ccd     4



-- 错误在所难免,欢迎批评指正

have fun!
meaculpa.yeah.net
icq:59166445