如果你使用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
udev介绍 来源:https://linux.cn/article-10329-1.html 创建这样一个脚本,当指定的设备插入时触发你的计算机去做一个指定动作。...udev 是一个为你的计算机提供设备事件的 Linux 子系统。...usb设备新增的时候,执行定义的脚本文件。...首先开始配置规则 udev规则文件 010.rules,放置在/etc/udev/rules.d 目录下 ###########---USB---################ #----------.../zhiyuan_udev.sh usb %k" KERNEL=="sd[a-z]*", SUBSYSTEM=="block", ACTION=="remove", RUN+="/etc/udev/rules.d
一系列相互独立的端点在一起构成了USB逻辑设备,在系统结构中,位于下方红色方框内: 二、端点的分类 每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机主要依靠这个设备地址对...USB设备进行访问。...五、端点与管道 1、管道的概念 管道是主机软件(数据缓存区),和USB设备各各端点之间的数据传输连接,他是两者之间通信流的抽象(实际上数据传输是USB总线接口完成)。...1)、“流”指不具有USB定义格式的数据流,流通道中的数据是流的形式,也就是该数据内容不具有USB要求的结构。...2)、“消息”指具有某种USB定义格式的数据流。消息通道与端点的关系同流通道与端点的关系是不同的。
答: 在传统的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
这一节接着上一节的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 绑定完成后如图: ?
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 内核源码: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 不变。
devfs(设备文件系统)是由Linux2.4内核引入的,它的出现主要使得设备驱动程序能够自主管理自己的设备文件。...devfs与udev的另一个显著区别在于:采用devfs,当一个并不存在的/dev节点被打开的时候,devfs能自动加载对应的驱动,而udev则不能。...这是因为udev的设计者认为Linux应该在设备被发现的时候加载驱动模块,而不是当它被访问的时候。...使用udev的例子如下: #include linux/device.h> … static struct class * xxx_class; static int __init xxx_init...在以busybox为基础构建嵌入式linux的根文件系统时,使用它是最优的选择。
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
---- 相信有些同学在带电脑外出的过程中可能遇到一个场景:小乌鸦在咖啡厅用着笔记本电脑,忽然劫匪冲了进来,趁小乌鸦喝水的时候,抢走了他的装有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命令的输出。
例如,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
所以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 和mdev 是两个使用uevent 机制处理热插拔问题的用户空间程序,两者的实现机理不同。...udev 是基于netlink 机制的,它在系统启动时运行了一个deamon 程序udevd,通过监听内核发送的uevent 来执行相应的热拔插动作,包括创建/删除设备节点,加载/卸载驱动模块等等。...3. udev 使用的netlink 机制在有大量uevent 的场合效率高,适合用在PC 机上;而mdev 使用的uevent_helper 机制实现简单,适合用在嵌入式系统中。...在mdev和udev共存的系统中,需要建立规则,避免mdev和udev重复执行。
一、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
> #include linux/usb.h> #include linux/sched.h> #include linux/slab.h> #include linux/miscdevice.h...usb_dev->udev, usb_sndbulkpipe(tiny4412_usb_dev->udev,tiny4412_usb_dev->bulk_out_endpointAddr),...(tiny4412_usb_dev->udev, usb_rcvbulkpipe(tiny4412_usb_dev->udev,tiny4412_usb_dev->bulk_in_endpointAddr...(tiny4412_usb_dev->udev, usb_rcvbulkpipe(tiny4412_usb_dev->udev,0x88), tiny4412_usb_dev...(tiny4412_usb_dev->udev, usb_rcvbulkpipe(tiny4412_usb_dev->udev,tiny4412_usb_dev->bulk_in_endpointAddr
领取专属 10元无门槛券
手把手带您无忧上云