大多数设备文件在您安装 Linux 系统后就已经创建好并可供使用。如果碰巧您需要创建一个未提供的设备文件,那么您应该首先尝试使用 MAKEDEV 脚本。此脚本通常位于/dev/MAKEDEV但也可能在以下位置有一个副本(或符号链接)/sbin/MAKEDEV。如果它不在您的路径中,那么您将需要显式指定其路径。
通常,该命令的使用方式如下
# /dev/MAKEDEV -v ttyS0 create ttyS0 c 4 64 root:dialout 0660 |
ttyS0是一个串行端口。主节点号和次节点号是内核理解的数字。内核使用数字来指代硬件设备,这对于我们来说很难记住,所以我们使用文件名。访问权限 0660 意味着所有者(在本例中为 root)的读写权限,以及组成员(在本例中为 dialout)的读写权限,而其他任何人都没有访问权限。
MAKEDEV 是创建不存在的设备文件的首选方法。然而,有时 MAKEDEV 脚本可能不知道您想要创建的设备文件。这时就需要使用 mknod 命令。为了使用 mknod,您需要知道您想要创建的设备的主节点号和次节点号。而devices.txt内核源代码文档中的文件是此信息的权威来源。
举个例子,假设我们的 MAKEDEV 脚本版本不知道如何创建/dev/ttyS0设备文件。我们需要使用 mknod 来创建它。我们从查看devices.txt中得知它应该是一个字符设备,主节点号为 4,次节点号为 64。因此,我们现在知道创建该文件所需的一切信息。
# mknod /dev/ttyS0 c 4 64 # chown root.dialout /dev/ttyS0 # chmod 0644 /dev/ttyS0 # ls -l /dev/ttyS0 crw-rw---- 1 root dialout 4, 64 Oct 23 18:23 /dev/ttyS0 |
有关内核正在使用的硬件资源的更多信息可以在/proc目录中找到。请参阅第 3 章中的 3.7 节。