系统管理指南:设备和文件系统

USB 总线说明

USB 规范是公用免费规范。该规范定义了总线和连接器的电子和机械接口。

USB 采用由集线器为 USB 设备提供附着点的拓扑结构。主机控制器包含根集线器,该集线器是系统中所有 USB 端口的起点。有关集线器的更多信息,请参见USB 主机控制器和集线器

图 7–1 USB 物理设备分层结构

图中显示了带有三个活动 USB 端口的系统,其中包括复合设备(集线器和打印机)和组合设备(键盘和鼠标)。

图 7–1 显示了带有三个活动 USB 端口的系统。第一个 USB 端口连接 USB 内存条。第二个 USB 端口连接外部集线器,该集线器又连接 cdrw 设备和键盘/鼠标复合设备。作为复合设备,此键盘包含 USB 控制器,该控制器可以操作键盘和连接的鼠标。键盘和鼠标共享公用的 USB 总线地址,因为它们由同一个 USB 控制器定向。

图 7–1 还显示了作为组合设备的集线器和打印机的示例。该集线器是与打印机封装在同一个箱子中的外部集线器。打印机与集线器永久连接。集线器和打印机具有各自独立的 USB 总线地址。

以下列出了图 7–1 中显示的一些设备的设备树路径名。

内存条

/pci@1f,4000/usb@5/storage@1

键盘

/pci@1f,4000/usb@5/hub@2/device@1/keyboard@0

鼠标

/pci@1f,4000/usb@5/hub@2/device@1/mouse@1

cdrw 设备

/pci@1f,4000/usb@5/hub@2/storage@3

打印机

/pci@1f,4000/usb@5/hub@3/printer@1

USB 设备和驱动程序

具有类似属性和服务的 USB 服务组成设备类。 每个设备类都有对应的驱动程序。类中的设备由同一个设备驱动程序对进行管理。但是,USB 规范也允许使用不属于特定类的供应商专有设备。

人工接口设备 (Human Interface Device, HID) 类包含用户控制的设备,如以下设备:

通信设备类包含以下设备:

其他设备类包括以下类:

每个 USB 设备都包含反映其所属类的描述符。设备类可指定其成员在配置和数据传输中的行为方式。可以从以下站点获取其他的类信息:

http://www.usb.org

有关 Solaris 发行版支持的 USB 设备的更多信息,请参见 usb(7D)

USB 驱动程序增强功能

从 Solaris 9 4/04 发行版开始,包括以下 USB 驱动程序增强功能。

EHCI、OHCI 和 UHCI 驱动程序

EHCI 驱动程序的功能包括:

使用 prtconf 命令输出可确定系统是支持 USB 1.1 设备还是 USB 2.0 设备。例如:


# prtconf  -D | egrep "ehci|ohci|uhci"

如果 prtconf 输出标识了 EHCI 控制器,则系统支持 USB 2.0 设备。

如果 prtconf 输出标识了 OHCI 或 UHCI 控制器,则系统支持 USB 1.1 设备。

Solaris USB 体系结构 (Solaris USB Architecture, USBA)

USB 设备可以表示为两级设备树节点。设备节点表示整个 USB 设备。一个或多个子 接口 节点表示设备上的各个 USB 接口。

驱动程序绑定是通过使用兼容的名称属性实现的。有关更多信息,请参阅 IEEE 1275 USB 绑定的 3.2.2.1 节以及《编写设备驱动程序》。驱动程序可以绑定至整个设备并控制所有接口,也可以只绑定至一个接口。如果供应商或类驱动程序不要求绑定至整个设备,则可以将通用 USB 多接口驱动程序绑定至设备级节点。此驱动程序会通过使用 IEEE 1275 绑定规范的 3.3.2.1 节中定义的兼容名称属性,尝试将各驱动程序绑定至每个接口。

Solaris USB 体系结构 (USB Architecture, USBA) 遵循 USB 1.1 和 USB 2.0 规范,并且是 Solaris 设备驱动程序接口 (Device Driver Interface, DDI) 的一部分。USBA 模型与 Sun 公用 SCSI 体系结构 (Sun Common SCSI Architecture, SCSA) 类似。如下图所示,USBA 是一个薄层,用于为客户机驱动程序提供通用抽象 USB 传输层,进而为这些驱动程序提供实现核心通用 USB 功能的服务。

图 7–2 Solaris USB 体系结构 (Solaris USB Architecture, USBA)

图中显示了客户机驱动程序、USBA 框架、主机控制器驱动程序以及设备总线之间的关系。