转跟我一起写udev规则13页word资料.docx

上传人:b****4 文档编号:680647 上传时间:2022-10-12 格式:DOCX 页数:10 大小:29.71KB
下载 相关 举报
转跟我一起写udev规则13页word资料.docx_第1页
第1页 / 共10页
转跟我一起写udev规则13页word资料.docx_第2页
第2页 / 共10页
转跟我一起写udev规则13页word资料.docx_第3页
第3页 / 共10页
转跟我一起写udev规则13页word资料.docx_第4页
第4页 / 共10页
转跟我一起写udev规则13页word资料.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

转跟我一起写udev规则13页word资料.docx

《转跟我一起写udev规则13页word资料.docx》由会员分享,可在线阅读,更多相关《转跟我一起写udev规则13页word资料.docx(10页珍藏版)》请在冰豆网上搜索。

转跟我一起写udev规则13页word资料.docx

转跟我一起写udev规则13页word资料

【转】跟我一起写udev规则

死记硬背是一种传统的教学方式,在我国有悠久的历史。

但随着素质教育的开展,死记硬背被作为一种僵化的、阻碍学生能力发展的教学方式,渐渐为人们所摒弃;而另一方面,老师们又为提高学生的语文素养煞费苦心。

其实,只要应用得当,“死记硬背”与提高学生素质并不矛盾。

相反,它恰是提高学生语文水平的重要前提和基础。

【转】跟我一起写udev规则2019-05-3113:

16

与当今“教师”一称最接近的“老师”概念,最早也要追溯至宋元时期。

金代元好问《示侄孙伯安》诗云:

“伯安入小学,颖悟非凡貌,属句有夙性,说字惊老师。

”于是看,宋元时期小学教师被称为“老师”有案可稽。

清代称主考官也为“老师”,而一般学堂里的先生则称为“教师”或“教习”。

可见,“教师”一说是比较晚的事了。

如今体会,“教师”的含义比之“老师”一说,具有资历和学识程度上较低一些的差别。

辛亥革命后,教师与其他官员一样依法令任命,故又称“教师”为“教员”。

目录介绍关于本文档更新历史概念术语:

devfs,sysfs,nodes,etc.为什么?

内置固定命名设计编写规则规则文件和语义规则语法基本规则sysfs匹配属性设备级联结构字符串替换字符串匹配从sysfs中查找合适信息sysfs树udevinfo其他方法高级话题权限和所有权控制使用外部程序命名设备发生特定事件时运行外部程序环境交互另外选项例子USB打印机USB相机USB硬盘USB读卡器USBPalm导航仪CD/DVD驱动网卡测试和调试让你的规则跑起来udevtest作者及联系方式关于本文档udev面向2.6以上的linux内核在用户空间提供动态的/dev下固定设备命名方案.之前的/dev实现:

devfs现在已被废弃,udev成为继任者.udevvsdevfs是一个敏感的谈话内容,在进行比较之前你应该读一下这个文档(/kernel/hotplug/udev_vs_devfs).

要练说,得练看。

看与说是统一的,看不准就难以说得好。

练看,就是训练幼儿的观察能力,扩大幼儿的认知范围,让幼儿在观察事物、观察生活、观察自然的活动中,积累词汇、理解词义、发展语言。

在运用观察法组织活动时,我着眼观察于观察对象的选择,着力于观察过程的指导,着重于幼儿观察能力和语言表达能力的提高。

几年间你为之使用udev规则的设备发生改变了,如同规则自身的弹性一样.在现代系统中udev为系统外的类型设备提供了固定的命名方法,避免了为这些设备提供定制规则.但是一些用户仍然需要额外的定制级别.

本文档假设你已经安装了udev并使用缺省配置运行ok.这通常通过你的linux发行版做到的.

本文档不会覆盖规则书写的方方面面,只集中介绍所有主要概念.更多细节信息可以在udev的man页中找到.

本文档使用各种例子(一些完全是虚构的)来阐述观点和概念.不是所有语法都会显式的在附带文本中描述,请确信通过查看例子规则来获取完整的理解.

更新历史(略)

概念语义:

