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
    +关注

    关注

    88

    文章

    11807

    浏览量

    219508
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开发一个基于运行 Yocto 的 i.MX6ULL 的定制板,如何减少启动时间?

    最低限度,仅保留所需的组件 从随附的 systemd-analyze 图(其中还显示了使用的 Yocto 和内核版本)中,我注意到systemd-udev-trigger.service 在启动
    发表于 04-16 08:26

    Linux系统配置FCB-EV9520L与LVDS转USB3.0编码采集模块教程

    Linux系统上运行LVDS转USB3.0编码采集模块涉及几个关键步骤,包括Linux环境配置、硬件连接、软件安装与配置以及测试。以下是一个基本的指南
    的头像 发表于 03-04 16:05 177次阅读
    <b class='flag-5'>Linux</b>系统<b class='flag-5'>下</b>配置FCB-EV9520L与LVDS转USB3.0编码采集模块教程

    Linux扩充Swap交换空间:解决内存不足的实用指南,这些影响要注意!

    大家在使用 Linux 系统(比如常用的 Ubuntu)时,是不是偶尔会遇到 “内存不足” 的弹窗?比如运行大型编译任务、多开虚拟机、做数据分析,或者把 Linux 当服务器用的时候,物理内存一旦 “告急”,系统就会卡顿甚至崩溃。这时候,Swap 交换空间就成了“救场神器
    的头像 发表于 02-09 16:33 501次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>扩充Swap交换空间:解决内存不足的实用指南,这些影响要注意!

    Linux 开发嵌入式必备命令速查表

    管理等环节轻松应对各种问题。今天,我们整理了一份Linux嵌入式开发必备命令速查表,让你一篇文章就能快速查阅。一、文件与目录管理命令在嵌入式开发中,你经常需要操作
    的头像 发表于 01-19 09:06 1013次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>下</b>开发嵌入式必备命令速查表

    Linux 交叉编译实战:跑起来你的第一个 STM32 程序

    很多开发者第一次接触STM32,总会被“交叉编译”、“烧录程序”等概念绕晕。其实方法很简单:在Linux配置交叉编译环境,编写简单程序,然后烧录到STM32,就可以看到成果了。本文带你从零开始
    的头像 发表于 11-24 19:04 1032次阅读
    <b class='flag-5'>Linux</b> <b class='flag-5'>下</b>交叉编译实战:跑起来你的第一个 STM32 程序

    移植蜂鸟需要在Linux环境吗?

    《手把手教你设计CPU》书上运行Verilog仿真测试那章说为了重现仿真环境,最好在Linux环境。不知道移植蜂鸟是否需要在Linux环境,直接在Windows操作系统可否移植开发
    发表于 11-10 07:42

    Linux识别不到JTAG是怎么回事?

    Linux识别不到JTAG
    发表于 11-06 07:24

    在Windows和Linux环境分别使用Olimex和蜂鸟调试器下载程序

    本队伍编号CICC3042,本篇文章介绍在Windows和Linux环境分别使用Olimex和蜂鸟调试器下载程序,和上一篇Hbirdv2的移植配合使用。 使用过第一版蜂鸟的同学们可能按照书中
    发表于 10-31 08:26

    linux环境 软件启动失败怎么解决?

    anyway. /usr/lib/x86_64-linux-gnu/libproxy/libpxbackend-1.0.so: undefined symbol
    发表于 06-23 07:37

    开源系统适配:聚徽分享国产工控平板在 Linux / 鸿蒙系统的技术优化

    工控平板进行技术优化,实现与 Linux、鸿蒙系统的高效适配,成为行业关注的焦点。 一、Linux 系统国产工控平板的技术优化 (一)内核裁剪与定制 Linux 内核功能丰富,但对于
    的头像 发表于 06-13 16:29 1288次阅读

    linux使用cyusbserial SDK错误怎么解决?

    我使用的TI DLP3010EVM模块是通过CY7C65215 芯片进行控制的,我可以在win环境正常使用TI DLP的调试软件或者使用cyusbserial SDK的vs程序完成对设备的控制
    发表于 06-03 07:46

    能否提供LinuxUSB转SPI模式的测试程序?

    我已在 Linux 上成功配置了 CY7C65211 器件,使其在 USB 转 SPI 模式运行。 使用 lsusb 命令,设备显示如下:总线 003 设备 002:ID 04b4:0004
    发表于 05-22 06:16

    不借助Linux系统,在Windows如何搭建ZMC900E交叉编译环境

    嵌入式Linux系统,由于系统资源的匮乏,通常无法安装本地编译器进行本地开发,而需要在借助一台主机进行交叉开发。一般情况,在主机安装相应的交叉编译器,将在主机编
    的头像 发表于 05-21 11:34 1067次阅读
    不借助<b class='flag-5'>Linux</b>系统,在Windows<b class='flag-5'>下</b>如何搭建ZMC900E交叉编译环境

    Linux权限管理基础入门

    Linux的广阔天空中,权限管理犹如一只翱翔的雄鹰,掌控着系统的安全与秩序。掌握Linux权限,不仅能让你的系统管理更加得心应手,还能有效防止未授权访问和数据泄露。本文将带你深入探索Linux权限的奥秘,助你成为权限管理的高手
    的头像 发表于 05-06 13:44 904次阅读
    <b class='flag-5'>Linux</b>权限管理基础入门

    Linux主要的性能有哪些?

      什么是Linux?   Linux是一套自由传播的类Unix操作系统,是一个基于posix和unix的多用户、多任务、支持多线程和多cpu的操作系统。它的基本思想有两点,一切都是文件和每个软件
    的头像 发表于 04-30 18:09 758次阅读
    <b class='flag-5'>Linux</b>主要的性能有哪些?