Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1315588
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-09 18:19:12


Solaris 10 发行版在USB 设备方面的新增功能
第7 章• 使用USB 设备(概述) 125
Solaris 8HW5/03 和更高发
行版Solaris 9 发行版Solaris 10
打印机SPARC 和x86 SPARC 和x86 SPARC 和x86
串行设备(Edgeport
(usbser_edge(7D))、Prolific
(usbsprl(7D))、Keyspan
(usbsksp(7D)))
SPARC 和x86 SPARC 和x86 SPARC 和x86
存储设备(scsa2usb(7D)) SPARC 和x86 SPARC 和x86 SPARC 和x86
用户空间USB 设备管理库
(libusb(3LIB))
不支持不支持SPARC 和x86
注:
 系统仅支持USB 1.x 音频设备,不支持任何USB 2.0 音频设备。
 与USB 2.0 集线器连接的USB 1.x 音频设备只能在Solaris 10 发行版中使用,该集线器与
USB 2.0 端口连接。有关更多信息,请参见usb_ac(7D) 和usb_as(7D)。
 USB 驱动程序不支持的设备可能包含libusb 应用程序,如gphoto2、gtkam 和
pilotlink。有关更多信息,请参阅/usr/sfw/share/doc/libusb/libusb.txt 。
 Solaris 8 和Solaris 9 发行版-有关USB 双框架问题,请访问以下站点:

有关与海量存储设备关联的任务信息,请参见第8 章。
有关ugen 的更多信息,请参见第129 页中的“USB 驱动程序增强功能”。
USB 设备概述
通用串行总线(Universal Serial Bus, USB) 由PC 行业开发,用于提供将外围设备(如键盘、
鼠标设备和打印机)连接到系统的低成本解决方案。
USB 连接器适用于以某种方式连接的唯一一种类型的电缆。USB 的主要设计意图是缓解对
不同设备的多种连接器类型的需求。此设计可减少系统后面板上各种连接的混乱。
设备与外部USB 集线器或计算机本身的根集线器上的USB 端口连接。由于集线器有多个端
口,因此从集线器可以引出多个设备树分支。
有关更多信息,请参见usb(7D) 或转至以下站点:

USB 设备概述
126 系统管理指南:设备和文件系统• 2006 年9 月
常用的USB 首字母缩略词
下表介绍了Solaris OS 中使用的USB 首字母缩略词。有关USB 组件和对应的首字母缩略词的
完整说明,请访问以下站点:

首字母缩略词定义
UGEN USB 通用驱动程序
USB 通用串行总线
USBA 通用串行总线体系结构(Solaris)
USBAI USBA客户机驱动程序接口(Solaris)
HCD USB 主机控制器驱动程序
EHCI 增强型主机控制器接口
OHCI 开放主机控制器接口
UHCI 通用主机控制器接口
USB 总线说明
USB 规范是公用免费规范。该规范定义了总线和连接器的电子和机械接口。
USB 采用由集线器为USB 设备提供附着点的拓扑结构。主机控制器包含根集线器,该集线
器是系统中所有USB 端口的起点。有关集线器的更多信息,请参见第134 页中的“USB 主
机控制器和集线器”。
USB 设备概述
第7 章• 使用USB 设备(概述) 127
图7–1USB物理设备分层结构
图7–1 显示了带有三个活动USB 端口的系统。第一个USB 端口连接USB 内存条。第二个
USB 端口连接外部集线器,该集线器又连接cdrw 设备和键盘/鼠标复合设备。作为复合设
备,此键盘包含USB 控制器,该控制器可以操作键盘和连接的鼠标。键盘和鼠标共享公用
的USB 总线地址,因为它们由同一个USB 控制器定向。
图7–1 还显示了作为组合设备的集线器和打印机的示例。该集线器是与打印机封装在同一
个箱子中的外部集线器。打印机与集线器永久连接。集线器和打印机具有各自独立的USB
总线地址。
以下列出了图7–1 中显示的一些设备的设备树路径名。
内存条
键盘/pci@1f,4000/usb@5/hub@2/device@1/keyboard@0
鼠标/pci@1f,4000/usb@5/hub@2/device@1/mouse@1
cdrw 设备
打印机
USB 设备概述
128 系统管理指南:设备和文件系统• 2006 年9 月
USB 设备和驱动程序
具有类似属性和服务的USB 服务组成设备类。每个设备类都有对应的驱动程序。类中的设
备由同一个设备驱动程序对进行管理。但是,USB 规范也允许使用不属于特定类的供应商
专有设备。
人工接口设备(Human Interface Device, HID) 类包含用户控制的设备,如以下设备:
 键盘
 鼠标设备
 游戏控制器
