在 Oracle® Solaris 11.2 中管理设备

退出打印视图

更新时间: 2014 年 7 月
 
 

使用 cfgadm 命令对 USB 设备执行热插拔

可以在正在运行的系统中添加或移除 USB 设备,而不必使用 cfgadm 命令。但是,cfgadm 命令可用于对 USB 设备执行逻辑热插拔操作。在逻辑热插拔操作过程中,不必以物理方式操作设备。因此,可以远程禁用或复位不工作的 USB 设备,而不必移除设备本身。cfgadm 命令还可用于显示 USB 设备树(包括制造商和产品信息)。

cfgadm 命令在 USB 设备上的工作方式与其他可热插拔设备相同。有关该命令的工作方式的更多概念信息和概述信息,请参见Chapter 2, 动态配置设备中的相关各节。

以下 cfgadm 命令适用于包括 USB 设备在内的所有设备。请参见Chapter 2, 动态配置设备中的详细信息:

cfgadm -l[a]

显示有关设备的信息。

cfgadm -c configure device; cfgadm -c unconfigure device

配置或取消配置设备。

cfgadm -c connect device; cfgadm -c disconnect device

连接设备或断开设备连接。

cfgadm -x usb-option device

对 USB 设备执行逻辑操作。此命令特定于 USB 设备。


注 -  prtconf 命令还可显示包括 USB 设备在内的所有设备的配置信息。

以下示例显示了如何使用 cfgadm 命令对 USB 设备执行热插拔操作。输出样例仅显示与 USB 设备相关的信息。实际的命令输出取决于系统上的设备。

示例 13-3  显示 USB 总线信息
$ cfgadm
Ap_Id                    Type         Receptacle   Occupant     Condition
usb0/4.5                 usb-hub      connected    configured   ok
usb0/4.5.1               usb-device   connected    configured   ok
usb0/4.5.2               usb-printer  connected    configured   ok
usb0/4.5.3               usb-mouse    connected    configured   ok
usb0/4.5.4               usb-device   connected    configured   ok
usb0/4.5.5               usb-storage  connected    configured   ok
usb0/4.5.6               usb-communi  connected    configured   ok
usb0/4.5.7               unknown      empty        unconfigured ok

usb0/4.5.1 为例,您可以从输出获取以下信息:

  • usb0 指的是第一个 USB 控制器。

  • 设备名称后以句点分隔的 3 个数字指示系统中包括一个根集线器和 2 个外部集线器。

    • 第一个数字指的是控制器根集线器的端口 4。

    • 第二个数字指的是第一级外部集线器的端口 5。

    • 第三个数字指的是第二级外部集线器的端口 1。

请注意,在执行实际热插拔步骤前后显示有关系统设备的信息是一种有益的做法。这些信息可提供以下帮助:

  • 可以正确识别要动态重新配置的总线或设备。

  • 可以根据总线或设备的状态验证重新配置是否成功完成。

还可以定制要针对某个 USB 设备显示的特定信息。以下示例提供有关设备的完整信息。

$ cfgadm -l -s "cols=ap_id:info"
Ap_Id       Information
usb0/4.5.1  Mfg: Inside Out Networks Product: Edgeport/421 NConfigs: 1
            Config: 0  : ...
usb0/4.5.2  Mfg: <undef> Product: <undef>   NConfigs: 1 Config: 0 ...
usb0/4.5.3  Mfg: Mitsumi Product: Apple USB Mouse NConfigs: 1
            Config: 0 ...
usb0/4.5.4  Mfg: NMB  Product: NMB USB KB/PS2 M NConfigs: 1 Config: 0
usb0/4.5.5  Mfg: Hagiwara Sys-Com  Product: SmartMedia R/W  NConfigs: 1
            Config: 0 : ...
usb0/4.5.6  Mfg: 3Com Inc.  Product: U.S.Robotics 56000 Voice USB Modem
            NConfigs: 2 ...
usb0/4.5.7
示例 13-4  取消配置 USB 设备

可以取消配置 USB 设备并使其仍保持与系统的物理连接。该设备将继续包含在 prtconf 命令输出中。但是,没有任何驱动程序会附加到该设备。

# cfgadm -c unconfigure usb0/4.7
Unconfigure the device: /devices/pci@8,700000/usb@5,3/hub@4:4.7
This operation will suspend activity on the USB device
Continue (yes/no)? y

# cfgadm -l
Ap_Id                    Type         Receptacle   Occupant     Condition
usb0/4.5                 usb-hub      connected    configured   ok
usb0/4.5.1               usb-device   connected    configured   ok
usb0/4.5.2               usb-printer  connected    configured   ok
usb0/4.5.3               usb-mouse    connected    configured   ok
usb0/4.5.4               usb-device   connected    configured   ok
usb0/4.5.5               usb-storage  connected    configured   ok
usb0/4.5.6               usb-communi  connected    configured   ok
usb0/4.5.7               unknown      empty        unconfigured ok
usb0/4.6                 usb-storage  connected    configured   ok
usb0/4.7                 usb-storage  connected    unconfigured okDevice is unconfigured.
示例 13-5  配置 USB 设备
# cfgadm -c configure usb0/4.7

# cfgadm usb0/4.7
Ap_Id                  Type         Receptacle  Occupant    Condition
usb0/4.7               usb-storage  connected   configured  ok
示例 13-6  以逻辑方式断开 USB 设备连接

在本示例中,USB 设备仍保持与系统的物理连接。但是,该设备在以逻辑方式断开连接后变为不可用。prtconf 命令会将此设备包含在输出中。

# cfgadm -c disconnect -y usb0/4.7
# cfgadm usb0/4.7
Ap_Id                  Type      Receptacle    Occupant      Condition
usb0/4.7               unknown   disconnected  unconfigured  okThe device is disconnected and becomes unavailable.
示例 13-7  以逻辑方式连接 USB 设备

无需实际接触 USB 设备即可远程连接该设备。但是,要使逻辑连接成功,设备必须以物理方式连接到系统。

# cfgadm -c configure usb0/4.7

# cfgadm usb0/4.7
Ap_Id                  Type         Receptacle  Occupant    Condition
usb0/4.7               usb-storage  connected   configured  okThe device is connected and becomes available.
示例 13-8  以逻辑方式断开 USB 设备子树连接

以下示例将删除集线器之下的整个设备分层结构。

# cfgadm -c disconnect -y usb0/4

# cfgadm usb0/4
Ap_Id                  Type       Receptacle   Occupant     Condition
usb0/4                 unknown    disconnected unconfigured okAll devices under port 4 of the hub are disconnected.
示例 13-9  复位 USB 设备

复位设备会先移除再重新创建该设备。可以复位行为异常的设备。本示例假定设备不在使用中。如果任何应用程序正在使用该设备,复位将失败。

# cfgadm -x usb_reset -y usb0/4.7

# cfgadm usb0/4.7
Ap_Id                  Type         Receptacle   Occupant     Condition
usb0/4.7               usb-storage  connected    configured   ok