AIX命令参考大全,卷 5,s - u - strload 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 5,s - u

strload 命令

用途

装入和配置可移植流环境(PSE)。

语法

strload [ -u | -q ] [ -f File ] [ -d List ] [ -m List ]

描述

strload 命令使系统管理员能够装入和卸装驱动程序和模块,并且查询 PSE 和它的从属的装入状态。

缺省情况下,strload 命令根据 /etc/pse.conf 文件装入 PSE。 -f 标志允许管理员使用备用的配置文件。 -d-m 标志是用来指定不在配置文件中(比如正在开发新的驱动程序时)的驱动程序和模块。 -q 标志报告引用的驱动程序和模块的系统装入状态(内核的存在)。

配置文件

配置文件是一个平面 ASCII、面向行的数据库。注释由 #(镑符号)引入,并继续到行尾。忽略空白行。每个记录的格式为:

attributes filename [argument [node [minor ...] ] ]

字段由空格、制表符或空格和制表符隔开。破折号(-)可以用来指定字段值,表示使用缺省值。字段定义如下:

属性 描述要装入的扩展名。可接受的值有:
d
指定驱动程序。
m
指定模块。
s
创建节点作为标准(非克隆)的设备。
+
指定可以多次配置扩展名。所有包含扩展文件名的行都必须指定这个值。
文件名 指定包含该扩展名的对象文件。如果发出的命令在要装入、卸装或查询的驱动程序或模块的文件名中有“/”(斜杠),则 strload 命令在文件名字段中明确地使用该值。如果文件名条目中没有“/”,则 strload 命令首先在当前目录中寻找该驱动程序或模块的副本。如果该驱动程序或模块不在当前目录中,strload 将在 /usr/lib/drivers/pse 目录中寻找该驱动程序或模块。

注:建议从根目录(/)发出 strload 命令。进行装入、卸装和查询的 strload 命令应该始终从相同的目录发出。

内核扩展名装入程序“要求”在装入、卸装和查询时必须使用相同的路径名。这个要求,加上文件名是由 strload 确定,可能会带来问题。 因为内核在寻找匹配时在文件名上执行 strcmp(),所以 strload 命令使用的路径名中的每个字节,必须与内核扩展名装入程序使用的路径名中的每个对应位置上的字节“严格”匹配。如果 strload 命令是从一个不同的目录发出以卸装该模块或驱动程序,则发生以下情况之一:

例如:

以下方案(“不”推荐)将导致卸装“spx”(也称为“A”)。这可能并不是用户期望的效果。

mkdir /tmp/foo /tmp/bar
cp /usr/lib/drivers/pse/spx /tmp/foo/A
cp /bin/ls /tmp/bar/A
cd /tmp/foo
strload -d A      # 由于在当前目录中找到“A”,
                  # 故装入程序知道“A”的路径
                  # 和文件名
cd /tmp/bar
strload -q -d A   # 由于当前路径中有“A”,故报告“yes”。
                  # 请注意在 /tmp/bar 中的文件“A”
                  # 不同于 /tmp/foo 中的文件“A”,
                  # 但装入程序并不介意,
                  # 因为它是根据路径名
                  # 来识别文件的。
strload -u -d A   # 卸装 spx(也称为“A”)!

以下内容是一个错误方案:

mkdir /tmp/foo2 /tmp/bar2
cp /usr/lib/drivers/pse/spx /tmp/foo2/A
cd /tmp/foo2
strload -d A     # 装入程序知道“A”的路径和文件名,
                 # 因为在当前目录中
                 # 找到“A”。
cd /tmp/bar2
strload -q -d A  # 回答“no”。/tmp/bar2 中没有文件名与“A”匹配,
                 # 因而 strload 将路径名“/usr/lib/drivers/pse”加在“A”前。
                 # 未找到
                 # “/usr/lib/drivers/pse/A”,
                 # 所以 strload 回答“no”。
strload -u -d A  # 失败 - “A”不存在。

以下内容是一个错误方案:

cd /usr/lib/drivers/pse
strload -d spx   # 装入程序知道“spx”的路径和文件名,
                 # 因为在当前目录中
                 # 找到“spx”。
