udev学习总结
来源:互联网 发布:palemoon mac os 编辑:程序博客网 时间:2024/06/10 11:35
udev规则文件的路径:
/etc/udev/rules.d/
/lib/udev//rules.d/
udev的规则获取顺序,/etc/udev/rules.d/ /lib/udev//rules.d/ 。并且按照数据依次读取。
比如:
[root@localhost rules.d]# ls
60-fprint-autosuspend.rules 70-persistent-net.rules 98-kexec.rules
60-pcmcia.rules 90-alsa.rules 99-fuse.rules
60-raw.rules 90-hal.rules
70-persistent-cd.rules 97-bluetooth-serial.rules
有些规则文件是通过rpm包安装生成的,有些是由系统运行过程中生成的。
[root@localhost rules.d]# rpm -qf 60-raw.rules
util-linux-ng-2.17.2-12.9.el6.x86_64
[root@localhost rules.d]# rpm -qf 70-persistent-net.rules
file /etc/udev/rules.d/70-persistent-net.rules is not owned by any package
udev的规则文件处理:
规则文件中的每一行包括多个key value的组合,通过,分割。key value分为两种类型,match匹配类型和assign赋值类型。
如果所有的匹配类型都满足的话,则执行赋值类型。
对于匹配参数,可以获取父设备的参数进行匹配,但是如果是组合参数,只能匹配同一个父设备。
udev依次读取所有的udev规则文件,匹配进行处理。
介绍一些写udev规则需要使用的命令:
查看对应设备udev信息。
udevadm info --query=path --path=/sys/class/net/eth0/ --attribute-walk
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:04.0/0000:0b:00.0/0000:0c:04.0/net/eth0':
KERNEL=="eth0"
SUBSYSTEM=="net"
DRIVER==""
ATTR{addr_assign_type}=="0"
ATTR{addr_len}=="6"
ATTR{dev_id}=="0x0"
ATTR{ifalias}==""
ATTR{iflink}=="2"
ATTR{ifindex}=="2"
ATTR{features}=="0x149a3"
ATTR{type}=="1"
ATTR{link_mode}=="0"
ATTR{address}=="00:18:82:0a:f6:b6"
ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"
ATTR{operstate}=="down"
ATTR{mtu}=="1500"
ATTR{flags}=="0x1002"
ATTR{tx_queue_len}=="1000"
looking at parent device '/devices/pci0000:00/0000:00:04.0/0000:0b:00.0/0000:0c:04.0':
KERNELS=="0000:0c:04.0"
SUBSYSTEMS=="pci"
DRIVERS=="tg3"
ATTRS{vendor}=="0x14e4"
ATTRS{device}=="0x1678"
ATTRS{subsystem_vendor}=="0x14e4"
ATTRS{subsystem_device}=="0x1678"
ATTRS{class}=="0x020000"
ATTRS{irq}=="18"
ATTRS{local_cpus}=="0f"
ATTRS{local_cpulist}=="0-3"
ATTRS{modalias}=="pci:v000014E4d00001678sv000014E4sd00001678bc02sc00i00"
ATTRS{numa_node}=="-1"
ATTRS{enable}=="1"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
looking at parent device '/devices/pci0000:00/0000:00:04.0/0000:0b:00.0':
KERNELS=="0000:0b:00.0"
SUBSYSTEMS=="pci"
DRIVERS==""
ATTRS{vendor}=="0x1166"
ATTRS{device}=="0x0103"
ATTRS{subsystem_vendor}=="0x0000"
ATTRS{subsystem_device}=="0x0000"
ATTRS{class}=="0x060400"
ATTRS{irq}=="0"
ATTRS{local_cpus}=="0f"
ATTRS{local_cpulist}=="0-3"
ATTRS{modalias}=="pci:v00001166d00000103sv00000000sd00000000bc06sc04i00"
ATTRS{numa_node}=="-1"
ATTRS{enable}=="1"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}=="1"
looking at parent device '/devices/pci0000:00/0000:00:04.0':
KERNELS=="0000:00:04.0"
SUBSYSTEMS=="pci"
DRIVERS=="pcieport"
ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x65e4"
ATTRS{subsystem_vendor}=="0x0000"
ATTRS{subsystem_device}=="0x0000"
ATTRS{class}=="0x060400"
ATTRS{irq}=="26"
ATTRS{local_cpus}=="0f"
ATTRS{local_cpulist}=="0-3"
ATTRS{modalias}=="pci:v00008086d000065E4sv00000000sd00000000bc06sc04i00"
ATTRS{numa_node}=="-1"
ATTRS{enable}=="2"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}=="1"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
查看udev事件:
udevadm monitor --env
查看pci设备树形结构
[root@localhost ~]# lspci -t -v
-[0000:00]-+-00.0 Intel Corporation 3rd Gen Core processor DRAM Controller
+-02.0 Intel Corporation 3rd Gen Core processor Graphics Controller
+-14.0 Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller
+-16.0 Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1
+-16.3 Intel Corporation 7 Series/C210 Series Chipset Family KT Controller
+-19.0 Intel Corporation 82579LM Gigabit Network Connection
+-1a.0 Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
+-1b.0 Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller
+-1c.0-[02]--
+-1c.1-[03]----00.0 Intel Corporation Centrino Ultimate-N 6300
+-1c.2-[04-0b]----00.0 Ricoh Co Ltd MMC/SD Host Controller
+-1c.4-[0c-3f]--
+-1d.0 Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
+-1f.0 Intel Corporation QM77 Express Chipset LPC Controller
+-1f.2 Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode]
\-1f.3 Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller
- udev学习总结
- Udev学习总结
- Udev学习总结
- Udev学习总结
- udev学习总结
- Udev、Mdev学习总结
- Udev学习总结
- udev和mdev学习总结
- udev和mdev学习总结
- udev和mdev学习总结
- 学习UDEV
- 学习UDEV
- udev 和 mdev 总结
- udev 和 mdev 总结
- udev 和 mdev 总结
- udev 和 mdev 总结
- udev 和 mdev 总结
- udev学习笔记
- 用go build -race来做数据竞争检测(Data Race Detector)
- 数字机内存储
- MySQL集群简介与配置详解
- activity启动FLAG之FLAG_ACTIVITY_CLEAR_TASK
- JAVA面向对象(五)
- udev学习总结
- js
- Windows API了解用户是否在使用鼠标或键盘
- iOS学习笔记07—Objective-C 委托、非正式协议、正式协议
- adb技巧
- Processing学习(二)
- 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root
- JAVA--GUI
- C# - C# coding rule : Using Directives Must Be Placed Within Namespace