devfs,sysfs,nodes等仅仅是基本介绍,可能并不完全准确.在典型的基于linux的系统中,/dev目录用来存储文件一样的设备节点,它们指向系统中特定的设备.每一个节点指向系统的一部分(一个设备),可能存在也可能不存在.用户空间应用程序可以使用这些设备节点跟系统硬件打交道,例如,X服务器"监听"/dev/input/mice来根据用户的鼠标移动来移动可视鼠标指针.原来的/dev目录仅仅在设备可能在系统中出现时产生,因此/dev目录一般非常大.随之而来的devfs提供了一种易于管理的途径(注意它仅仅在硬件插入到系统中时产生/dev)以及其他功能,但系统会出现无法容易修复的问题.

udev是一种新的管理/dev目录的方法,它的设计清除了以前的/dev实现的一些问题并提供了鲁棒的路径向后兼容.为了创建并命名系统中相应的/dev设备结点,udev需要依赖于根据用户提供的规则从sysfs中得到的匹配信息.本文着重规则书写的过程,udev相关的任务由用户自己完成.

sysfs是2.6内核中一个新的文件系统,它由内核管理,并导出当前系统中插入的设备基本信息.udev可使用这些信息创建对应的硬件设备结点.sysfs挂载在/sys下而且是可浏览的.你可能很希望在使用udev之前刺探下存储在那儿的有关文件.本文中我将交替使用/sys和sysfs术语.

为什么?

udev规则具有弹性非常强大,这里是一些你使用规则可以达到的结果:

1.重命名设备节点的缺省名字为其他名字2.通过创建符号链接到缺省设备节点来提供一个可选的固定的设备节点名字3.基于程序的输出命名设备节点4.改变设备节点的权限和所有权5.但设备节点被创建或删除时(通常是添加设备或拔出设备时)执行一个脚本6.重命名网络接口

当存在的特定设备没有设备节点时,这不是书写规则的工作范围.即使没有匹配的规则,udev也会利用内核提供的缺省名字来创建设备节点.

拥有固定命名设备节点有很多好处.假设你有两个USB存储设备:

一个数码相机,一个是USB闪存盘.这些设备通过被赋予/dev/sda和/dev/sdb设备节点,准确的赋值取决于它们连接到系统的顺序.这可能为一些用户造成麻烦,如果每个设备每次都可以固定命名,比如/dev/camera和/dev/flashdisk,用户就会获益.

内置固定命名方法udev为系统外的一些设备类型提供了固定命名,这是一个很有用的特征,在某些情况下意味着你不用书写任何规则.

udev为存储设备在/dev/disk目录下提供了系统外命名方法.要查看它为你的存储硬件创建的固定命名,你可以使用下列命名:

#ls-lR/dev/disk所有存储类型都可以这么用.例如udev为我的根分区创建了固定命名链接:

/dev/disk/by-id/scsi-SATA_ST3120827AS_4MS1NDXZ-part3.但我插入我的USB闪存盘udev就会创建另外一个固定命名节点:

/dev/disk/by-id/usb-Prolific_Technology_Inc._USB_Mass_Storage_Device-part1.

规则书写规则文件和语义为决定如何命名设备以及执行什么另外动作,udev会读取一系列规则文件.这些文件保存在/etc/udev/rules.d目录下并且都必须有.rules后缀名.

缺省udev规则存储在/etc/udev/rules.d/50-udev.rules里面.你可能发现整个文件很有意思,它包含了少量例子,一些缺省规则提供了devfs风格的/dev布局,但是你不应该直接在这个文件里面书写规则.

/etc/udev/rules.d/下面的文件通过lexical顺序解析,在某些情况下规则的解析顺序很重要.通常来说你希望你的规则可以在缺省规则之前解析,所以我建议你创建一个文件/etc/udev/rules.d/10-local.rules并把自己的所有规则写到这里面去.

在一个规则文件中,以"#"开头的行被认为是注释.每一个非空的行都是一条规则.规则不能跨越多行.

一个设备可以被多条规则匹配到,这有着很实用的优点,例如,我们可以写两个匹配同一个设备的规则,每一个规则为设备提供了它自己的可选命名.即使分开在不同的文件种,两个可选命名也都会被创建,要明白udev在找到一个匹配规则后不会停止处理其他规则,它仍然会继续查找并尝试应用已知的每条规则,这很重要.

规则语法每条规则通过一系列键值对创建,这些键值对通过逗号分隔.匹配键是用来识别要应用规则的设备的条件,但规则中对应设备的所有匹配键被处理后,就会应用规则并且赋值键的行为也会触发.每条规则应该包含至少一个匹配键和至少一个赋值键.

