极限首页 业界焦点 软件工程师之路 系统工程师之路 网络工程师之路 软件下载 技术社区
 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下设备完全驱动之四(3)
时间:2005-09-25 作者:郄晓烨 来源:赛迪比如,scanner.o模块对应的就是USB扫描仪的驱动;

 

外置USB光驱及刻录机的驱动

USB光驱与其它的USB存储设备使用类似,只不过USB光驱会被识别为SCSI光驱,如/dev/sr0或/dev/scd0等设备,它需要sr_mod.o(SCSI CD-ROM设备)驱动模块。









# modprobe sr_mod  //如果sr_mod模块没有编译,请重新编译内核,在SCSI部分
            # mount -t iso9660 /dev/scd0 /mnt/cdrom



关于外置刻录机驱动详见本刊今年第8期“Linux完全驱动(二)”:

# mkisofs -Jv -V examplecd -o example.iso /root/



将/root/目录下的文件做成一个名叫example.iso的光盘镜像文件,该文件的卷标为examplecd;还可通过下面命令将该文件加载到/mnt/iso文件夹中。

# mkdir /mnt/iso
            # mount -t iso9660 -o loop example.iso /mnt/iso



在调整完/mnt/iso文件的内容后使用下面命令:

# umount /mnt/iso



最后使用cdrecord命令刻录:

# cdrecord -scanbus



查看SCSI总线中刻录机的配置信息:

Cdrecord 2.0 (i686-pc-linux-gnu) Copyright
            (C) 1995-2002 J?rg Schilling
            Linux sg driver version: 3.1.25
            Using libscg version 'schily-0.7'
            cdrecord: Warning: using inofficial
            libscg transport code version
            (schily - Red Hat-scsi-linux-sg.c-1.75-RH '@(#)scsi-linux-sg.c
            1.75 02/10/21 Copyright 1997 J. Schilling').
            scsibus0:
            0,0,0     0) 'HL-DT-ST' 'RW/DVD GCC-4240N' 'E112' Removable CD-ROM
            0,1,0     1) *
            0,2,0     2) *
            0,3,0     3) *
            0,4,0     4) *
            0,5,0     5) *
            0,6,0     6) *
            0,7,0     7) *



从上面可以看到目前光驱在SCSI总线的参数,然后根据参数输入下面的命令刻录光盘:

# cdrecord -v -eject speed=24 dev=0,0,0 example.iso



“speed=24”是以24速来刻录光盘,“dev=”后加上刚才显示的刻录机的SCSI参数。如果是外置DVD,则应使用dvdrecord命令,其用法与cdrecord相同。

# rpm -ivh dvdrecord-0.1.2-12.i386.rpm
            # man dvdrecord  查看帮助
USB鼠标和键盘的驱动

1.鼠标的驱动

在Red Hat Linux中,可以使用mouseconfig命令来配置鼠标,选择USB接口鼠标即可,如图5所示。


图5 使用mouseconfig配置USB接口鼠标
# mouseconfig


如果使用手动的方式来配置,可以人工加入以下模块:

# modprobe hid
            # modprobe input
            # modprobe usbmouse
            # modprobe mousedev


2.USB键盘的驱动

# modprobe hid
            # modprobe input
            # modprobe usbkbd
            # modprobe keybdev

IEEE1394设备的驱动

IEEE1394又称Firewire(火线)、i-Link(Sony的叫法),它跟USB接口类似,目前可以提供400Mb/s的带宽,虽然在理论上它较USB 2.0的480Mb/s的速度慢一些,但是在实际使用中,Firewire要比USB 2.0的设备快不少,所以仍然有很多设备配备这种接口,如DV(数字摄像机)和移动硬盘等。

与USB相比,Firewire的通用性不够强,得到的支持也较少。一般主板上不带该Firewire的芯片,通常是购买带1394接口的PCI卡来支持1394的设备。对于1394设备,Linux内核2.4.10之后的版本都可以支持。IEEE1394的驱动放在以下位置:

# ls /lib/modules/2.XXX/kernel/drivers/ieee1394
            amdtp.o  dv1394.o   ieee1394.o  raw1394.o  video1394.o
            cmp.o    eth1394.o  ohci1394.o  sbp2.o


IEEE1394的驱动方式较USB大同小异,只是首先加载的是对1394总线的驱动(ieee1394.o)和1394芯片的驱动(ohci1394.o)。如果使用1394卡连接DV,那么需要1394视频驱动(video1394.o)和DV视频I/O驱动(dv1394.o);如果需要访问的是1394外接硬盘或CD-ROM、刻录机等,则需要对SBP-2协议的支持(sbp2.o);如果使用1394接口的以太网卡,则需要加载驱动eth1394.o。

如果没有某种设备的驱动,则可以重新编译内核模块,选择以下模块:

# cd /usr/src/linux-2.XXX
            # make xconfig


选择其中的IEEE1394选项,如图6所示,然后重新编译模块:

# make dep
            # make modules
            # make modules_install


驱动IEEE1394接口的硬盘或光驱时,需要预先加载的驱动有ieee1394.o和ohci1394.o:

# modprobe ohci1394


上面代码会将两样驱动全部装载上,因为ohci1394依赖于ieee1394。

硬盘需要的驱动是sbp2.o,插入硬盘后它应该会自动加载。与USB设备相同,硬盘会被模拟成SCSI设备,请留意屏幕上显示的信息,看看是被模拟为sda还是其它的设备。使用以下命令使用硬盘:
# mkdir /mnt/1394
            # mount -t vfat /dev/sda1 /mnt/1394
 
IEEE1394光驱应该使用设备为/dev/scd0,如果在插入设备时没有自动加载,则可以试着手动加载sbp2模块及SCSI模块:

scsi_mod.o 对SCSI设备的支持; sd_mod.o 对SCSI硬盘支持模块,对应硬盘;

sr_mod.o 对SCSI光盘支持模块,对应光驱;

sg.o SCSI序列的通用支持模块。

IEEE1394光驱驱动与USB下相应的设备驱动非常相似,这里就不再赘述了。

现在各种移动设备层出不穷,花样繁多,目前国内网站上的资料不是很全,使用google搜索英文网站往往能得到许多自己需要的东西。

优盘或USB硬盘常见问题解决方法

1. 加载/dev/sda1时出错

这是因为较早的优盘不分区,它们使用/dev/sda,也有可能使用/dev/sda2或sda3等设备文件,请仔细观察fdisk -l /dev/sda的输出结果,看一看优盘的分区到底是哪一个。

2. 主机中已有SCSI或USB设备

主机中已经有SCSI或USB设备,比如/dev/sda硬盘或另一个优盘,这时可以尝试sdb或sdc等设备。实际上每一次在插入优盘时可以留意一下屏幕上显示的信息,那个优盘被转换成哪一个sd设备。

3. 优盘插入后没有反应,访问/dev/sd设备也没有反应

这时可以查看相关模块是否已经加载,如果没有加载可以手动加载,然后重新插入该设备,看看是否有反应:

# modprobe ehci-hcd; modprobe usb-uhci; modprobe usb-storage.o
            # modprobe ide-scsi; modprobe scsi_mod.o; modprobe sd_mod.o


4. 设备驱动已经加载,如何知道访问哪个设备文件

对比加载驱动前和加载驱动后的/proc/devices文件,多出的那一行就是这种驱动程序注册的主设备号。例如,对比OV511加载前后/proc/devices文件的变化,就会发现多出如下一行:

# cat /proc/devices
            Character devices:
            ...
            81 video_capture
            ...


上面代码表示C型设备、主设备号为81的设备文件是访问OV511驱动的入口,再对照/usr/src/Documentation/devices.txt中查找C类型的主设备号81,就可以知道对应如下设备文件:

81 char        video4linux
            0 = /dev/video0       Video capture/overlay device


上面简要介绍了Linux下常用的USB、IEEE1394、PCMCIA设备驱动的安装与配置,希望能对读者安装与使用这些设备提供帮助。

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


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