通信设备类包含以下设备:
 调制解调器
 以太网适配器
其他设备类包括以下类:
 音频
 显示器
 打印机
 存储设备
每个USB 设备都包含反映其所属类的描述符。设备类可指定其成员在配置和数据传输中的
行为方式。可以从以下站点获取其他的类信息:

有关Solaris 发行版支持的USB 设备的更多信息,请参见usb (7D)。
USB 驱动程序增强功能
从Solaris 9 4/04 发行版开始,包括以下USB 驱动程序增强功能。
 通用USB 驱动程序-现在可通过使用标准的UNIX® read(2) 和write(2) 系统调用的应用程
序来访问和处理USB 设备,并且无需编写专用内核驱动程序。其他功能包括:
 应用程序可访问原始设备数据和设备状态。
 驱动程序支持控制、批处理和中断(出入)传输。
有关更多信息,请参阅ugen(7D)。
 USB 串行驱动程序支持
 Digi Edgeport USB 支持-Edgeport USB 驱动程序只能用于Edgeport 设备,而不能用于
其他USB 串行设备。
 新设备可以作为/dev/term/[0-9]* 和/dev/cua/[0-9]* 进行访问。
 USB 串行端口可以像任何其他串行端口一样使用,但不可用作本地串行控制台。
用户可以很容易地理解这样一个事实,即数据是通过USB 端口运行的。
USB 设备概述
第7 章• 使用USB 设备(概述) 129
有关更多信息,请参见usbser_edge(7D) 或转至以下站点:


有关Edgeport 兼容性问题的更多信息,请访问以下站点:

 Keyspan-Keyspan USB 串行驱动程序只能用于Keyspan 设备,该驱动程序当前支持
USA-19HS 和USA-49WLC 模型。
有关更多信息,请参见usbsksp(7D)。
 Prolific-Prolific USB 串行驱动程序只能用于基于PL2303 芯片组的设备。
有关更多信息,请参见usbsprl(7D)。
 对用户编写的内核和用户级驱动程序的文档和二进制数据支持-有关USB 驱动程序开发
的最新信息,请访问:

 http://developers.sun.com/solaris/developer/support/driver/usb.html
 《Writing Device Drivers》中的第19 章,“USB Drivers”。
 《Writing Device Drivers》中的附录C,“Making a Device Driver 64-Bit Ready”。
 《Device Driver Tutorial》
 Intro(7)、Intro(9F) 和Intro(9S)
 http://developers.sun.com/
prodtech/solaris/driverdev/reference/codesamples/usb_security/index.html
EHCI、OHCI 和UHCI 驱动程序
EHCI 驱动程序的功能包括:
 符合支持USB 2.0 的增强主机控制器接口的标准。
 支持高速控制、批处理和中断传输。
 目前尚不支持高速同步事务。
 USB 2.0 芯片包含一个EHCI 控制器以及一个或多个OHCI 或UHCI 控制器。
 USB 1.1 设备插入后会动态分配给OHCI 或UHCI 控制器。USB 2.0 设备插入后会动态分
