8.5. 创建设备节点

如果您在运行 FreeBSD 5.0 或更高版本, 则可以略过这节。 新版本使用 devfs(5) 来分配设备节点, 这一过程对用户是透明的。

内核中的几乎每个设备在 /dev 目录中都有对应的 “节点” 项。 这些节点看上去像是普通的文件, 但事实上却是程序在使用对应的设备时, 与内核联系的入口。 Shell 脚本 /dev/MAKEDEV 在首次安装操作系统时会创建几乎所有能够支持的设备节点。 然而, 它并不会创建 所有的 节点, 因此当您增加了某些设备的支持时, 就需要检查这个目录中是否有对应的项了, 如果没有, 就应该添加它们。 这有一个简单的例子:

假定在内核中加入了IDE CD-ROM的支持。可以这样加入:

device acd0

这意味着您应当在/dev目录下找一些以acd0为起点的入口, 通常后面有一个字母,像是以c,或者r开头,表示这是一个“raw”设备。 如果那些文件不在那儿,就必须改变到/dev目录然后键入:

# sh MAKEDEV acd0

这些脚本完成后,您要在/dev目录下确认有acd0cracd0c等几个入口,这表示程序已经正确执行。

以下是加入声卡节点的例子:

# sh MAKEDEV snd0

Note: 当创建完诸如声卡这样的设备节点时,如果其他人有权访问您的机器, 可能有必要在/etc/fbtab文件中添加这些节点来保护系统安全。 更多的信息参考fbtab(5)

依上述的简单程序,建立任何不在GENERIC里的硬件设备节点

Note: 所有的SCSI控制器都使用一样的设备节点,所以您无须重新建立节点。 另外,网卡与SLIP/PPP虚拟设备并没有任何设备节点,所以您不必担心怎么建立节点。