如何配置内核,以支持USB设备。

4 篇文章 1 订阅
2 篇文章 0 订阅
文章来源:http://www.360doc.com/content/11/0404/23/971672_107246540.shtml   我只摘抄了其中的一部分
##########################################################################################

配置USB设备

内核中配置.

要 启用 Linux USB 支持,首先进入"USB support"节并启用"Support for USB"选项(对应模块为 usbcore.o)。尽管这个步骤相当直观明了,但接下来的 Linux USB 设置步骤则会让人感到糊涂。特别地,现在需要选择用于系统的正 确 USB 主控制器驱动程序。选项是
"EHCI" (对应模块为ehci-hcd.o)、
"UHCI" (对应模块为usb-uhci.o)、
"UHCI (alternate driver)" 和
"OHCI" (对应模块为usb-ohci.o)。
这是许多人对 Linux 的 USB 开始感到困惑的地方。 

要理解"EHCI"及其同类是什么,首先要知道每块支持插入 USB 设备的主板或 PCI 卡都需要有  USB 主控制器芯片组。这个特别的芯片组与插入系统的 USB 设备进行相互操作,并负责处理允许 USB 设备与系统其它部分通信所必需的所有低层次细节。 

Linux USB 驱动程序有三种不同的 USB 主控制器选项是因为在主板和 PCI 卡上有三种不同类型的 USB 芯片。
"EHCI"驱动程序设计成为实现新的高速 USB 2.0 协议的芯片提供支持。
"OHCI"驱动程序用来为非 PC 系统上的(以及带有 SiS 和 ALi 芯片组的 PC 主板上的)USB 芯片提供支持。
"UHCI"驱动程序用来为大多数其它 PC 主板(包括 Intel 和 Via)上的 USB 实现提供支持。
只需选择与希望启用的 USB 支持的类型对应的"?HCI"驱动程序即可。如有疑惑,为保险起见,可以启用"EHCI"、"UHCI" (两 者中任选一种,它们之间没有明显的区别)和"OHCI"。(赵明注:根据文档,EHCI已经包含了UHCI和OHCI,但目前就我个人的测试,单独加 EHCI是不行的,通常我的做法是根据主板类型加载UHCI或OHCI后,再加载EHCI这样才可以支持USB2.0设备)。

启用了"USB support"和适当的"?HCI"USB 主控制器驱动程序后,使 USB 启动并运行只需再进行几个步骤。应该启用 "Preliminary USB device filesystem", 然后确保启用所有特定于将与 Linux 一起使用的实际 USB 外围设备的驱动程序。例如,为了启用对 USB 游戏控制器的支持,我启用 了"USB Human Interface Device (full HID) support"。我还启用了 主"Input core support" 节下的"Input core support"和"Joystick support"。 

一旦用新的已启用 USB 的内核重新引导后,若 /proc/bus/usb下没有相应USB设备信息,应输入以下命令将 USB 设备文件系统手动挂装到  /proc/bus/usb: 


# mount -t  usbdevfs none /proc/bus/usb 




为了在系统引导时自动挂装 USB 设备文件系统,请将下面一行添加到 /etc/fstab 中的 /proc 挂装行之后: 


none /proc/bus/usb usbdevfs defaults 0 0 




模块的配置方法.

在很多时候,我们的USB设备驱动并不包含在内核中。其实我们只要根据它所需要使用的模块,逐一加载。就可以使它启作用。

