手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

update_drv(1M)

名称

update_drv - 修改设备驱动程序属性

用法概要

update_drv [-f | -v] [-n] driver_module
update_drv [-b basedir] [-f | -v] [-n] -a [-m 'permission'] 
     [-i 'identify-name'] [-P 'privilege'] [-p 'policy'] driver_module
update_drv [-b basedir] [-f | -v] [-n] -d [-m 'permission'] 
     [-i 'identify-name'] [-P 'privilege'] [-p 'policy'] driver_module

描述

update_drv 命令可以将对已安装的设备驱动程序所做的属性更改通知系统。该命令可用于重新读取 driver.conf(4) 文件,或者用于添加、修改或删除驱动程序的次要节点权限或别名。

不带选项时,update_drv 将重新加载 driver.conf 文件。

成功更新别名后,驱动程序绑定将在重新配置引导时或热插拔设备时生效。

成功更新权限后,仅使用修改后的文件权限集创建新的驱动程序次要节点。现有的驱动程序次要节点不会被修改。

选项

支持以下选项:

–a

添加 permissionaliasesprivilegepolicy 条目。

指定 –a 选项时,可以添加或更新权限条目(使用 –m 选项)、驱动程序的别名条目(使用 –i 选项)、设备特权(使用 –P 选项)或者设备策略(使用 –p 选项)。如果遇到了匹配的次要节点权限(具有相同的驱动程序名称和次要节点),则将其替换。如果遇到了匹配的别名条目(具有不同的驱动程序名称和相同的别名),则报告错误。

–a–d 选项相互排斥。

–b basedir

在根目录为 basedir 的系统上安装或修改驱动程序,而不是在执行 update_drv 的系统上安装。


注 - 不得使用 –b 选项引用任何非全局区域的根文件系统。否则,可能会损坏全局区域的文件系统,危及全局区域的安全性,或者损坏非全局区域的文件系统。请参见 zones(5)
–d

删除 permissionaliasesprivilegepolicy 条目。

指定 –m permission–i identify-name–P privilege–p policy 选项时需要使用 –d 选项。

–d–a 选项互斥。

如果该条目不存在,update_drv 将返回错误。

–f

强制系统重新读取 driver.conf 文件(即使无法卸载驱动程序模块时也是如此)。有关详细信息,请参见“附注”部分

如果没有此选项,则当删除驱动程序的别名时,update_drv 将更新下一次引导的绑定文件,但是,当仍存在一个或多个引用该驱动程序别名绑定的设备时,将返回错误。使用 –f 选项时,update_drv 在仍存在此类设备时不返回错误。

–i 'identify-name'

以空格分隔的驱动程序别名列表。如果未指定 –a–d 选项,则将忽略此选项。identify-name 字符串是必需的。如果需要删除所有别名,推荐使用 rem_drv(1M)

–m 'permission'

为设备驱动程序的设备节点指定一个以空格分隔的文件系统权限列表。如果未指定 –a–d 选项,则将忽略此选项。permission 字符串是必需的。

–n

不要尝试装入和附加 device_driver,只需为该驱动程序修改系统配置文件。

–p 'policy'

对于 –a 选项,policy 是一个以空格分隔的完整设备策略列表。对于 –d 选项,policy 是一个以空格分隔的次要设备规范列表。次要设备规范与 /etc/security/device_policy 中的条目完全匹配,即,不执行通配符匹配。

–P 'privilege'

对于 –a 选项,privilege 是一个以逗号分隔的附加驱动程序特权列表。对于 –d 选项,privilege 是单项特权。在 /etc/security/extra_privs 文件中添加或删除特权。

–v

详细模式。

示例

示例 1 添加或修改现有的次要权限条目

以下命令添加或修改 clone 驱动程序的现有次要权限条目:


example# update_drv -a -m 'llc1 777 joe staff' clone

示例 2 删除所有次要权限条目

以下命令删除 usbprn 驱动程序、USB 打印机驱动程序的所有次要权限条目:


example# update_drv -d -m '* 0666 root sys' usbprn

示例 3 添加驱动程序别名条目

以下命令添加标识字符串为 usb459,20ugen 驱动程序的驱动程序别名条目:


example# update_drv -a -i '"usb459,20"' ugen

示例 4 重新读取 ohci 驱动程序的 driver.conf 文件

以下命令重新读取 driver.conf(4) 文件。


 example# update_drv ohci

示例 5 需要定制特权以打开 TCP 套接字

以下命令需要定制特权以打开 TCP 套接字:


example#   update_drv -a -P net_tcp -p \
     'write_priv_set=net_tcp read_priv_set=net_tcp' tcp

示例 6 建立一个面向路径的别名

以下命令建立一个面向路径的别名以强制将特定的驱动程序 qlt 用于特定的设备路径:


example#   update_drv -a -i '"/pci@8,600000/SUNW,qlc@4"' qlt

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

add_drv(1M)modunload(1M)rem_drv(1M)driver.conf(4)attributes(5)privileges(5)

附注

如果未指定 –a–d 选项,update_drv 将不会重新读取 driver.conf 文件。

强制更新 driver.conf 文件将重新加载 driver.conf 文件,但不重新加载驱动程序二进制模块。在这种情况下,无法分离的设备将引用旧 driver.conf 文件中的驱动程序全局属性,而剩余的驱动程序实例将引用新的 driver.conf 文件中的全局属性。

可以添加一个别名,从而更改正在由不同驱动程序管理的设备的驱动程序绑定。使用 –a 选项强制更新时,将尝试绑定到新的驱动程序;如果无法绑定,则报告错误。如果指定了 –m–i–P–p 选项中的多个选项,则强制标志将尝试修改别名或权限。即使其他操作失败,也会执行此操作;反之亦然。