作者:郄晓烨
尽管各种数码设备越来越多,但是Linux在对它们的配置上还没有做到像Windows一样方便,很多人正是因为心爱的数码相机无法在Linux下使用,而不得不保留一个Windows系统。所以,掌握如优盘、移动硬盘、数码相机等设备在Linux下的驱动方法,对于熟练使用Linux而言是必备的技能。
这一讲将会介绍常见USB、IEEE1394、PCMCIA等移动设备的驱动概念和安装技巧,为读者更好地配置和使用这些设备提供帮助。
USB设备驱动概述
USB是通用串行总线(Universal Serial Bus),是在1994年由Intel、NEC、微软和IBM等公司共同提出的。USB的目的在于将众多的接口(串口、并口、PS2口等),改为通用的标准。它仅仅使用一个4针插头作为标准插头,并通过这个标准接头连接各种外设,如鼠标、键盘、游戏手柄、打印机、数码相机等。USB接口的特点是支持热插拔,支持单接口上接多个设备等。
USB的优点此处不再赘述,我们主要来看一看Linux对USB的支持。USB采用串行方式传输数据,USB 1.1最大数据传输率为12Mbps,Linux内核为2.4以上版本都可以支持。
USB 2.0规范是由USB 1.1规范演变而来的,它理论上速度较1.1提高了40倍,达到了480Mb/s,但目前常见的USB 2.0设备只能达到理论值的一半。 Linux内核2.4.19版本开始对USB 2.0进行支持。
除了内核的版本要对USB接口进行支持之外,还要确定目前的系统是否编译了USB的驱动模块。如果让Linux系统支持USB设备,还需要一些驱动模块。我们都知道内置的驱动程序一般都在 /lib/modules/2.4XXX/kernel/drivers目录中。这个目录中会有usb及几个子目录,可以从中找到以下的几个USB关键基础模块:
usbcore.o 所有USB设备都需要的基本驱动模块;
host/ehci-hcd.o USB 2.0设备支持;
host/usb-uhci.o Intel VIA等芯片组USB部分的驱动;
host/usb-ohci.o iMac、SiS、Ali等非Intel芯片组USB部分的驱动;
storage/usb-storage.o USB接口的存储设备,如移动硬盘、U盘等都会用到;
hid.o USB接口的键盘、鼠标等人机交互设备的基础支持。
在该目录下还有一些具体设备的驱动程序,分别驱动不同设备:
# ls -p /lib/modules/2.4.21-4.EL/kernel/drivers/usb/
acm.o CDCEther.o hpusbscsi.o microtek.o rtl8150.o usbcore.o wacom.o
audio.o dabusb.o kaweth.o pegasus.o scanner.o usb-midi.o
brlvger.o hid.o kbtab.o powermate.o serial/ usbnet.o
catc.o host/ mdc800.o printer.o storage/ uss720.o