首先要确保在内核编译时以模块方式选择了相应支持。这样我们就应该可以在/lib/modules/2.4.XX目录看到相应.o文件。
在加载模块时,我们只需要运行 modprobe  xxx.o就可以了( modprobe主要加载系统已经通过depmod登记过的模块,insmod一般是针对具体.o文件进行加载

对应USB设备下面一些模块是关键的。

usbcore.o 要支持usb所需要的最基础模块 
usb-uhci.o (已经提过) 
usb-ohci.o (已经提过) 
uhci.o 另一个uhci驱动程序,我也不知道有什么用,一般不要加载,会死机的 
ehci-hcd.o (已经提过 usb2.0) 
hid.o USB人机界面设备,像鼠标呀、键盘呀都需要 
usb-storage.o USB存储设备,U盘等用到 


相关模块

ide-disk.o IDE硬盘 
ide-scsi.o 把IDE设备模拟SCSI接口 
scsi_mod.o SCSI支持 

注意kernel config其中一项:

Probe all LUNs on each SCSI device

最好选上,要不某些同时支持多个口的读卡器只能显示一个。若模块方式就要带参数安装或提前在/etc/modules.conf中加入以下项,来支持多个LUN。

add options scsi_mod max_scsi_luns=9 

sd_mod.o SCSI硬盘 
sr_mod.o SCSI光盘 
sg.o SCSI通用支持(在某些探测U盘、SCSI探测中会用到) 


常见USB设备及其配置

在Linux 2.4的内核中已经支持不下20种设备。它支持几乎所有的通用设备如键盘、鼠标、modem、打印机等,并不断地添加厂商新的设备象数码相机、MP3、网卡等。下面就是几个最常见设备的介绍和使用方法:

USB鼠标:

键 盘和鼠标属于低速的输入设备,对于已经为用户认可的PS/2接口,USB键盘和USB鼠标似乎并没有太多更优越的地方。现在的大部分鼠标采用了PS/2接 口,不过USB接口的鼠标也越来越多,两者相比,各有优势:一般来说,USB的鼠标接口的带宽大于PS/2鼠标,也就是说在同样的时间内,USB鼠标扫描 次数就要多于PS/2鼠标,这样在定位上USB鼠标就更为精确;同时USB接口鼠标的默认采样率也比较高,达到125HZ,而PS/2接口的鼠标仅有 40HZ(Windows 9x/Me)或是60HZ(Windows NT/2000)。

对于USB设备你当然必须先插入相应的USB控制器模块:usb-uhci.o或usb-ohci.o

modprobe usb-uhci

USB鼠标为了使其正常工作,您必须先插入模块usbmouse.o和mousedev.o


modprobe usbmouse
modprobe mousedev




若你把HID input layer支持和input core 支持也作为模块方式安装,那么启动hid模块和input模块也是必要的。


modprobe hid
modprobe input




USB键盘:

一 般的,我们现在使用的键盘大多是PS/2的,USB键盘还比较少见,但是下来的发展,键盘将向USB接口靠拢。使用USB键盘基本上没有太多的要求,只需 在主板的BIOS设定对USB键盘的支持,就可以在各系统中完全无障碍的使用,而且更可以真正做到在即插即用和热插拔使用,并能提供两个USB连接埠:让 您可以轻易地直接将具有USB接头的装置接在您的键盘上,而非计算机的后面。

同样你当然必须先插入相应的USB控制器模块:usb-uhci.o或usb-ohci.o


modprobe usb-uhci




然后您还必须插入键盘模块usbkbd.o,以及keybdev.o,这样usb键盘才能够正常工作。此时,运行的系统命令:


modprobe usbkbd
modprobe keybdev




同样若你把HID input layer支持和input core 支持也作为模块方式安装,那么启动hid模块和input模块也是必要的。

U盘和USB读卡器:

数 码存储设备现在对我们来说已经是相当普遍的了。CF卡、SD卡、Memory Stick等存储卡已经遍及我们的身边,通常,他们的读卡器都是USB接口 的。另外,很多MP3、数码相机也都是USB接口和计算机进行数据传递。更我们的U盘、USB硬盘,作为移动存储设备,已经成为我们的必须装备。

在Linux下这些设备通常都是以一种叫做usb-storage的方式进行驱动。要使用他们必须加载此模块
modprobe usb-storage

当然,usbcore.o 和usb-uhci.o或usb-ohci也肯定是不可缺少的。另外,若你系统中SCSI支持也是模块方式,那么下面的模块也要加载

modprobe scsi_mod
modprobe sd_mod

在加载完这些模块后,我们插入U盘或存储卡,就会发现系统中多了一个SCSI硬盘,通过正确地mount它,就可以使用了(SCSI硬盘一般为/dev/sd?,可参照文章后面的常见问题解答)。

mount /dev/sda1 /mnt


Linux内核中添加USB摄像头设备的实现可以通过以下步骤完成: 1. 确保你的摄像头设备已经正确地连接到计算机的USB端口,并且系统能够正确地检测到它。你可以通过运行`lsusb`命令来查看已连接的USB设备列表,确认摄像头设备已经被识别。 2. 在Linux内核源代码中,找到与USB子系统相关的配置文件。通常这个文件的路径是`/usr/src/linux/.config`。 3. 打开配置文件,启用USB摄像头设备支持。在配置文件中搜索以下选项,并确保它们的值被设置为`y`或者`m`: ``` CONFIG_USB_VIDEO_CLASS=y CONFIG_MEDIA_SUPPORT=y CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_VIDEO_DEV=y ``` 这些选项使得内核支持USB视频类设备、媒体支持以及视频设备。 4. 保存配置文件并退出。 5. 编译并安装内核。可以使用`make`和`make install`命令来编译和安装内核。 6. 重新启动计算机,让新的内核生效。 7. 在启动后,系统应该能够自动检测和加载USB摄像头设备驱动程序。你可以通过运行`ls /dev/video*`命令来查看是否存在`/dev/video0`或类似的设备节点。 8. 现在你可以使用各种摄像头相关的应用程序(如`cheese`)来测试并使用USB摄像头设备了。 请注意,以上步骤基于标准的Linux内核配置设备,实际操作中可能会因为不同的Linux发行版和硬件配置而有所差异。因此,请确保参考你使用的Linux发行版和硬件设备的相关文档和指南,以获得更准确的指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值