FreeBSD handbook中文版 9 配制FreeBSD 的内核( 八 )


应用程序如emacs 会用到pty 。number 设置系统的pty 个数 。系统默认值是16,如果你要
提高同时连接数,可以适当增加这个数值,最高可达256 个 。
pseudo-device md # Memory “disks”
Memory disk pseudo-devices.
pseudo-device gif 4 # IPv6 and IPv4 tunneling
这个执行IPv6 与IPv4,IPv4 与IPv6, IPv4 与IPv4, IPv6 与IPv6 之间的转换.
pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
这个伪设备能检测到接收到的数据包,然后把它们发送给IPv4/IPv6 翻译程序 。
# The `bpf" pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device bpf # Berkeley packet filter
这是Berkeley 的封包过滤器 。这个伪设备允许网络接口被放在复杂的模式上,在网络
上捕获每个封包 。这些封包能被磁盘捕获或被tcpdump 程序检查 。
注意:bpf pseudo-device 也可以被dhclient 用来获得默认路由的IP 地址 。如果你使
用DHCP,不要注释掉这行 。
# USB support
#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
第16 页FreeBSD 使用手册
# USB Ethernet, requires mii
#device aue # ADMtek USB ethernet
#device cue # CATC USB ethernet
#device kue # Kawasaki LSI USB ethernet
支持多种USB 设备 。更多有关FreeBSD 支持的设备请参考
/usr/src/sys/i386/conf/LINT 。
9.5 建立设备的节点
几乎内核中的每个设备在/dev 目录下都有对应的节点 。这些节点看上去是些规则文件,
但事实上是程序在使用对应的设备时,与内核联系的进入点 。当你一开始安装操作系统时,
那些可执行的外壳脚本/dev/MAKEDEV 就创建了几乎所有支持的设备 。然而,它并不是建立
所有设备,所以当你加入对新设备的支持时,注意确信对应的节点在这个目录下 。如果不是,
就加入它们 。这儿是一个简单的例子:
确信在内核中加入了IDE CD-ROM 的支持 。可以这样加入:device acd0
这意味着你应当在/dev 目录下找一些以acd0 为起点的入口,通常后面有一个字母,象
c 或以r 开头表示这是一个raw 设备 。那些文件不在那儿,必须改变/dev 目录然后键入:
# sh MAKEDEV acd0
当这些脚本完成后,你要找一下在/dev 目录下有acd0c 和racd0c 等几个入口,表示程
序已经正确执行 。
以下是加入声卡节点的例子:
# sh MAKEDEV snd0
注意:当创建完诸如声卡这样的设备节点时,如果其它人有权访问你的机器,可能有
必要在/etc/fbtab 文件中添加这些节点来保护系统安全 。可看一下fstab 的联机手册以了
解更多信息 。
依上述的简单程序,建立任何不在GENERIC 里的硬件设备节点 。
注意: 所有的SCSI 控制器都使用一样的设备节点,所以你无须重新建立节点 。另外,
网卡与SLIP/PPP 虚拟设备并没有任何设备节点,所以你不必担心怎么建立节点 。
9.6 如果出现问题怎么办?
在定制一个内核时,可能会出现四种问题 。它们是:
配置失败
第17 页FreeBSD 使用手册
当你在你的内核描述中看到config 命令失败,你可能在某个地方发生了一个小错误 。
幸运的是,config 会显示出错的那一行的行号,你可以用vi 编辑器做修改 。例如,
如果你看到:config:line 17:syntax error
你可以在vi 中用命令模式输入17G 来跳到17 行 。比较GENERIC 内核或其它参考资料,
以确定你打对关键字 。
编译错误
如果编译失败,通常会在你的内核描述中提示一个错误,但config 并没有找出错误 。

推荐阅读