Linux入门之内核管理番外篇(4)udev入门(1)
2017-01-10 12:56
429 查看
Linux入门之内核管理番外篇(4)udev入门(1)
前言在上篇中的内核模块管理讲解中,最后或多或少会留下一些疑问,那么这些疑问就是内核模块的参数是怎么和对应的硬件所匹配上的,而硬件又是怎么被内核识别,并且一个个都映射成实际存在的文件,而这些文件之间的关系及作用。当然在最后了解到,这些硬件设备的探测信息是通过一个叫udev的工具来实现的,通过udev中配置的规则可以很有效的识别每一个硬件,并配合sysfs文件系统,将每个探测到的硬件信息导入到/sys目录中,那么与/proc目录对与内核系统信息的映射悄悄互补,/sys目录中则专门存放于硬件相关的数据。
使用管理和探测设备属性信息的命令:udevadm
udevadm 命令
udev - Dynamic device management #动态设备管理工具
提示:一般情况下要设置udev命令规则会使用到udevadm命令来获取规则中需要设置的键的对应值,也就是设备的完整数据,而udev配置中恰好需要这,当然,下面介绍udevadm管理工具的一些基本常见用户,本篇主要以讲解udev内部的配置为主。
基本用法例子:
#先来查看当前系统识别了多少个磁盘
# fdisk -l | grep -o '^Disk /dev/[sh]d[a-z]\>' Disk /dev/sdb Disk /dev/sda
[root@mzf myusb]# udevadm info -a -p $(udevadm info -q path -n /dev/sda)
udevadm info -a -p /sys/class/backlight/acpi_video0[/code]
[b]udevadm control --reload4000
>
echo 0 0 0 | tee /sys/class/scsi_host/host*/scan
echo “- - -” > /sys/class/csci_host/host*/scan[/code]
udevadm moitor[/code]
[root@mzf test]# ls -l /test/my*
brw-r--r--. 1 root root 10, 1 Aug 22 05:28 /test/myblock
crw-r--r--. 1 root root 12, 2 Aug 22 05:28 /test/mychar[/code]
KERNEL=="sdc",NAME="my_usb_disk"[/code]
NAME - #根据匹配键找出对应的设备,并对其进行进行设置命令节点,也就是设备应该使用的名称
SYMLINK - #一个设备节点的可选名字的符号链接[/code]
[b]KERNEL=="sdc",DRIVER=="usb-storage",SYMLINK+="myusb_link"[/code]
SUBSYSTEM=="block",ATTR{size}=="30310400",SYTEMLINK+="myusb2"[/code]
KERNELS - #匹配设备及其所有父设备的内核名称
SUBSYSTEMS - #匹配设备及其所有父设备的内核名称
DRIVERS - #匹配设备及其所有父设备的驱动名称
ATTRS - #匹配设备及其所有父设备在sysfs中的属性值。如果指定了多个ATTRS匹配,那么必须在同一设备上全部匹配成功,才算最终匹配成功。[/code]
KERNEL=="[hs]dc[1-9]",SUBSYSTEM=="block",DRIVER=="usb",SYMLINK+="myusb_%n"[/code]
KERNEL=="fd[0-9]",NAME=="floppy/%n",SYMLINK+="%k"[/code]
[root@mzf ~]# cat /sys/block/sda/size
41943040[/code]
[b][root@mzf ~]# udevadm info --query=property --name=/dev/sda[/code]
[root@mzf ~]# udevadm info -a -p `udevadm info --query=path --name=/dev/sda1`[/code]
[root@mzf ~]# cat /proc/filesystems[/code]
[root@mzf ~]# depmod -a[/code]
insmod /usr/lib/modules/$(uname -r)/kernel/fs/
insmod /usr/lib/modules/$(uname -r)/kernel/fs/[/code]
[b]KERNEL=="sd*",SUBSYSTEM=="block",ATTR{ipVendor}=="4a3gb3",ATTR{idProduct}=="445566",name=="/myusb/usb_%n"
KERNEL=="sdc1",SUBSYSTEM=="block",ATTR{size}=="30310400",SYMLINK+="usb"
KERNEL=="sdc[0-9]",SUBSYSTEM=="block",SUBSYSTEMS=="scsi",ATTRS{model}=="USB Flash Drive ",NAME="my_usb_disk"[/code]
[root@mzf ~]# ls /dev
[root@mzf ~]# find /dev/ -name "*dev_name*"[/code]
[root@mzf ~]# udevadm info -a -p /sys/class/net/eth0[/code]
KERNEL=="eth*",SUBSYSTEM=="net",ATTR{type}=="1",ATTR{address}=="00:0c:29:a3:5d:d7",name="game_lan"[/code]
[b]
相关文章推荐
- Linux入门之内核管理番外篇(4)udev入门(1) 推荐
- 关于Linux内核开发的管理
- Linux 内核解读入门(转贴)
- linux 系统管理之入门-----安装
- Linux 内核解读入门
- Linux系统内核文件Cache管理机制
- Linux 内核解读入门
- Linux系统管理命令---Linux 入门常用命令 (9)
- Linux程序设计入门--消息管理
- Linux内核管理基础知识概述
- [Linux]内核编译与配置管理零星拾遗
- Linux 内核解读入门
- Linux 内核解读入门
- linux内核之存储管理二
- linux操作系统下c语言编程入门 -- (6)消息管理
- LINUX入门常用命令之系统管理
- 6)Linux程序设计入门--消息管理
- 入门:Linux 2.6 内核的嵌入式系统应用
- Linux入门教程——第三章 Linux 系统管理
- Linux 内核解读入门