配给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 设备。
USB 设备概述
130 系统管理指南:设备和文件系统• 2006 年9 月
Solaris USB 体系结构(Solaris USBArchitecture, USBA)
USB 设备可以表示为两级设备树节点。设备节点表示整个USB 设备。一个或多个子接口节
点表示设备上的各个USB 接口。
驱动程序绑定是通过使用兼容的名称属性实现的。有关更多信息,请参阅IEEE 1275 USB 绑
定的3.2.2.1 节以及《Writing Device Drivers》。驱动程序可以绑定至整个设备并控制所有接
口,也可以只绑定至一个接口。如果供应商或类驱动程序不要求绑定至整个设备,则可以
将通用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 USBArchitecture, USBA)
关于Solaris OS 中的USB
本节介绍您应了解的有关Solaris OS 中的USB 的信息。
USB 2.0 功能
从Solaris 9 4/04 发行版开始,包括以下USB 2.0 功能:
 更好的性能-提高了连接到USB 2.0 控制器的设备的数据吞吐量,速度最快可达USB 1.1
设备的40 倍。
访问高速海量存储设备(如DVD 和硬盘)时,可以利用高速USB 协议。
 向下兼容性-与1.0 和1.1 版本的设备和驱动程序兼容,因而可以使用相同的电缆、连接
器和软件界面。
关于Solaris OS 中的USB
第7 章• 使用USB 设备(概述) 131
有关USB 设备和术语的说明,请参见第126 页中的“USB 设备概述”。
USB 2.0 设备功能和兼容性问题
USB 2.0 设备的定义是遵循USB 2.0 规范的高速设备。您可以参阅 中的
USB 2.0 规范。
要确定USB 设备在Solaris 10 以及更高发行版中的速度,请检查/var/adm/messages 文件中
类似以下内容的消息:
Dec 13 17:05:57 mysystem usba: [ID 912658 kern.info] USB 2.0 device
(usb50d,249) operating at hi speed (USB 2.x) on USB 2.0 external hub:
, scsa2usb0 at bus address 4
以下是本Solaris 发行版中支持的一些USB 设备:
 海量存储设备,如CD-RW、硬盘、DVD、数码相机、软盘、磁带机、内存条以及多格
式读卡器
 键盘和鼠标设备
 音频设备,如扬声器和麦克风
有关Solaris 发行版中已验证的USB 设备的完整列表,请访问:

通过修改scsa2usb.conf 文件,可以使用其他存储设备。有关更多信息,请参见
scsa2usb(7D)。
Solaris USB 2.0 设备支持包括以下功能:
 USB 总线速度从12 MB/秒提高到480 MB/秒。这种提高意味着如果将支持USB 2.0 规范的
设备连接到USB 2.0 端口,其运行速度将大大高于支持USB 1.1 规范的同类设备。
USB 2.0 端口可能是以下端口之一:
 USB 2.0 PCI 卡上的端口
 连接到USB 2.0 端口的USB 2.0 集线器上的端口
 SPARC 或x86 计算机主板上的端口
 要提供USB 2.0 端口,需要一块USB 2.0 PCI 卡。有关已针对Solaris 发行版验证过的USB
2.0 PCI 卡的列表,请访问:

 USB 1.1 设备的工作方式与过去一样,即使同一系统中同时有USB 1.1 和USB 2.0 设备也
是如此。
 尽管USB 2.0 设备能够在USB 1.x 端口上运行,但如果将其连接到USB 2.0 端口,则性能
