(十七)Linux的热拔插UDEV机制

news/2024/10/31 3:22:14/

学习日志(十七)

Linux的热拔插UDEV机制

Udev设备工具

Udev简介

udev是一个设备管理工具;

udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。

udev在用户空间运行,而不在内核空间运行。它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。

使用udev后,它会在/dev目录下创建真正存在的设备文件句柄了,应用层就可以通过文件句柄操作了。

linux系统运行机制结构图:

请添加图片描述

应用层调用:库函数->系统调用->内核->硬件;

udev配置文件一般在哪:

它的配置文件在:

/etc/udev/udev.conf

这个一般是开发人员写好的udev配置文件。

规则文件的创建

为何要创建规则文件:

创建规则文件是为了让udev机制能认识他是usb类型设备,或者其他类型设备,并为
usb设备创建文件,否则即使内核识别到了usb设备,发出uevent,udev也不会在/dev
下面创建对应的设备文件。

如何建立自己的规则文件:

我们一般在:/etc/udev/rules.d 文件夹下创建规则文件:

/etc/udev/rule.d

比如创建usb热拔插的规则:

sudo vim 51-android.rules

在51-android.rules 中输入:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

这样就是建立了usb热拔插规则的文件。

总结:

说白了:当设备插入,内核知道后,发出uevent,udev设备工具一直在监听,监听到uevent后,根据规则文件的规则(可以是自己创建的),判断它是什么类型的设备,并在/dev下面为它创建对应的设备文件,这样应用层就通过文件句柄访问到设备了;


http://www.ppmy.cn/news/483439.html

相关文章

带电插拔损坏设备原理_那些设备可以热插拔?

我们常常会看到一个词语热插拔, 对于从事 IT 人事来讲并不陌生, 但对于一般普通用户 来讲热插拔就一知半解了,那么什么是热插拔呢,热插拔是什么意思呢,热插拔就是指带电 插拔电脑 (IT) 上的设备, 英文 (hot…

DP83848+网线热拔插

过程说明 1掉电和中断 掉电和中断功能在设备的7脚上复用。默认情况下,这个pin作为断电输入,中断功能被禁用。设置MICR位0 (INT_OE)(0x11h)将引脚配置为一个激活的低电平中断输出。 2掉电控制模式 PWRDOWN_INT引脚可以被断言为低电平以将设备置于Power D…

认识和使用热插拔的正确姿势

热插拔功能是PCIe SSD的一项重要功能, 能大大简化设备更换和调试步骤。特别是在服务器厂商推出支持 U.2 接口的产品后,对热插拔的需求更加广泛。热插拔在 PBlaze5 PCIe SSD应用非常成熟。这篇文章旨在为使用 PBlaze5为代表的U.2接口的PCIe SSD进行热插拔…

【PCI】pcie-switch应用——热拔插(七)

内核热插拔驱动 PCI设备在BIOS启动阶段枚举,之后传给linux内核,由linux内核将每个PCI设备注册到pci_bus_type总线上,进而匹配pci驱动,如下图所示。 PCI桥设备也会匹配pci驱动,这个驱动名称为pcieport,该驱…

HDMI接口之HPD(热拔插)

HDMI (Pin 19)/DVI(Pin16)的功能是热插拔检测(HPD),这个信号将作为HDMI 源端(Source)是否发起EDID读,是否开始发送TMDS信号的依据。HPD是从HDMI显示器端(Sink&#xff09…

USB热拔插事件

前言 USB(Universal Serial Bus)通用串行总线的缩写,是一个外部总线标准,用于规范主机与外围设备的连接以及通讯,目前使用较多的版本有USB1.1、USB2.0、USB3.0等。USB接口常用在诸如USB串行设备驱动(3G/4G上网卡、蓝牙…

[热拔插] 轻量级Winform插件式框架

写在前面的话 对于大神,Winform这种“古董玩具”,实在没太多“技术性”可言了,然而『好用才是王道』,本文不以技术为卖点,纯属经验之谈,欢迎交流拍砖 朴素版UI 开发初衷 由于本人所在公司不定时需要开发各种…

[嵌入式linux]PCIe 热拔插(rescan)

linux下可通过/sys/bus/pci/devices/0000\:[bus number]\:[device number].[function number]/ 目录下的节点进行热拔插操作。 板子上电前PCIe插槽有一块NVME的固态硬盘 [ 0.198515] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400 [ 0.199284] pci 0000:01:00…