跳过导航链接 | |
退出打印视图 | |
手册页第 1M 部分:系统管理命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 为其他设备和伪设备添加 /dev 条目
/usr/sbin/devlinks [-d] [-r rootdir] [-t table-file]
devfsadm(1M) 现在是用于 /dev 和 /devices 的首选命令,应使用其来代替 devlinks。
devlinks 用于创建从 /dev 目录树到 /devices 目录树下实际块设备节点和字符特殊设备节点的符号链接。根据 table-file(缺省情况下为 /etc/devlink.tab)中的规范创建链接。
每次对系统进行重新配置后引导时会调用 devlinks,并且只能在运行 drvconfig(1M) 后才能运行 devlinks。
table-file(通常为 /etc/devlink.tab)是一个 ASCII 文件,每个记录占用一行。允许使用注释行,注释行必须以井号字符 (`#') 开头。每个条目必须至少包含两个字段,但可能包含三个字段。使用单个 TAB 字符分隔这些字段。
这些字段包括:
devinfo 节点规范,用于为 devinfo 节点创建链接。该规范包含一个或多个关键字-值对,其中使用等号 ('=') 将关键字与值隔开,而通过分号将各个关键字-值对彼此分隔。
可能的关键字包括:
devinfo 设备类型。可能的值在 ddi_create_minor_node(9F) 中指定。
节点的名称。这是 /devices 树条目名称的一部分,位于第一个 '@' 或 ':' 字符之前。
节点名称的地址部分。这是节点名称的一部分,位于 '@' 和 ':' 字符之间。节点名称中有可能没有地址部分,许多伪设备节点即是这种情况。如果在 addr 之后给定数字,它将指定与地址字段中以逗号分隔的特定子字段匹配:addr1 匹配第一个子字段,addr2 匹配第二个子字段,依此类推。addr0 等效于 addr,与整个字段匹配。
节点名称的次要部分-':' 之后的名称部分。与上述的 addr 一样,minor 关键字之后的数字指定要匹配的子字段。
在这四个规范中,只有 type 规范必须始终存在。
与 devinfo 节点对应的 /dev 链接的规范。该字段允许 devlinks 为它找到的 /devices 节点确定匹配的 /dev 名称。该字段规范使用转义序列来允许 /devices 名称的各个部分包括在 /dev 名称中,或者允许在创建节点名称过程中使用计数器。如果使用计数器来创建名称,绝对必须指定计数器之前的名称部分,并且 /dev/ 子目录中匹配的所有名称(一直到并且包括计数器)都被视为同一设备的子设备。这意味着它们都应指向相同的目录,即 /devices/ 树下的 name 和 address。
可能的转义序列包括:
替换对应的 devinfo 节点名称的 device-name(名称)部分。
替换对应的 devinfo 节点名称的 address 组成部分的第 n 个组成部分。各个子组成部分以逗号分隔,子组成部分 0 表示整个 address 组成部分。
替换对应的 devinfo 节点名称的 minor 组成部分的第 n 个子组成部分。各个子组成部分以逗号分隔,子组成部分 0 表示整个 minor 组成部分。
替换以 n 开头的 'counter' 的值。每个设备规范只能有一个计数器,需要为其选择计数器值并使这些值尽可能的小,从而不会与已存在的链接名称冲突。
在设备规范中,counter 序列不应显式后跟数字,也不应因其他转义序列扩展而后跟数字。如果出现这种情况,它将不可能将已存在的链接与它们的计数器条目正确匹配,因为将不可能明确地解析已存在的 /dev 名称。
指向初始 /dev 链接(在字段 2 中指定)的额外 /dev 链接的可选规范。该字段可能包含 counter 转义序列(请参见针对 dev-spec 字段的描述),但不能包含任何其他转义序列。它提供了一种为特定 /dev 名称指定别名的方法。
支持以下选项:
调试模式-输出找到的所有 devinfo 节点,并指示将创建哪些链接,但不执行任何操作。
使用 rootdir 作为在其下创建设备节点和链接的 /dev 和 /devices 目录的根目录。更改该根目录并不会更改 /etc/devlink.tab 缺省表的位置,也不会更改应用到为 -t 选项提供的文件名的根目录。
设置 devlinks 所使用的表文件来指定必须创建的链接。如果未指定该选项,将使用 /etc/devlink.tab。该选项提供了一种指示 devlinks 仅执行特定工作的方法,因为只有 devlinks 应当创建的链接类型可以在命令文件中指定并输入到 devlinks。
如果 devlinks 在 table-file 的某一行中发现错误,它将在标准输出中输出一条警告消息,然后继续进入 table-file 中的下一行,而不执行错误规则指定的任何操作。
如果由于某个与文件系统相关的原因而无法创建链接,它将输出一条错误消息,然后继续执行当前规则。
如果无法读取所需数据,它将输出一条错误消息,然后继续进行下一个 table-file 行。
示例 1 使用 /etc/devlink.tab 字段
以下是 /etc/devlink.tab 字段的示例:
type=pseudo;name=win win\M0 type=ddi_display framebuffer/\M0 fb\N0
第一个示例指出,具有 win 名称组成部分的所有 pseudo 类型设备将链接到 /dev/winx,其中 x 是 devinfo-name 的次要组成部分(对于 win 驱动程序,它始终为一位数)。
第二个示例指出,所有 ddi_display 类型的 devinfo 节点将链接到 /dev/framebuffer 目录下的条目,而名称与 /devices 名称的整个次要组成部分相同。此外,将创建从 /dev/fbn 指向 /dev/framebuffer 下条目的额外链接。该条目将使用计数器来结束名称。
用于一般用途的其他设备的条目
设备节点
缺省规则文件
有关下列属性的说明,请参见 attributes(5):
|
devfsadm(1M)、attributes(5)、devfs(7FS)、ddi_create_minor_node(9F)
很容易会构造相互矛盾的链接规范,或永远无法匹配的规范。该程序不检查这些情况。