会大大提高。
关于Solaris OS 中的USB
132 系统管理指南:设备和文件系统• 2006 年9 月
 USB 2.0 主机控制器具有一个高速的增强主机控制器接口(Enhanced Host Controller
Interface, EHCI) 以及一个或多个内嵌了OpenHCI 主机控制器接口(OpenHCI Host
Controller Interface, OHCI) 或通用主机控制器接口(Universal Host Controller Interface,
UHCI) 的控制器。连接到USB 2.0 端口的设备会动态分配给EHCI 或OHCI 控制器,具体
取决于它们是否支持USB 2.0。
注– 对于连接到USB 2.0 PCI 卡上某一端口的USB 2.0 存储设备,以及在同一硬件配置中
用于早期Solaris 发行版的USB 2.0 存储设备,在升级到本发行版后,可以更改设备名
称。进行这种更改是由于上述设备现在被视为USB 2.0 设备,并且由EHCI 控制器接管。
上述设备的控制器编号(/dev/[r]dsk/cwtxdysz 中的w)将被更改。
另请注意,USB 设备的速度限制为父端口可支持的速度。例如,如果USB 2.0 外部集线
器的下游设备依次是USB 1.x 集线器和USB 2.0 设备,则与USB 2.0 外部集线器连接的设
备将以全速而非高速运行。
有关USB 2.0 设备支持的更多信息,请参见ehci(7D) 和usba(7D)。
总线供电设备
总线供电的集线器使用来自与之连接的USB 总线的电力,为与其连接的设备供电。必须特
别小心不要使这些集线器过载,因为这些集线器为其下游设备提供的电力有限。
从Solaris 10 6/06 发行版开始,已实现了对USB 设备进行电能预算。此功能具有以下限制:
 禁止层叠两个总线供电的集线器。
 每个总线供电的集线器允许每个接口上的最大电流仅为100mA。
 仅允许将自备电源或低总线供电的设备连接至总线供电的集线器。不允许连接高总线供
电的设备。某些集线器或设备会报告虚假的电源来源,这种连接可能是不可预测的。
USB 键盘和鼠标设备
使用USB 键盘和鼠标设备时,请牢记以下问题:
 在重新引导期间或在SPARC 系统中出现ok 提示符时,请勿移动键盘和鼠标。系统重新
引导后,可以随时将键盘和鼠标移动到另一个集线器。插入键盘和鼠标后,它们便会再
次完全正常运行。
 在某些第三方USB 键盘上,紧靠小键盘左侧的键可能不起作用。
 SPARC-在SPARC 系统中使用USB 键盘和鼠标设备时,请牢记以下问题:
 USB 键盘上的电源键与Sun 类型5 键盘上的电源键作用不同。在USB 键盘上,可以
使用SUSPEND/SHUTDOWN 键暂停或关闭系统。但是,不能使用该键来打开系统电
源。
 引导过程完成之前,OpenBoot PROM (OBP) 限制键盘和鼠标设备只能与主板根集线
器端口连接。
关于Solaris OS 中的USB
第7 章• 使用USB 设备(概述) 133
 USB 键盘和鼠标设备不能与Sun 类型3、4 或5 键盘同时用于传统SPARC 系统(如
Ultra 80)。
 有关多键盘和鼠标设备支持的信息,请参见virtualkm(7D)。
USB 滚轮鼠标支持
从Solaris 9 9/04 发行版开始,支持以下滚轮鼠标功能:
 支持超过3 个按键的USB 或PS/2 鼠标设备。
 支持USB 或PS/2 鼠标设备的滚轮鼠标滚动功能。此项支持表明滚动USB 或PS/2 鼠标的
滚轮会在鼠标焦点所在的应用程序或窗口中产生滚动效果。StarSuiteTM、Firefox 和
GNOME应用程序均支持滚轮鼠标的滚动功能。但其他应用程序可能不支持。
USB 主机控制器和集线器
USB 集线器负责以下操作:
 监视在其端口上插入或移除设备
 对其端口上的各个设备进行电源管理
 控制传输到其端口的电源
USB 主机控制器具有一个嵌入式集线器,称为根集线器。系统的后面板上显示的端口是根
集线器的端口。USB 主机控制器负责以下操作:
 定向USB 总线。各个设备都不能任意定向总线。
 使用该设备确定的轮询间隔轮询设备。为说明轮询间隔的时间,假定设备具有足够缓
冲。
 在USB 主机控制器和与其连接的设备之间发送数据。不支持对等通信。
USB 集线器设备
 请勿在基于SPARC 的系统或基于x86 的系统上将集线器层叠超过四级。在SPARC 系统
