0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux下udev应用

启扬ARM嵌入式开发 2022-08-28 15:47 次阅读

udev

udev是一个设备管理工具,并以守护进程的方式运行,它能够根据内核的uevent管理/dev/下面的设备文件。因为工作在用户层的缘故,所以能够很好地接收内核层的消息动态和管理设备文件,比单一的在内核层静态注册设备文件方便得多。

接下来我们以启扬IAC-IMX8MP-Kit开发板中的udev为例,对其进行简单的了解。

udev一般会有一个配置文件—— udev.conf,如下图所示:

032e5354-2559-11ed-9ade-dac502259ad0.png

其中,udev_log表示日志等级,显示可能为err(3),info(6),debug(7);

children_max表示允许同时执行的最大设备数量;

exec_delay表示延迟多少秒之后再执行RUN指令;

event_timeout表示等待设备事件完成的超时秒数,超时后,设备事件将会被终止,默认为180s;

timeout_signal表示超时发出的信号

resolve_names设置systemd-udevd 在何时解析用户与组的名称。此时显示默认值 early 表示在规则的解析阶段;显示late时表示在每个设备事件发生的时候;显示never时表示不解析(所有设备都归 root 用户拥有)。

udev主要根据/etc/udev/rules.d/下面的匹配规则进行指定动作,如下图所示:

034d1f6e-2559-11ed-9ade-dac502259ad0.png

前面的数字代表着优先级,数字越低表示优先级越高。

这里我们打开automount规则文件,显示如下图

03684b7c-2559-11ed-9ade-dac502259ad0.png

其中,SUBSYSTEM如字面意思,是子系统的名称,这里是块儿设备所以是block;

ACTION表示事件的行为,add是添加,remove是移除,change是改变;

ENV{key}是环境变量,在一条规则中,最多设置五条环境变量的匹配键;

RUN就是所执行的内容,一般以脚本为主;

而这里整体的意思就是,当有一个块儿设备添加进来,就执行/etc/udev/scripts/mount.sh这个脚本,块儿设备的卸载包括变更也都是执行这个脚本。

接下来我们再看这个脚本的内容,如下图

038ff0dc-2559-11ed-9ade-dac502259ad0.png

脚本的内容有点儿长,大致的内容就是通过判断插入块儿设备的文件系统类型进行不同的操作,一般都是将其挂载到某一个指定的目录下。

这里我们将U盘插入,看看udev规则下它会挂载到哪里。

插入U盘显示如下图:

03bb0fc4-2559-11ed-9ade-dac502259ad0.png

识别到U盘,并且根据上面脚本的规则,将其挂载到/run/media/sda1下面,如图所示,表明规则执行成功。

03e09172-2559-11ed-9ade-dac502259ad0.png

通过上面的操作,可以看出我们能够根据udev规则做一些设备的固定匹配工作,这会为一些需要根据硬件动作做出相应脚本执行的工作带来的极大的方便。

END

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11216

    浏览量

    208793
收藏 人收藏

    评论

    相关推荐

    Linux应用编程的基本概念

    Linux应用编程涉及到在Linux环境开发和运行应用程序的一系列概念。以下是一些涵盖Linux应用编程的基本概念。
    的头像 发表于 10-24 17:19 170次阅读

    详解linux内核的uevent机制

    linux内核中,uevent机制是一种内核和用户空间通信的机制,用于通知用户空间应用程序各种硬件更改或其他事件,比如插入或移除硬件设备(如USB驱动器或网络接口)。uevent表示“用户空间
    的头像 发表于 09-29 17:01 442次阅读

    linux系统已安装esp-idf,无法安装vscode插件要怎么处理?

    deepin/linux系统,使用第三种方式安装 无法add openocd dev rules EISDIR: illegal operation on a directory
    发表于 06-20 07:39

    使用esp32-s3的USB Serial/JTAG口连接linux时,找不到设备是怎么回事?

    一直以来我使用uart口进行烧写,在linux和windows上都正常,这两天尝试了用USB Serial/JTAG口,我用的是官方开发板进行连接。 其中,不需要任何改动就可以在windows上进
    发表于 06-12 07:22

    虹科干货 | 多设备协同无忧:Linux环境PCAN固定设备ID/通道分配指南

    在车辆网络系统和工业自动化等多设备环境中,确保设备识别的一致性对于维护系统稳定性至关重要。虹科PCAN适配器提供了一种解决方案,允许用户在Linux环境固定设备ID和通道分配,从而不受USB端口
    的头像 发表于 06-11 15:03 408次阅读
    虹科干货 | 多设备协同无忧:<b class='flag-5'>Linux</b>环境<b class='flag-5'>下</b>PCAN固定设备ID/通道分配指南

    请问ESP Wroom 32板如何在LInux使用?

    ESP Wroom 32板如何在LInux使用。 我用的系统是统信UOS,如何使用ESP32板,开发Micropython啊 简单来说就是在ESP32上刷上micropython固件,然后编写micropython代码。 在Linu
    发表于 06-05 06:22

    linux查询进程占用的内存方法有哪些?

    linux查询进程占用的内存方法
    发表于 04-08 06:03

    Linux环境能使用PSoC Creator 4.3吗?

    最近碰到一个在Linux系统编译的要求,PSoC Creator能够在Linux环境使用吗?
    发表于 02-18 07:22

    如何使用linuxgdb来调试python程序

    如何使用linuxgdb来调试python程序  在Linux,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的调试工具,可以帮助开发者诊断和修复程序中的错
    的头像 发表于 01-31 10:41 2398次阅读

    求助,请问Linux如何监控USB数据呢?

    Linux之前是通过lsusb查看一些信息,但有时候也需要监控到USB数据,故请教一各位有没有Linux的USB监控软件,或者一些监
    发表于 01-24 06:52

    Linux常见的十几款CPU监控工具

    今天浩道跟大家分享运维工作中,Linux常见的十几款CPU监控工具,你可能只会用到其中某些,但是个人觉得作为一个资深运维,你要知道有这些工具可以监控CPU。
    的头像 发表于 01-22 09:19 2400次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>常见的十几款CPU监控工具

    Linux操作系统中如何按PCIe的复位键

    Linux操作系统中,看如何按PCIe的复位键
    的头像 发表于 01-20 09:31 1424次阅读
    <b class='flag-5'>Linux</b>操作系统中如何按<b class='flag-5'>下</b>PCIe的复位键

    请问如何在Linux取得NUC980 CPU频率?

    如何在Linux取得NUC980 CPU频率?
    发表于 01-17 07:01

    如何查看Linux systemd正在运行的服务

    Linux 系统提供了各种系统服务(如 syslog、cron 等)和网络服务(如 DNS、SSH 等)。
    的头像 发表于 12-04 14:47 1948次阅读
    如何查看<b class='flag-5'>Linux</b> systemd<b class='flag-5'>下</b>正在运行的服务

    linux的常用命令

    ,最上层根目录是“/”,在这个根目录/创建其他目录。Linux一切皆文件 2.2 Linux目录介绍 第一行 (1)/bin:存放经常使用的命令 (2)/boot:启动Linux使用
    的头像 发表于 11-24 16:04 559次阅读
    <b class='flag-5'>linux</b>的常用命令