文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Linux下设备驱动的相关资料

Linux下设备驱动的相关资料

时间:2007-01-20  来源:junglegq

<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title></title><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)"><meta name="CREATED" content="20060710;17502400"><meta name="CHANGED" content="20060711;13354700"> <style> </style>kernel模块路径:/lib/modules/2.6.xxx/kernel


模块依赖关系:/lib/modules/2.6.xxx/modules.dep


查看module信息: modinfo [-d] e100


查看设备文件编号:<kernel src>/Documentation/devices.txt


安装linux时,指定参数:linux noprobe ,内核将不自动侦测硬件

启动系统时,先加载kernel, 后initrd


kernel初始化过程:

CPU-->MEM-->系统时钟-->PCI Bus-->IDE driver-->IDE控制芯片驱动-->IDE硬盘驱动


显示/设置硬盘参数:

hdparm -i /dev/hda

hdparm -d /dev/hda

hdparm -d0 /dev/hda //设置:disable DMA

hdparm -d1 /dev/hda //设置:enable DMA

hdparm -X70 /dev/hda //设置:使用UDMA6-ATA133模式(慎用)


UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 udma6

其中,64-70 表示UDMA0-6


lsmod

cat /proc/modules


一般通过将ide刻录机通过ide-scsi模块转变为scsi伪设备来刻盘

方法:

  1. grub.conf kernel ... hdc=ide-scsi

  2. /etc/modprobe.conf ide-cd ignore=\”hdc\” ide-scsi

  3. 编译内核, 支持scsi光驱


当安装向导要求将驱动软盘插入时,实际的驱动程序被放到initrd的ramdisk中。


一般,内核中只支持scsi总线,相应的scsi设备必须另外编译模块。


对于以太网驱动:

/etc/modprobe.conf alias eth0 8139too

/lib/modules/2.6.xxx/modules.dep //查找依赖关系

手动添加驱动模块:

  1. make

  2. modprobe xxx.o //测试

  3. echo “alias eth0 xxx.o” >>/etc/modprobe.conf

  4. cp xxx.o /lib/modules/2.6.xxx/kernel/drivers/net

  5. echo “/lib/modules/2.6.xxx/kernel/drivers/net/xxx.o:” >> /lib/modules/2.6.xxx/modules.dep


X-window

显卡驱动模块目录: /usr/X11R6/lib/modules/drivers/

注意:这些显卡驱动只是针对X下的驱动,有别于内核编译的显卡驱动模块

当显卡在X下工作异常,可考虑升级X或下载显卡驱动模块


常见显卡驱动的下载地址
nVIDIA显卡驱动程序地址http://www.nvidia.com/object/linux.html。
ATI显卡驱动程序地址http://www.ati.com/support/driver.html(ATI网站访问速度较慢,可以多试几次)。
VIA芯片集成显卡驱动程序http://www.viaarena.com/?PageID=296。
SIS显卡驱动程序地址http://www.mypcera.com/qu/2/soft1/xsis.rpm
Intel芯片组显卡驱动程序地址http://downloadfinder.intel.com/scripts-df/support_intel.asp?iid=HPAGE+ header_support_download&。
Intel笔记本迅驰显示驱动程序地址http://downloadfinder.intel.com/scripts-df/filter_results.asp?strOSs=39&strTypes=DRV%2CARC&ProductID= 922&OSFullName= Linux*&submit=Go%21。


常用的15寸显示器频率:

HorizSync: 31.5-37.9

VertRefresh: 50.0-70.0


启动X

1)startx

2)gdm,kdm,xdm

可以在kernel参数中调整显示模式 vga=0x314


linux下声卡的驱动是作为普通内核模块加载的

常用的linux下万能声卡:

ALSA (Advanced Linux Sound Architecture) : www.alsa-project.org

OSS : www.opensound.com


ALSA驱动模块的声卡默认是不发音的, 打开方式:

./audunmute ???

或: amixer -c o sset 'Master', 0 100%, 100% unmute &&

amixer -c o sset 'PCM', 0 100% unmute

可编译/etc/modprobe.conf, 在系统启动时调整音量:

post-install snd-card-0 amixer -c o sset 'Master', 0 100%, 100% unmute &&

amixer -c o sset 'PCM', 0 100% unmute


可手工设定非即插即用声卡:

options snd-card-0 io=0x300 irg=5


usb设备的驱动:

基础模块:

usbcore.o

host/ehci-hcd.o //USB2。0支持

host/usb-uhci.o //Intel、VIA等芯片组的USB驱动

host/usb-ohci.o //iMac、SIS、Ali等非intel芯片组的驱动,支持非x86系统

storage/usb-storage.o //usb存储设备、u盘等

hid.o //键鼠等外设

以上基础模块必须事先加载后,再插入usb设备


安装系统不支持的usb设备

目前,不支持主要是由于系统不能确认usb设备厂商型号等信息,可手动加载

1) 加载所需的基础模块

  1. cat /proc/bus/usb/devices ,保存Vendor ProdID Product信息

  2. 修改usb-storage 中关于厂商识别和产品识别的列表部分

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



编辑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数值从小到大排列的,因此添加代码也要放在相应位置。

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

# make dep # make modules # make modules_install

  1. 重新编译内核的usb-storage模块

      make dep && make modules && make modules_install


IEEE1394

基础模块(类似usb)

ieee1394.o

ohci1394.o


确定设备文件名的方法:

  1. cat /proc/devices //查当前设备的主设备号

  2. /usr/src/Documentation/devices.txt //查主设备号对应的设备文件名



打印系统:

传统BSD LPD 打印系统

linux LPRng打印系统

最新的CPUS打印系统


在unix下使用postscript打印,系统不需要安装驱动程序。Postscript的脚步解释工作由打印机完成。缺点:部分打印机不支持ps

linux使用了Ghostscript软件,作为解决方案支持一些不支持ps的打印机

User --->Ghostscript--->Printer

相关阅读 更多 +
排行榜 更多 +
儿童学英语

儿童学英语

学习教育 下载
今天开始生存

今天开始生存

动作格斗 下载
飞碟快闪

飞碟快闪

动作格斗 下载