上,OpenBootTM PROM 不能可靠地探测超过四级的设备。
 请勿以层叠样式将一个总线供电的集线器插入另一个总线供电的集线器中。总线供电的
集线器没有自己的电源。
 请勿将需要大功率电源的设备连接至总线供电的集线器。这些设备可能会被拒绝与总线
供电的集线器连接,或者可能会消耗其他设备的集线器的电源。这类设备的示例为USB
软盘设备。
SPARC: USB 电源管理
SPARC 系统完全支持暂停和恢复USB 设备。但是,请勿暂停繁忙的设备,并且请勿在暂停
关机的情况下关闭系统电源时移除设备。
关于Solaris OS 中的USB
134 系统管理指南:设备和文件系统• 2006 年9 月
USB 框架可通过启用电源管理,尽可能地对基于SPARC 的系统上的所有设备进行电源管
理。对USB 设备进行电源管理意味着集线器驱动程序将暂停与设备连接的端口。支持远程
唤醒的设备可以通知系统唤醒设备路径中的所有内容,以便可以使用该设备。如果应用程
序将I/O 发送到该设备,则主机系统也可以唤醒该设备。
缺省情况下,会对所有的HID 设备(键盘、鼠标、集线器和存储设备)、集线器设备和存
储设备进行电源管理,前提是这些设备支持远程唤醒功能。仅在两个打印作业之间对USB
打印机进行电源管理。通用USB 启动程序(UGEN) 管理的设备仅在关闭时才会进行电源管
理。
实施电源管理以减少能耗时,首先会关闭USB 叶设备的电源。关闭与集线器端口连接的所
有设备的电源后,集线器电源会在一定延迟后关闭。为实现最有效的电源管理,请勿层叠
多个集线器。
有关在SPARC 系统中使用SUSPEND/SHUTDOWN 键的信息,请参见第133 页中的“USB
键盘和鼠标设备”。
USB 电缆连接原则
连接USB 电缆时,请牢记以下原则:
 始终使用与USB 2.0 兼容并且以全速(480 Mbit/sec) 运行的20/28AWG 电缆来连接USB
2.0 设备。
 支持的最大电缆长度为5 米。
 请勿使用电缆延伸架。为获得最佳效果,请使用自备电源的集线器来延伸电缆长度。
有关更多信息,请访问:

关于Solaris OS 中的USB
第7 章• 使用USB 设备(概述) 135
136
使用USB 设备(任务)
本章提供有关在Solaris OS 中使用USB 设备的逐步说明。
有关与使用USB 设备关联的过程信息,请参见以下主题:
 第137 页中的“在Solaris OS 中管理USB 设备(指南)”
 第138 页中的“使用USB 海量存储设备(任务列表)”
 第162 页中的“使用USB 音频设备(任务列表)”
 第167 页中的“使用cfgadm 命令热插拔USB 设备(任务列表)”
有关USB 设备的最新信息,请转至以下站点:

