LPI 101 考试准备: 硬件和体系结构之七

转载 2007年09月14日 19:06:00

原贴:http://blog.chinaunix.net/u/23204/showart_206984.html

 

LPI 101 考试准备: 硬件和体系结构之七
 
 

USB 设备

本节涵盖了针对初级管理员(LPIC-1)101 考试的主题 1.101.7 所需要的资料。此话题的权重为 1。

USB 概述

在本节我们将研究 Linux 对 Universal Serial BusUSB)设备的支持。USB 是由一个公司联盟开发的,目标是为外围设备的连接提供一个单一的、简单的总线。在 BIOS 设置 章节中,我们已经体会到了在 ISA 总线机器中管理端口、IRQ 和 DMA 资源的复杂性。USB 设计允许设备的热插拔,并可以使用标准连接器来连接设备。 USB 设备包括键盘、鼠标、打印机、扫描仪、硬盘驱动器、闪存驱动器、相机、调制解调器、以太网适配器和扬声器。这个列表还在不断增长。当前 Linux 支持的设备非常广泛,尽管有一些设备需要专门的驱动程序,还有一些可能没有得到支持或者只是得到部分支持,尤其是特殊的打印机。

一个计算机系统可能具备一个或多个 控制器集线器(hub),USB 设备或另外的(外部)集线器可以连接到它。一个集线器支持最多 7 个设备,其中有一部分可以是另外的集线器,也可以全部都是。系统中的集线器叫做 root hub。每一个这样的星形拓扑可以支持最多 127 个集线器或者设备。

注意: 我们通常所说的 USB 端口 指的是计算机中的 USB 功能以及连接插口(相对于串行端口或并行端口),而不是设备所使用的内部端口地址。

USB 系统是一个分层次的系统。

  1. 总线接口(Bus Interface)层提供了主机与设备之间物理的、信号的和数据包的连通性,为主机与设备之间提供数据传输。
  2. 设备(Device)层由系统软件所使用,对总线上的设备完成普通的 USB 操作。这样就让主机能够确定设备的特性,包括设备类别、提供商名称、设备名称、电源需求以及很多性能,比如设备速度或 USB 标准的支持。
  3. 功能(Function)层提供与设备相关的另外的功能。与之相匹配的主机与设备软件层支持使用设备的特殊功能。

 

较早的 USB 规范(1.0 和 1.1)支持的最大速度为 12Mbps(megabits 每秒)。遵循此规范的设备是相对较慢的设备,比如打印机、鼠标、键盘、扫描仪和调制解调器。较新的 USB 2.0 规范支持最高速度为 480Mbps,足以满足硬盘驱动器和外置 CD 或 DVD 驱动器的要求。有些 USB 2.0 设备可以向后兼容,能够在较老的系统中使用,不过并不是所有更快的设备都是向后兼容的。如果计算机不具备 USB 2.0 支持,那么可以使用 PCI 卡(或者用于膝上型机器的 PC 卡)来提供一个或多个 USB 2.0 端口。

USB 线缆是较细的 4-wire 线缆,两根信号线,还有一根电源线和一根地线。插入到集线器上的末端有一个具有扁平矩形连接器(称为 A 连接器),而插入到设备或下级集线器的末端有一个较小的更正方的连接器(B 连接器)。有一些不同的 mini-B 连接器,用于将较小的设备连接到计算机,比如相机。 USB 设备和集线器可以通过 USB 总线获得电源,或者可以自供电源。




回页首


Linux USB 模块支持

在 Linux 中现在对 USB 有非常好的支持。2.6 内核树中有很大的发展。很多已经被反向移植到 2.4 内核,甚至在 2.2 内核中也有一些支持。 Linux 支持 USB 2.0 以及更早的规范。由于 USB 的热插拔本性,通常是通过内核模块来对其提供支持的,可以根据需要加载或卸载内核模块。对于本教程,我们将假定发行版本所需要的模块或者是可用的,或者是已经安装。如果需要编译自己的模块,请参考针对 201 考试主题 201 的教程(见 参考资料)。

确定计算机拥有 USB 端口后,可以使用 lspci 命令查看 Linux 系统是否找到了它,如清单 23 所示。已经对输出进行了过滤,只显示与 USB 相关的设备。


清单 23. 关于 USB 设备的 lspci 输出


您会注意到,在这个系统中有四个 USB 控制器。UHCI 和 EHCI 域指明了支持那个控制器所需要的驱动程序模块。正确的 USB 1.1 驱动器依赖于控制器中所使用的芯片组。USB 2.0 需要 EHCI 驱动程序再加上一个 USB 1.1 驱动程序。见表 3。


表 3. Linux USB 驱动程序
驱动程序 芯片
EHCI USB 2.0 支持 - 需要 UHCI、OHCI 或 JE 其中之一
UHCI Intel 与 VIA 芯片组
JE 这是用于 2.4 内核的 UHCI 的另一种选择。如果 UHCI 不能使用,并且使用了 Intel 或 VIA 芯片组,那么尝试 JE
OHCI Compaq、大部分 PowerMacs、iMacs 以及 PowerBooks、OPTi、SiS、ALi

在前面对声音支持的讨论中已经涉及过 lsmod 命令和模块配置文件 /etc/modules.conf(2.4 内核)和 /etc/modprobe.conf(2.6 内核)。清单 24 展示了清单 23 所使用的同一系统中加载的一些与 USB 设备相关的模块。这个系统有一个 USB 鼠标。


清单 24. 使用 lsmod 显示加载的 USB 模块


要特别注意的是,usbcore 模块被所有其他 USB 模块以及 hid(human interface device)模块所使用。




回页首


显示 USB 信息

