1.综述
本文简单介绍udev机制,并编写udev规则,实现手机即U盘自动挂载
2.udev介绍
udev 是 Linux2.6 内核里的一个功能,它替代了原来的 devfs,成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过帧听内核发出来的 uevent 来管理 /dev 目录下的设备文件。不像之前的设备管理工具,udev 在用户空间(User space)运行,而不在内核空间(kernel space)运行。
udev工作流程图:
3.规则文件
规则文件是 udev 里最重要的部分,默认是存放在 /etc/udev/rule.d/ 下。所有的规则文件必须以".rules" 为后缀名。
下面是一个简单的规则:
KERNEL 是匹配键,NAME 和 MODE 是赋值键。这条规则的意思是:如果有一个设备的内核名称为
sda,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为my_root_disk 的设备文件,并把设备
文件的权限设为 0660。
3.1 udev 规则的所有操作符:
3.2 udev 规则的匹配键:
4.udev 规则文件编写应用举例
4.1 手机接入的规则文件编写
(1)接入手机后,将手机的模式设置为开发者模式,并通过键入dmesg查看设备信息:
或者通过:
指令查看设备的具体信息
这里手机设备一般在/dev/bus/usb/001/中
这里我的设备为025:
故通过键入:
查看插入设备的具体信息:
(2)配置.rules文件
将路径切换至 /etc/udev/rules.d 路径中,键入:
编写规则文件:
这里的键值对选用ATTR{idVendor}和ATTR{dProduct},可以在前面获得的信息中选择相应键值对。
(3)运行结果
编写完.rules文件后,插入手机便可使用adb指令连接手机:
4.2 usb自动挂载的规则文件编写
(1)插入U盘后,可通过同样的方法查看U盘设备信息
这里U盘设备的路径有所不同为:
/dev/sdb1
查看信息:
(2)根据信息在/etc/udev/rules.d 中创建.rules文件:并编写以下规则实现u盘自动挂载:
sudo vi usbblock.rules
(3)运行结果
编写完之后通过tree /media
查看U盘内容
【补充】若没有编写.rules文件,需要用到mount命令挂载U盘: