如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。...目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题。...特别是那些动态设备,比如USB设备,设备文件到实际设备的映射并不可靠和确定。举一个例子:如果你有两个USB打印机。一个可能称为 /dev/usb/lp0,另外一个便是/dev/usb/lp1。...答:udev只支持linux-2.6内核,因为udev严重依赖于sysfs文件系统提供的信息,而sysfs文件系统只在linux-2.6内核中才有。...Udev小窍门 自动加载usb设备 KERNEL=="sd[a-z]", NAME="%k", SYMLINK+="usb%m", GROUP="users", OPTIONS="last_rule
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
一条简单的规则示例: # 当发现一个厂商ID为0a12,产品ID为0001的USB设备时, # 就创建一个符号链接 /dev/my_usb_device,并设置它的权限为0666 SUBSYSTEM==..."usb", ATTR{idVendor}=="0a12", ATTR{idProduct}=="0001", SYMLINK+="my_usb_device", MODE="0666" 规则是如何被“...常见的匹配键有: SUBSYSTEM:设备所在的子系统,如 usb, pci, net 等。...# 重新触发所有设备的事件(慎用) udevadm trigger # 仅触发特定类型设备的事件,如USB设备 udevadm trigger --subsystem-match=usb 4. udevadm...udev 的这三个组成部分各司其职又紧密协作,共同构成了 Linux 现代化、动态化、用户空间化的设备管理基石。
深耕 Android、Linux、RTOS、通信协议、AIoT、物联网及 C/C++ 等领域,乐于技术交流与分享。欢迎技术交流。...在 Linux 系统的世界里,设备管理是一个重要的环节。而 udev 作为 Linux 用户空间的设备管理器,在其中扮演着关键角色。...今天,我们就来深入了解一下 udev 规则文件,看看它是如何工作的,以及我们该如何运用它来更好地管理设备。 一、udev 是什么 小伙伴们,你们知道在 Linux 系统里,设备是怎么被管理的吗?...三、udev 规则文件的位置 udev 规则文件通常存放在两个主要的目录下,不同的 Linux 发行版基本都遵循这个规范。...udev 规则文件为我们管理 Linux 设备提供了强大的灵活性,只要我们掌握了它的基本用法,就能够根据自己的需求自定义设备的管理方式,让 Linux 系统更好地为我们服务。
这一节接着上一节的openfiler配置,说如何利用udev来绑定路径 以下所有操作都需在两节点都操作 ---- 安装iSCSI (Initiator) Service 两节点相同 查看包有没安装 如果没有请安装...]# iscsiadm -m node -T iqn.openfiler:crs1 -p 10.65.204.219 --login[root@rac1 udev]# iscsiadm -m node...-p 10.65.204.219 --login[root@rac1 udev]# iscsiadm -m node -T iqn.openfiler:crs4 -p 10.65.204.219 --...login[root@rac1 udev]# iscsiadm -m node -T iqn.openfiler:crs5 -p 10.65.204.219 --login[root@rac1 udev.../sbin/start_udev 绑定完成后如图: ?
答: 在传统的Linux系统中 /dev目录下 的设备节点为一系列静态存在的文件, 而udev则动态提供了在系统中实际存在的设备节点, 虽然在Linux中是采用的devfs提供类似功能但是udev有更好使用的理由...而不会特别地区分设备文件、设备节点或者设备特殊文件; 2.devfs:devfs是 Linux 早期的设备管理工具,已经被 udev 取代。...从该文件系统中Linux 用户可以获取很多设备的属性可以帮助我们编写udev规则。...上文主要描述了Linux 用户能够了解到 udev 的工作原理和流程,灵活地运用 udev 规则文件,从而方便地管理 Linux 设备文件。.../writing_udev_rules.html udev规则:https://www.ibm.com/developerworks/cn/linux/l-cn-udev/index.html
_); ret = -1; goto err_udev_enumerate_new; } //printf("[%s +%d %s] usb_device_type_name...=%s\n", __FILE__, __LINE__, __func__, usb_device_type_name); // 设置枚举器过滤器为"block"子系统 if (0 !...= udev_enumerate_add_match_subsystem(enumerate, usb_device_type_name)) { printf("[%s +%d %s]...设备 struct udev_device *parent = udev_device_get_parent_with_subsystem_devtype(device, "usb",..."usb_device"); if (parent) { // 获取设备的类别信息 const char *devclass = udev_device_get_property_value
而现在用新 Linux 系统(比如 Ubuntu 20.04、CentOS 8),你会发现:U 盘不管插哪个 USB 口,都能识别为/dev/my_usb;串口权限改一次就永久生效 —— 这背后是udev...年随 Linux 2.4 内核登场,是内核空间的 “固定岗管家”。...udev(新管家):2006 年随 Linux 2.6.15 内核取代 devfs,是用户空间的 “灵活岗管家”。...附:udev 与 devfs 核心区别思维导图 udev vs devfs 核心区别 ├── 基本定位 │ ├── devfs:Linux 2.4内核,内核空间固定管家,解决手动管理0→1 │...└── udev:Linux 2.6+内核,用户空间灵活管家,实现定制化1→10 ├── 核心区别维度 │ ├── 运行空间:devfs(内核绑定,难扩展)vs udev(用户独立,灵活) │
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1....BUS/DEV/DRV 模型 "USB 接口"是逻辑上的 USB 设备,编写的 usb_driver 驱动程序,支持的是"USB 接口": USB 控制器或 Hub 识别出 USB 设备后,会创建、...注册 usb_device usb_device 被"drivers\usb\core\generic.c" 驱动认领后,会选择、设置某个配置 这个配置下面的接口,都会分配、设置、注册一个 usb_interface...左边的 usb_driver 和右边的 usb_interface 如果匹配,则调用 usb_driver.probe 2....接口函数 在 USB 设备驱动程序中,能使用的 USB 函数都在这个头文件里:include\linux\usb.h。
从那以后的岁月里,Linux 的识别设备库随着该过程的复杂化而与日俱增,而 udev 就是解决这个问题的希望之星。udev 负责监听 Linux 内核发出的改变设备状态的事件。...它可能是一个新 USB 设备被插入或拔出,也可能是一个无线鼠标因浸入洒出的咖啡中而脱机。 udev 负责处理所有的状态变更,比如指定访问设备使用的名称和权限。这些更改的记录可以通过 dmesg 获取。...在这个过程中,我会探索剖析 udev 的配置文件,然后展示如何更改 udev 的设置,包括编辑系统命名设备的方式。这篇文件基于我的新课程中《Linux 系统优化》的一个模块。...这是从我的工作站摘出的一条规则: $ cat /lib/udev/rules.d/73-usb-net-by-mac.rules # Use MAC based names for network interfaces...注意,这个规则专为基于 USB 的网络接口设计的。和 PCI 网络接口卡(NIC)不同,USB 设备很可能时不时地被移除或者替换,这意味着无法保证它们的 ID 不变。
gadget 功能前关闭 adb 功能时却报异常的解决办法 4 附录 4.1 Linux-4.x/Linux-5.4 Gadget 配置示例 4.1.1 小机做 mass storage 4.1.2...1.3 适用范围 表 1-1: 适用产品列表 内核版本 驱动文件 Linux-4.9 drivers/usb/* Linux-5.4 drivers/usb/* 2 模块介绍 2.1 模块功能介绍...USB 总线采用树形结构,在一条总线上只能有唯一的主机设备。Linux 内核从主机和设备两个角度观察 USB 总线结构。...Linux 有原生 gadget 框架,通用的配置流程可参考下文。...图 2-11: linux-4.x usb gadget 配置选择 2.6.2 linux-4.x/linux-5.4 USB Gadget 配置流程 Linux-4.x/Linux-5.4 使用 configfs
---- 相信有些同学在带电脑外出的过程中可能遇到一个场景:小乌鸦在咖啡厅用着笔记本电脑,忽然劫匪冲了进来,趁小乌鸦喝水的时候,抢走了他的装有linux系统的电脑,而此时你已经登陆进系统了,甚至连入公司...一个$ 7 USB磁分离适配器插到电脑的USB-A端口 ? 最后,一根3美元的1米长USB延长线将它们连接起来 ? 由于许多笔记本电脑不再具有USB-A端口了(苹果)。...软件 在这里,我们首先介绍一下udev规则 udev是Linux(linux2.6内核之后)默认的设备管理工具。...因此,要达成视频的效果, 我们需要向添加新的udev规则文件/etc/udev/rules.d/。...要获得这些,请按照以下步骤 步骤1:插入USB驱动器 步骤2:运行udevadm monitor --environment --udev 步骤3:卸下USB驱动器 检查udevadm命令的输出。
udev rules Unit Sections What is udev? ...Write a Custom udev Rule for iSCSI Storage What is udev 在早起的unix/linux设备中,存入/dev/下面的设备文件已经成为一组静态文件...使用udev有什么好处: 动态管理:udev的守护进程监听来自内核的uevent(device event),在进行添加/删除device的操作时,udev也通过接收到的uevent来判断删除...udev是如何实现的: ?...2. kernel将发送uevent给udev 3. udev接收到uevent之后,查找/etc/udev/rules.d/下面的规则文件,查找到所匹配的规则,然后根据规则创建一个新的device node
所以sd与mmc 的驱动通用,于是Linux 就把设备节点名称延续下来了。...14.2 自动挂载U盘 14.2.1 udev规则 udev是Linux(linux2.6内核之后)默认的设备管理工具。...vim /etc/udev/rules.d/11-add-usb.rules 在11-add-usb.rules中添加如下内容: ACTION!...chmod +x /etc/mount-usb.sh ③在/etc/udev/rules.d目录下添加用于检测U盘移出规则(remove),终端下执行以下命令创建第U盘移出规则。...vim /etc/udev/rules.d/11-remove-usb.rules 在11-remove-usb.rules中添加如下内容: ACTION!
而Mac和Linux下要方便得多,你几乎不需要操作便可以轻松通过USB连上手机,进行开发调试。...参看http://developer.android.com/tools/device.html#VendorIds 首先通过文档找到USB Vendor IDs,文档中没有的话可以在Mac上连接USB...Mac OSX下的配置: 1.创建或修改文件: /Users//.android/adb_usb.ini 添加USB Vendor IDs: 0x0421 注意:在Finder中隐藏文件默认不显示的...$ adb devices Linux 下的配置: 1.创建或修改文件:/etc/udev/rules.d/51-android.rules, $ sudo vi /etc/udev/rules.d/51...3.重启 udev 服务: $ sudo service udev restart 4.进入/tools 运行命令: $ sudo .
示例:检查驱动是否已安装:lsmod | grep usb 如果未安装相关驱动,可以尝试安装:sudo apt-get update sudo apt-get install linux-firmware2.2...install linux-generic2.3 USB 设备权限问题问题:USB 设备权限设置不正确,导致用户无法访问。...示例:调整文件权限:sudo chmod a+rw /dev/sdb示例:使用 udev 规则设置权限: 编辑 /etc/udev/rules.d/99-usb.rules 文件,添加以下行:SUBSYSTEM...udev 2.4 USB 设备固件问题问题:USB 设备固件版本过低,导致设备无法正常工作。...3.1 使用 lsblk安装 lsblk:sudo apt-get install util-linux使用 lsblk 查看 USB 设备:lsblk3.2 使用 fdisk安装 fdisk:sudo
一、UDEV是什么?...Udev是一个针对Linux内核2.6的可提供自动创建的设备节点和命名的解决方法的一个文件系统;其实与/etc/目录下的fstab文件类似 二、Udev如何获取内核这些模块的变化信息?...新的Linux内核使用udev代替了hotplug作为热拔插管理,虽然有udevd管理热拔插,但有时候我们还是需要在应用程序中检测热拔插事件以便快速地处理,比如在读写SD卡的时候拔下SD卡,那么需要立即检测出该情况...Netlink是面向数据包的服务,为内核与用户层搭建了一个高速通道,是udev实现的基础。...devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1 SUBSYSTEM=usb MAJOR=189 MINOR=8 DEVNAME=bus/usb/001/009
udev 和mdev 是两个使用uevent 机制处理热插拔问题的用户空间程序,两者的实现机理不同。...udev 是基于netlink 机制的,它在系统启动时运行了一个deamon 程序udevd,通过监听内核发送的uevent 来执行相应的热拔插动作,包括创建/删除设备节点,加载/卸载驱动模块等等。...3. udev 使用的netlink 机制在有大量uevent 的场合效率高,适合用在PC 机上;而mdev 使用的uevent_helper 机制实现简单,适合用在嵌入式系统中。...在mdev和udev共存的系统中,需要建立规则,避免mdev和udev重复执行。
例如,USB存储设备使用它进行通信。关于SATA硬盘的情况稍微复杂一些,但Linux内核在与其通信时仍然使用SCSI命令。...在现代Linux系统中,您不需要自己创建设备文件;这是通过devtmpfs和udev完成的(参见3.5 udev)。然而,了解一下以前是如何完成的,而且在极少数情况下,您可能需要创建一个命名管道。...Linux内核可以在检测到系统上有新设备时(例如,当有人插入USB闪存驱动器时),向用户空间进程(称为udevd)发送通知。.../host15 (scsi_host) UDEV [658299.622579] add /devices/pci0000:00/0000:00:1d.0/usb2/2- 1/2-1.2 (usb) UDEV...[658299.623014] add /devices/pci0000:00/0000:00:1d.0/usb2/2- 1/2-1.2/2-1.2:1.0 (usb) UDEV [658299.623673