这样,我们现在已经了解了支持 UBS 的模块,那么如何得知是什么 USB 设备连接到了我们的系统?在文件系统的 /proc/bus/usb 部分可以找到此信息。文件 /proc/bus/usb/devices 中有关于当前连接的 USB 设备的摘要信息。我们的系统中部分列表如清单 25 所示。


清单 25. /proc/bus/usb/devices 的部分内容


突出显示的 Spd=480 表明它是 USB 2.0 总线,而 Spd=12 表明它是 USB 1.1(或者可能是 USB 1.0)设备。继续往下读这个列表,可以看到鼠标的参数是 Spd=1.5。对大部分鼠标来说 1.5 MBps 的速度就足够了。

和我们在 /proc 文件系统中看到的其他内容一样,您会欣喜地发现,有一个 lsusb 命令可以帮助您显示这些信息。特别是,通过使用 -t 选项,可以获得 USB 设备的树状视图。这显示出了它们的连接层级。如果使用 -t 选项系统给出了摘要显示,那么可以使用 -d 选项来显示关于特定设备的信息。-v 选项会产生详细的输出,它会对清单 25 中所看到的很多域进行解释。为得到清单 26,我们已经插入了一个外置的集线器,一个 Nikon 数码相机,一个 USB 存储钥匙,以及一个外置 USB 2.0 硬盘驱动器,并展示了部分输出。


清单 26. 使用 lsusb 命令


清单 27 展示了可通过 lsusb 命令得到的部分详细输出。这针对的是一个存储钥匙。注意设备有自己的最高电源要求(200mA)。注意,这个设备将被作为 SCSI 设备来对待。使用 dmesg 命令或者 fdisk -l 命令来查明是哪个 SCSI 设备被映射到这个设备。大部分配备 USB 端口相机,以及读卡器、闪存设备以及硬盘驱动器都被当作是存储类别的设备,在 Linux 作为 SCSI 设备来处理。很多相机都附了帮助从相机中获取图片或者上传图片的 Windows 程序。在 Linux 中,可以简单地挂载对应于相机的那个 SCSI 设备,然后将图片拷贝到硬盘驱动器上,在那里可以使用程序来编辑它们,比如 GNU Image Manipulation Program(GIMP)。甚至可以从存储卡上抹除文件,或者从 Linux 中向它写入文件,让相机可以用作软盘的外来代替者。


清单 27. lsusb 命令的详细输出(部分)


通过清单 26 知道了 USB 设备的总线和设备 id,现在可以获得更多信息,这是确定特定设备需要哪些模块的一个途径。在清单 28 中演示了两个。


清单 28. 两个模块





回页首


热插拔

系统可以使用两个命令来处理 USB 设备的热插拔,usbmgrhotplug。根据使用的命令,将在 /etc/usbmgr 或 /etc/hotplug 目录中找到配置文件。较新的系统更倾向于使用 hotplug。

USB 的热插拔(PC 卡也是如此)让用户可以在系统运行时插入设备。然后系统必须:

  • 确定设备类型并找出运行它的驱动程序
  • 将驱动程序绑定到那个设备
  • 向其他子系统就此设备进行通告。举例来说,这样就允许加载磁盘或者添加打印队列。
<script type="text/javascript"><!-- google_ad_client = "pub-9097063532722715"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text_image"; //2006-11-13: IT认证, LINUX中心, REDHAT培训, linux认证培训, 服务 google_ad_channel = "2261809806+0528463736+8465157522+5640178636+3337303540"; google_color_border = "6699CC"; google_color_bg = "003366"; google_color_link = "FFFFFF"; google_color_text = "AECCEB"; google_color_url = "AECCEB"; //--></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
 

考试准备 硬件和体系结构.pdf

  • 2009年05月31日 13:44
  • 11.35MB
  • 下载

IBM的LPI复习资料之LPI101-Topic101:系统体系结构(1)Boot the system

1 概述 本文将帮助你理解从BIOS到系统启动完成的启动序列,你将会知道: *** 为启动加载器提供通用参数*** 启动时为Linux内核提供选项参数*** 检查日志文件里的启动事件 ...
  • smstong
  • smstong
  • 2013年02月07日 00:21
  • 1683

OCP/OCA认证考试指南全册读书笔记 第一章 Oracle Database 11g体系结构概述

1.4 实例内存结构 Oracle实例由称为系统全局区(SGA)的共享内存块以及大量的后台进程构成,SGA至少包含三种数据结构 数据库缓存区缓存 日志缓冲区 共享池 还可能包含 大池 J...

软件无线电硬件体系结构研究

  • 2010年05月23日 14:07
  • 439KB
  • 下载

OCM考试经验--RMAN基础详解(一)--体系结构

--========================= -- RMAN 概述及其体系结构 --=========================   一、Recovery Manager(RM...

计算机体系结构及其硬件构成

传感器常见分类: LiDAR:n. 激光雷达; 1. 磁盘:hda、sdalinux中硬盘sda和hda的区别 Linux 系统在分区时会分为如下如下的硬盘驱动器设备: /dev/sda /dev...

Linux高性能集群 - 硬件和网络体系结构

转自:http://www.ibm.com/developerworks/cn/linux/cluster/hpc/part3/index.html 1 Beowulf集群硬件和网络体系结构...

略谈android体系结构---------硬件抽象层

学习老罗的《android系统源代码情景分析》 出身自linux的android系统,在对硬件的支持,以及上层对硬件的访问方式,做出了较大的改变。如下是android的体系结构,它的实现和使用依次涉...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LPI 101 考试准备: 硬件和体系结构之七
举报原因:
原因补充:

(最多只允许输入30个字)