问题标签 [udev]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1944 浏览

linux - Bash 脚本不会等到命令被正确执行

我正在编写一个非常简单的脚本,但由于某种原因,它的某些部分似乎是异步运行的。

正如您在调用 sleep 之前看到的那样,脚本只完成了部分工作。如何让我的脚本等到 parted 成功完成其工作?

0 投票
0 回答
191 浏览

c# - Mono 应用程序永远不会终止

我编写了一个在 Mono 上运行并被 udev 规则调用的应用程序。

该应用程序在控制台上运行良好。此外,它在 udevAPP+=节中运行良好。然而,在我组装的一个新的 Gentoo 系统上,程序从一个PROGRAM=节调用时永远不会终止。在我也有的 Ubuntu 系统上,从PROGRAM=stanza 调用它可以正常工作。两个系统共享相同版本的 Mono。

PROGRAM=此外,从两个系统上调用其他程序(非 Mono)都可以正常工作;这绝对是 Mono 和调用环境的问题。

我用过 gdb,似乎程序在等待信号量时卡住了。控制台输出已确认这发生在 C# 代码结束之后——它似乎在垃圾收集器中。这是gdb的截图:

在此处输入图像描述

我会报告一个错误,但我还不知道这是否是环境问题;毕竟,它在 Ubuntu 上运行良好。

任何帮助将不胜感激。

0 投票
0 回答
1839 浏览

linux - 创建和删除设备节点时的 mdev 竞速

最近,我习惯于mdev更换udev. 相比udevdmdev确实节省了很多内存使用。配置如下:

  • 在 中/etc/mdev.conf,如果设备与 匹配,则“在创建设备之后和删除设备之前”都将调用sd[a-z][0-9]该脚本usbmount_wrapper

    sd[az][0-9] 0:0 660 */usbmount_wrapper

  • usbmount_wrapper,我们称之为usbmountdebian的实用程序。

此配置适用于热插拔事件(/dev创建下的节点并在插入的设备上正确安装分区,卸载分区并在拔下设备时删除设备节点)。

当我们尝试使用工具格式化磁盘时出现问题fdisk。通过转储 hotplug 事件,事件顺序是:删除所有旧分区 -> 添加所有新创建的分区。如果我们执行ls /dev/sd*after fdisk,我们可以看到这些新分区的新设备节点,几秒钟后,这些分区被删除。我们可以得出结论 中存在竞争条件mdev,设备节点是先创建后删除,这与热插拔事件的顺序相反。我也尝试创建/dev/mdev.seq,但它不能解决问题。mdev版本来自busybox 1.17

如果有人尝试过mdev并遇到同样的问题,请提供一些建议。提前感谢您的帮助和感谢。

0 投票
1 回答
12703 浏览

linux - Linux:如何为设备分配 USB 驱动程序

这个问题有两个方面:

1-您如何手动从 USB 设备上分离驱动程序并连接另一个驱动程序?例如,我有一个设备在连接时会自动使用 usb-storage 驱动程序。

// usbview 输出

我不想使用 usb-storage 驱动程序,所以我在主机上运行了一个应用程序,我使用 libusb 库来分离 usb-storage 驱动程序,然后我声明了接口。然后,我可以在我的 USB 设备和我的主机 Linux 系统上运行的应用程序之间发送数据。

如何在应用程序之外手动分离驱动程序?

2-如何自动分配驱动程序以附加到设备插件上。我目前有一个 udev 规则设置来自动设置设备权限。

我可以使用 udev 规则将驱动程序分配给 USB 设备上的特定接口吗?例如,如果我希望在接口 0 上自动使用 usbnet 模块而不是 usb-storage,这在 udev 中是否可行?

谢谢,

(我有点困惑 StackExchange 如何与不同的站点一起工作,或者它们是否都相同。这是一个 Linux 问题,因此它也发布在 Unix 和 Linux 上。如果不应该在这里发布,请原谅我,但 StackOverflow 也处理 Linux,所以......)

