极限首页 业界焦点 软件工程师之路 系统工程师之路 网络工程师之路 软件下载 技术社区
 Linux操作系统的内核编译内
 Linux下设备完全驱动之二
 Linux下设备完全驱动之三
 Linux下设备完全驱动之一
 Linux内核如何从2.4升级到
 开源世界的虚拟机 QEMU
 Linux下软件RAID的实现
 RHEL4内建LVM工具入门
 linux SSH 的一些安全小技
 Cron服务配置详解
 Linux操作系统的内核编译内
 Linux下设备完全驱动之二
 Linux下设备完全驱动之三
 Linux下设备完全驱动之一
 Linux内核如何从2.4升级到
 开源世界的虚拟机 QEMU
 Linux下软件RAID的实现
 RHEL4内建LVM工具入门
 linux SSH 的一些安全小技
 Cron服务配置详解

Shell 中文手册

Python 2.3 中文手册

Python 2.4 中文手册

Mysql 4.x 中文手册

PHP 4.x 中文手册

Apache 2.x 中文手册
更多手册

站内搜索:
当前位置:首页>>系统工程师之路>>管理进阶>>正文
Linux下设备完全驱动之四(2)
时间:2005-09-25 作者:郄晓烨 来源:赛迪比如,scanner.o模块对应的就是USB扫描仪的驱动;

 

数码相机也是一种存储设备,然而对于Linux下的移动存储设备都是通过usb-storage.o驱动的,然后模拟为 SCSI设备。如果数码相机无法使用,通常是usb-storage驱动未包括此厂商识别和产品识别信息(在类似skel_probe的USB最初探测时被屏蔽了)。对于USB存储设备的硬件访问部分,通常是一致的。所以,要支持数码相机,仅需要修改usb-storage中关于厂商识别和产品识别列表部分。

USB设备识别信息中重要的部分如下:

P:  Vendor=040a ProdID=0570 Rev= 1.00
            S:  Manufacturer=Eastman Kodak Company
            S:  Product=KODAK EasyShare DX6340 Zoom Digital Camera



若/proc/bus/usb下没有相应USB设备信息,应输入以下命令将USB设备文件系统手动挂装到/proc/bus/usb:

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



(3)编辑drivers/usb/storage/unusual_devs.h文件。下面是所有已知的USB产品登记列表,格式如下:

UNUSUAL_DEV(idVendor, idProduct, bcdDeviceMin, bcdDeviceMax,
            vendor_name,
            product_name,
            use_protocol, use_transport, init_function,
            Flags).



usb-storage.o就是根据这个列表来识别各种设备。这样,可以将刚才/proc/bus/usb/devices文件中得出的信息添加在上面,重新编译模块,让usb-storage驱动去认识和发现它。

UNUSUAL_DEV(  0x040a, 0x0570, 0x0001, 0x0001,
            "Eastman Kodak Company",
            "KODAK EasyShare DX6340 Zoom Digital Camera",
            US_SC_SCSI, US_PR_CB, NULL,
            US_FL_FIX_INQUIRY | US_FL_START_STOP | US_FL_MODE_XLATE ),



注意,添加以上几句代码的位置一定要正确。经过比较发现,usb-storage驱动对所有注册都是按idVendor、 idProduct数值从小到大排列的,因此添加代码也要放在相应位置。

(4)重新编译模块,之后插入的数码相机就可以像其它优盘一样作为USB存储设备去访问。

# make dep
            # make modules
            # make modules_install
USB摄像头的驱动

在内核源文件中,自带了一部分摄像头的驱动,目前大量的杂牌摄像头都可以使用OV511的驱动模块。如果USB摄像头无法使用,则可以试试重新编译模块。下面就以一个没有驱动程序的摄像头为例,尝试使用OV511驱动模块驱动。

1. 获取内核源码

先从Red Hat光盘或kernel.org获取当前版本的内核源码,并安装:

# rpm -ivh kernel-source-2.XXX.rpm


或者

# tar zxvf linux-2.XXX.tar.gz


2. 运行

到源码目录中运行:

# make menuconfig


或者

# make xconfig  //需要在X-Window下



3. 选择USB的模块
选择USB的模块如图3所示。

选择要编译的驱动可以查看说明书,确定摄像头芯片是什么型号,如图4所示,选定OV511摄像头的支持。在USB support下可以选择多种驱动的模块,比如常用的OV511芯片的摄像头驱动、USB打印机的驱动等。

图3 编译内核选择USB support

图4 在USB support下可选择多种驱动模块



4. 保存、编译和安装

# make dep
            # make modules
            # make modules_install



5. 加载驱动

# modprobe ehci-hcd
            # modprobe usb-uhci
            # modprobe ov511
            cat /proc/devices



接着运行gnomemeeting等工具,选择/dev/video0或/dev/video1作为摄像头设备文件,这样摄像头就可以使用了。

  共3页: 上一页 [1] 2 [3] 下一页   
推荐】【 】【关闭


关于极限 | 站内地图 | 意见反馈 | 广告服务 | 数据服务 | 联系我们
本站所刊登的文章,技术资料,软件均整理于网络资源或本站原创,转载请务必联系原作者或本站。
Copyright ? 2001-2004 UPLinux.com All Rights Reserved.
本站唯一联系信箱:
京ICP备05010519