cd /
strload -q -d spx # 回答“no”。在根目录(/)里没有文件名
                  # 与“spx”相匹配,因而 strload 将
                  # 路径名“/usr/lib/drivers/pse”加在
                  # “spx”之前。“/usr/lib/drivers/pse/spx”
                  # 既然存在就会被找到,因此 strload 将
                  # “/usr/lib/drivers/pse/spx”提供给装入程序。
                  # strcmp() 运行失败是由于
                  # “/usr/lib/drivers/pse/spx”和“spx”
                  # 不严格匹配。
strload -u -d spx # 失败 - “spx”不存在。

参数 对于 strload 命令,该参数没有含义。这个字段是可选的。在调用它的配置例程时,将它传递到扩展名。其解释是特定于该扩展名的。缺省参数是 filename 字段中的值。
节点 指定要创建的节点名称。这个字段是可选的。它只适用于驱动程序,并且只在装入驱动程序时作为创建的节点名使用。缺省情况下,创建的节点是 /dev/filename
次要 指定为此驱动程序创建的附加的、非克隆的节点。 这个字段是可选的。通过把次要数字附加到克隆的驱动程序节点名上,创建该节点名。给出的次要数字不超过 5(从 0 到 4),并且对每个数字都创建一个节点。

如果命令行中明确地给出了配置文件的名称,则 -d-m 标志不会使配置文件被忽略,情况如下:

strload -f /tmp/my.conf -d newdriver

注:-d-m 标志不会覆盖配置文件。即如果使用该配置文件装入驱动程序 dgb-d 标志将试图重新装入它,但会失败。 在 -d-m 标志前处理该配置文件。

-d-m 标志,List 变量是以逗号分隔的文件名的列表,其中每个文件名包含一个单独的 PSE 驱动程序或模块。就像在该配置文件中找到以下表单之一中的某行,进行配置处理:

d filename

m filename

标志

-d List 列出要装入或卸装的 PSE 设备驱动程序。List 变量指定一个以逗号分隔的驱动程序对象名的列表。
-f File 根据 File 变量显示的文件中所包含的配置信息,配置 PSE。缺省的配置文件是 /etc/pse.conf
-m List 列出要装入或卸装的 PSE 模块。List 变量指定一个以逗号分隔的模块对象名的列表。
-q 报告扩展名的装入状态。
-u 卸装扩展名。

示例

  1. 输入以下命令来装入 PSE(如果还未装入)、/usr/lib/drivers/pse/ 目录中的 dgbssb 驱动程序以及当前目录中的 aoot 模块,但不使用配置文件:

    root# strload -d dgb,ssb -m ./aoot
  2. 要只卸装 aoot 模块,请输入:

    root# strload -u -m ./aoot
  3. 输入以下命令询问 spx 驱动程序是否存在:

    root# strload -q -d 
    spx

    如果不存在,将产生以下输出:

    spx
    : no
  4. 以下内容是一个示例配置文件:

    #示例配置文件
    d       dgb                                     #行 1
    d       mux    -       -       0                #行 2
    ds      foo                                     #行 3
    d+      xtiso  tcp     /dev/xti/tcp             #行 4
    d+      xtiso  udp     /dev/xti/udp             #行 5
    m       aoot                                    #行 6

    行 1 装入 dgb 驱动程序扩展名,作为名为 /dev/dgb 的克隆设备。传递到 dgb 配置例程的参数是 dgb

    行 2 装入 mux 驱动程序扩展名,作为名为 /dev/mux 的克隆设备,同时创建一个带有次要数字 0(零)的标准设备名 /dev/mux0。(用次要数字 0 到 4 创建的设备名不超过 5 个。)

    行 3 装入 foo 驱动程序扩展名,作为一个名为 /dev/foo 的标准设备(非克隆)。次要数字是 0。

    行 4 和行 5 装入 xtiso 驱动程序扩展名,并且将其配置两次:一次作为 tcp,而另一次作为 udp。创建的克隆节点是 /dev/xti/tcp/dev/xti/udp。调用 xtiso 的配置例程两次:一次使用参数 tcp, 而另一次使用参数 udp

    行 6 装入 aoot 模块扩展名。不创建节点,并且将值 aoot 传递给该配置例程。

文件

/usr/lib/drivers/pse/* 包含 PSE 内核扩展名。
/etc/pse.conf 缺省的 PSE 配置文件。
/usr/sbin/strload 包含 strload 命令。

相关信息

slibclean 命令、strerr 命令。

AIX 5L Version 5.2 Communications Programming Concepts 中的 Configuring Drivers and Modules in the Portable Streams Environment (PSE)List of Streams CommandsSTREAMS Overview

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]