有关使用USB 设备的概述信息,请参见第7 章。
在Solaris OS 中管理USB 设备(指南)
使用本指南可以确定用于在Solaris OS 中管理USB 设备的所有任务。每个任务都指向一系列
其他任务,如使用USB 设备、热插拔USB 设备以及添加USB 音频设备。
有关在Solaris OS 中使用USB 组件的信息,请参见第131 页中的“关于Solaris OS 中的
USB”。
8第8 章
137
任务说明参考
使用USB 海量存储设备。USB 海量存储设备必须包含文件
系统,才能向其中添加数据。此
外,必须先格式化USB 软盘,
然后才能在这些软盘上创建和挂
载文件系统。
本节还介绍如何以物理方式在系
统中添加或移除USB 设备。
第138 页中的“使用USB 海量
存储设备(任务列表)”
添加USB 音频设备。使用此任务列表可确定与添加
USB 音频设备关联的任务。
第162 页中的“使用USB 音频
设备(任务列表)”
使用cfgadm 命令在系统中添加
或删除USB 设备。
可以使用cfgadm 命令以逻辑方
式在系统中添加或删除USB 设
备。
第167 页中的“使用cfgadm 命
令热插拔USB 设备(任务列
表)”
使用USB 海量存储设备(任务列表)
任务说明参考
添加或删除USB 海量存储设
备。
选择以下操作之一可添加USB
海量存储设备:
在不运行vold 的情况下添加
USB 海量存储设备。
第143 页中的“如何在不运行
vold 的情况下添加USB 海量存
储设备”
添加用于访问数字图像的USB
相机。
第143 页中的“如何添加USB
相机”
在不运行vold 的情况下删除
USB 海量存储设备。
第145 页中的“如何在不运行
vold 的情况下移除USB 海量存
储设备”
添加不兼容的USB 海量存储设
备。
通过向scsa2usb.conf 中添加
项,可以添加不兼容的USB 海
量存储设备。
第141 页中的“如何使用不兼容
的USB 海量存储设备”
准备使用USB 海量存储设备。在运行vold 的情况下准备使用
USB 海量存储设备。
第145 页中的“在运行vold 的
情况下准备使用USB 海量存储
设备”
在不运行vold 的情况下准备使
用USB 海量存储设备。
第146 页中的“如何在不运行
vold 的情况下准备使用USB 海
量存储设备”
使用USB 海量存储设备(任务列表)
138 系统管理指南:设备和文件系统• 2006 年9 月
任务说明参考
显示USB 设备信息。显示有关USB 设备的信息。第146 页中的“如何显示USB
设备信息”
在USB 海量存储设备中创建文
件系统。
必须先在设备中创建文件系统,
然后才能向其中添加数据。
第148 页中的“如何在不运行
vold 的情况下在USB 海量存储
设备中创建文件系统”
在USB 海量存储设备中修改分
区并创建文件系统。
在USB 海量存储设备中创建文
件系统之前,可能需要修改现有
的分区。
第150 页中的“如何在不运行
vold 的情况下在USB 海量存储
设备中修改分区和创建PCFS 文
件系统”
在USB 海量存储设备中创建
Solaris 分区并修改相应的片。
使用rmformat 修改片信息之
前,需要使用片信息创建一个文
件。
第156 页中的“如何在不运行
vold 的情况下在USB 海量存储
设备中创建Solaris 分区和修改片

在不运行vold 的情况下挂载
USB 海量存储设备。
在不运行vold 的情况下挂载
USB 海量存储设备。
第159 页中的“如何在不运行
vold 的情况下挂载或取消挂载
USB 海量存储设备”
(可选)禁用USB 设备驱动程
序。
如果不需要系统支持USB,可以
禁用USB 设备驱动程序。
第162 页中的“如何禁用特定的
USB 驱动程序”
(可选)删除未使用的USB 设
备链路。
使用devfsadm 命令删除USB 设
备链路。
第162 页中的“如何删除未使用
的USB 设备链路”
使用USB 海量存储设备
从Solaris 9 发行版开始,支持以下USB 可移除海量存储设备:
 CD-RW
 硬盘
 DVD
 数码相机
 软盘设备
 SmartMedia 和CompactFlash 设备
有关将USB 海量存储设备用于Solaris ZFS 文件系统的信息,请参见第123 页中的“Solaris
10 6/06 发行版在USB 设备方面的新增功能”。
有关Solaris OS 所支持的USB 设备的完整列表,请参见:

在以前的Solaris 发行版中,所有的USB 存储设备都被标识为可移除介质设备,这些设备可
提供以下许多优点,包括通过vold 自动挂载。在Solaris 10 6/06 发行版中,USB 海量存储设
备被标识为可热插拔设备,而且具有USB 可移除设备的优点(如下所述)。有关可热插拔
行为的更多信息,请参见第72 页中的“USB 和1394 (FireWire) 支持增强功能”
 
 
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~