- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linuxudev原理分析
一.udev简介
在linux系统中,/dev目录用来保存设备文件的.每个文件指向一个系统设备.用户的程序可以通过使用这些设备文件,对真实的硬件的设备进行操作.如: hda是第1个IDE硬盘,sda是第1个SCSI硬盘. 在2.4内核时代,在/dev下保存了所有kernel可以支持的硬件设备的设备文件,将近有1万个.而这些设备中,大多数是没有连接的设备.这样就大大的浪费了系统资源,而且/dev目录也显得非常混乱.udev就是用了解决这些问题的.在2.6内核中,采用udev方式来管理/dev目录.它可以动态的建立/删除设备文件(设备连接到系统时,它会自动建立相应的设备文件,设备断开连接后,它会自动删除相应的设备文件).这样使/dev目录简化了许多.而且,udev还可以允许用户编写命名规则,为不同设备指定设备文件名.这样,对设备的管理也方便了许多.例如:你有2个U盘,1个容量是1G的,1个容量是2G的.一般情况下,你先接上的U盘会是sdb,后接上的U盘会是sdc.这样对使用很不方便.每次U盘的设备名可能不一样.但通过udev命名规则,你可以自己指定的设备命名,可以将1G的U盘命名为1g,将2G的U盘命名为2g.设备名不会再变化.使用和管理都会很方便.
二.udev安装
1.Turbolinux发行版
在Turbolinux 10,10.5和11等版本中,都已集成了udev包.你也可以手动安装udev的rpm包.
# rpm -ivh udev-版本号.rpm
2.从源码包安装
你可以从官方网站下载源码包:
/pub/linux/utils/kernel/hotplug/udev.html
我们下载0.39版的udev.然后进行安装:
#tar jxf udev-039.tar.bz2# cd udev-039# make# make install
三.udev命名规则
1.查看硬件信息
当你将一个硬件连接到系统时,会在/sys下生成这个设备的相应信息.U盘信息会保存在/sys/block下,USB打印机则会保存在/sys/class/usb下.使用udevinfo命令可以查看硬件的相关信息.
# udevinfo -a -p /sys/block/sda/sda1 looking at class device /sys/block/sda/sda1: SYSFS{dev}=8:1 SYSFS{size}=2045147 SYSFS{start}=61 SYSFS{stat}= 0 0 0 0follow the class devices device looking at the device chain at /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/host2/target2:0:0/2:0:0:0: BUS=scsi ID=2:0:0:0 SYSFS{detach_state}=0 SYSFS{device_blocked}=0 SYSFS{max_sectors}=240 SYSFS{model}=Flash Disk SYSFS{queue_depth}=1 SYSFS{rev}=4.00 SYSFS{scsi_level}=3 SYSFS{state}=running SYSFS{timeout}=30 SYSFS{type}=0 SYSFS{vendor}=
输出信息包括硬件的产品类型,厂商信息,序列号等,依据这些信息,你就可以编写命名规则了.
2.命名规则
udev的命名规则保存在/etc/udev/rules.d中,脚本按照文件的编号顺序,由小到大执行.当规则匹配时,将不再继续向下执行.下面以Turbolinux 10为例,编写一个U盘命名规则.
# vi /etc/udev/rules.d/05-users.rules
根据硬件的序列号(serial)编写规则.在文件中添加下面内容:
BUS=usb, SYSFS{serial}=033446747503, KERNEL=sd?1, NAME=bruce-%k, SYMLINK=bruce3-%n
BUS 表示设备使用的总线.SYSFS 表示指定硬件信息中,我们需要使用的哪一项值,这里我们使用U盘的序列号作为识别.KERNEL 表示内核对这个设备进行的命名.内核对U盘的命名为sda1,sdb1…,所以这里我们使用”sd?1”.N
文档评论(0)