这是用来阐述上面内容的一个例子规则:

KERNEL=="hdb",NAME="my_spare_disk"上述规则包含一个匹配键(KERNEL)以及一个赋值键(NAME).这些键和它们的属性的语义将在稍后具体说明.注意到匹配键通过连等号(==)与它的值联系起来,赋值键通过等号(=)与它的值关联.

注意udev不支持任何形式的行连接符,不要在你的规则种插入任何断行符,这将会导致udev把你的一条规则看做是多条规则但不会按预料工作.

基本规则udev提供一些用来书写精确匹配规则的匹配键,其中一些常用键将在下面介绍,其他将在文档的后面说明.要得到完整列表可以查看udev的手册页.KERNEL-为设备匹配的内核名字SUBSYSTEM-匹配设备的子系统DRIVER-匹配支持设备的驱动名称在你使用一系列匹配键来准确匹配设备后,udev通过赋值键为接下来发生的事给你提供更好的控制.你可以查看udev的手册页查看完整的赋值键列表.最基本的赋值键在下面说明,其他的将在文档结束时说明.NAME-设备节点应该使用的名字SYMLINK-一个设备节点可选名字的符号链接列表正如之前所说,udev会为设备创建一个真正的设备节点.如果你希望为设备节点提供可选名字,你得通过SYMLINK使用符号链接功能,实际上是维护一个符号链接列表,这些符号链接都会指向真实的设备节点.为了维护这些链接我们介绍一个新的附加操作符:

+=.你可以在一个规则中附加多个符号链接到列表中,每个链接通过空格分开.KERNEL=="hdb",NAME="my_spare_disk"上面规则意思是:

匹配一个设备命名为hdb的设备,把它重新命名为my_spare_disk.设备节点出现在/dev/my_spare_disk.KERNEL=="hdb",DRIVER=="ide-disk",SYMLINK+="sparedisk"上面规则意思是:

匹配一个内核命名为hdb以及驱动为ide-disk的设备,命名设备节点为缺省名字并创建一个指向它的sparedisk符号链接。

注意到我们没有指明设备节点名字,于是udev使用缺省名字。

为了保留标准/dev布局,你自己的规则通常没有NAME但会创建一些SYMLINK并/或执行其他赋值操作.KERNEL=="hdc",SYMLINK+="cdromcdrom0"上面规则很可能就是你要写的典型规则。

它在/dev/cdrom和/dev/cdrom0创建了两个符号链接,都指向/dev/hdc.再一次地,没有NAME赋值键,所以使用缺省的内核名字(hdc).

匹配sysfs属性到目前为止介绍的匹配键仅仅提供了有限的匹配能力.实际上我们需要更加优良的控制:

我们想基于设备的高级属性来识别设备,如供应商编码,产品编号,序列号,存储能力,分区数等等.

一些驱动导出这些信息到sysfs,udev允许我们使用ATTR键通过稍捎不同的语法来合并sysfs匹配到自己的规则中.

这里有一个匹配sysfs中单个属性例子.更多细节将在稍后的帮助你基于sysfs属性书写规则的文档中提供.SUBSYSTEM=="block",ATTR{size}=="234441648",SYMLINK+="my_disk"设备级联linux内核实际上以树状结构展示设备,这个信息通过sysfs显露出来,在书写规则时这非常有用.例如我的硬盘设备的展示是一个SCSI磁盘设备的孩子,这个SCSI磁盘设备又是一个ATA控制器设备的孩子,该控制器又是PCI总线设备的孩子.你很有可能发现你需要从一个讨论中的设备的双亲那里引用信息,比如我的硬盘设备的序列号在设备级别并不暴露出来,而是在SCSI磁盘级别通过它的直接双亲展现。

目前介绍的四个主要匹配键(KERNEL/SUBSYSTEM/DRIVER/ATTR)仅仅跟对应设备的值匹配,并不跟双亲设备的值匹配.udev提供了在树中向上查找的匹配键变量:

KERNELS-为设备匹配的内核名字,或任何双亲设备中的内核名SUBSYSTEMS-匹配设备的子系统名,或任何双亲设备中的子系统名DRIVERS-匹配支持设备的驱动名,或任何支持双亲设备的驱动名ATTRS-匹配设备的sysfs属性,或任何双

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1