0 投票
2 回答
782 浏览

c++ - libudev 奇怪的行为 v1.7.2 起

我正面临与libudev 的某个问题。我写了一个监听线程,不断监听通过 USB 连接的设备。我在连续的while循环开始时使用了libudev API udev_monitor_receive_device,因为它是一个阻塞调用。源代码在 libudev v1.6.3 上运行良好,但是当升级到 v1.7.2 时,对 udev_monitor_receive_device 的调用不再阻塞,while 循环继续运行,api 继续返回 NULL。下面是代码的一部分,可以帮助您了解我的代码中的libudev用法。

这个问题困扰我很久了。任何帮助,将不胜感激。

0 投票
1 回答
8756 浏览

linux - 如何使用 udev 识别设备

我想使用 libudev 来监视某些设备。具体来说,我想监控可移动存储:USB 硬盘驱动器、USB 密钥、SD 卡等。如果您知道设备的父设备的“子系统”和“开发类型”,libudev API 可以让您找到该设备。我在我的计算机上尝试了这些设备并使用 udevadm 发现所有存储类型的设备子系统都为“block”->“scsi”,但我不知道这些设备有什么 devtype。是否有可以在某处用作参考的 devtypes 和子系统列表,或者是查找 devtype 的更好方法?

0 投票
2 回答
2878 浏览

c++ - 使用 libudev 在 Linux 中获取有关已安装驱动器的信息

我使用 libudev 来监控存储设备(usb 密钥等),以便在修改它们时在我的程序中收到通知。Libudev 告诉您设备是否已添加、删除等,并为您提供设备节点。例如,如果我在系统中添加 SD 卡,libudev 会告诉我添加了“/dev/mmcblk0p1”。发生这种情况时,我也想获取设备的挂载点。所以我检查 /proc/mounts 以查看设备已映射到的安装路径。

虽然这似乎工作正常,但我不确定 libudev 是否​​在安装设备之前、安装设备之后或介于两者之间的某个位置向我发送了设备已添加的信号(这意味着我检查 /proc/在我收到信号后立即挂载文件是一种不可靠的方法)。

所以我的问题是,有谁知道 libudev 何时发送信号,以及我用来获取设备安装路径的方法是否可靠?

如果不是,在给定可靠的设备节点的情况下,是否有另一种方法可以获取挂载路径?

问候,

棱镜

0 投票
1 回答
1550 浏览

bash - 使用 udevadm 在 bash 中读取 USB 串行代码

我正在尝试使用 udevadm 命令读取 bash 中的 usb 唯一 ID。使用的命令是:

使用常规 USB 存储时输出正确,

但是当我使用 mp3 播放器时,输出有点奇怪,例如:

除了 ID_SERIAL_SHORT 之外,USB 存储是否有一些独特的东西?

谢谢

0 投票
0 回答
2510 浏览

android - 如何在安卓上使用libudev

作为底层监控应用程序的一部分,需要监控 sysfs 中的一些变化,我应该使用 udev 接口而不是 inotify。很明显,大多数 android 设备,以及我真正需要在其上运行此应用程序的所有设备,都在使用 udev 来枚举设备和应用策略。从 C 应用程序与 udev 交互的标准方法是使用 libudev (libudev.h),但 /lib 目录中没有 libudev.so,根本没有包含目录。所以我需要得到这个库的 ARM 端口或者在这里做一些解决方法。请帮我解决这个问题,因为我不擅长交叉编译和 libudev 特定问题。

注意:我在所有设备上都具有 root 访问权限,我将在这些设备上运行此应用程序。

0 投票
2 回答
673 浏览

linux - 插入 USB 设备时从用户那里获取输入

当使用 udev 规则(RUN 命令)插入 USB 设备并使用 notify-send 显示通知时,我正在运行脚本。

我希望它提示用户向 USB 输入一些输入。我该怎么做?