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

    文章

    11628

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    移植蜂鸟需要在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 / 鸿蒙系统的技术优化

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

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

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

    LinuxVim编辑器的使用技巧

    【Vim】常用总结⟳ 简介⟳ image 什么是vim?⟳ Linux两大编辑神器之一 vim • Linux/Unix使用最多的编辑器 • vi的改进版 • 可能是最难上手的编辑
    的头像 发表于 04-01 17:36 1032次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>Vim编辑器的使用技巧

    怎么嵌入式linux控制dlp?

    请问怎么嵌入式linux 控制dlp,有没有支持
    发表于 03-03 07:02

    Linux系统安装中文环境和中文输入法(),触觉智能嵌入式开发板

    触觉智能经验分享,Linux系统安装中文环境和中文输入法(
    的头像 发表于 02-26 16:26 822次阅读
    <b class='flag-5'>Linux</b>系统安装中文环境和中文输入法(<b class='flag-5'>下</b>),触觉智能嵌入式开发板

    Linux环境的软件包下载指令是什么呢?

    在windows的env中可以直接使用pkgs —update去下载软件包,Linux环境这个指令好像不生效,那么Linux环境的软件包下载指令是什么呢?
    发表于 02-19 07:34

    基于OpenSBI的linux nommu实现

    Linux内核6.10提供了对没有mmu的riscv处理器工作在S模式的内核的支持,本文介绍基于OpenSBI的linuxnommu的实现,供大家参考。1、OpenSBI介绍SBI
    的头像 发表于 02-08 13:43 1059次阅读
    基于OpenSBI的<b class='flag-5'>linux</b> nommu实现

    Linux安装软件有哪些方法

    Linux安装软件,可以有哪些方法? 首先是最简单的,使用软件包管理工具。 如果是ubuntu或者debian系统,可以使用apt;如果是红帽或者centos,可以使用yum。 所以当你发现系统
    的头像 发表于 02-08 09:41 1023次阅读

    如何在Linux环境高效安装部署和配置Elasticsearch

    /CentOS-7-x86_64-DVD-2009.iso elasticsearch-7.10.0-linux-x86_64.tar.gz https://www.elastic.co/cn/downloads/past-releases
    的头像 发表于 01-16 11:49 1830次阅读

    干货来喽!实用树莓派Linux编译指南

    通常情况,模组对接的Linux协议是USB协议,模组通过USB插入Linux设备后可直接使用,系统会检测出设备的标识:PID VID。 然而实际运用中,时有新手朋友问: Linux
    的头像 发表于 12-18 16:31 842次阅读
    干货来喽!实用树莓派<b class='flag-5'>Linux</b>编译指南

    RZ T2H PCIe裸机程序开发和Linux的配置介绍

    ,还提供2个PCIe Gen3通道等高速外设。本文主要介绍PCIe外设的功能、裸机EP模式的程序开发、以及在Linux,如何编译网卡的流程。
    的头像 发表于 12-18 11:14 2497次阅读
    RZ T2H PCIe裸机程序开发和<b class='flag-5'>Linux</b><b class='flag-5'>下</b>的配置介绍

    实用树莓派Linux编译指南,打工人必备!

    通常情况,模组对接的Linux协议是USB协议,模组通过USB插入Linux设备后可直接使用,系统会检测出设备的标识:PID VID。 然而实际运用中,时有新手朋友问: Linux
    的头像 发表于 12-17 16:19 1996次阅读
    实用树莓派<b class='flag-5'>Linux</b>编译指南,打工人必备!