udev和驱动的自动加载

udev和驱动的自动加载

一、概述

在一般的驱动编写时,我们可以通过加载模块来向系统添加设备,也可以通过移除模块来删除设备。但是很多时候我们会设想到一种更加智能的的场景,即当设备被添加到系统后,驱动可以自动加载,这对于实际的可支持热插拔的硬件来说更有必要。比如说,我们插入一个USB无线网卡,那么对应的驱动就应该自动加载,而不是由用户来手动加载。要想实现这一工能,我们就需要依赖一个工具 — udev。在大多数嵌入式系统中通常使用mdev,其功能比udev要弱很多,同样的我们也可以移植udev到嵌入式系统上。

先补充一点Linux设备模型的知识:使用了Linux设备模型后,任何设备的添加、删除或者状态修改都会导致内核向用户空间发送相应的事件,这个事件叫uevent,它和kobject密切关联。这样用户空间就可以铺货这些事件来自动完成某些操作,如自动加载驱动、自动创建和删除设备节点、修改权限、创建软连接修改网络设备的名字等。目前实现这个功能的工具就是udev(或者mdev),这是一个用户空间的应用程序,捕获来自内核空间发来的事件,然后根据其规则文件进行操作。udev的规则文件一般放在/etc/udev/rules.d目录下的后缀为.rules的文件。

二、udev规则文件基本语法

udev规则文件用# 来注释,除此之外就是一条一条的规则。每条规则至少包含一个键值对,建分为匹配和赋值两种类型。如果内核发来的事件匹配了规则中的所有匹配键的值,那么这条规则就可以得到应用,并且赋值建被赋予指定的值。一条规则包含了一个或多个键值对,这些键值对用逗号隔开,每个键由操作符规定一个操作,合法的操作符如下。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值