问题标签 [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 投票
3 回答
1288 浏览

linux - 检测打开的文件/设备是否已被替换/删除

假设Linux下的情况如下:

一个进程不断地从 USB 串行转换器设备中读取数据 ( /dev/ttyUSB0)。该设备突然被拔掉并再次插入(或由于某种原因正在自行重置)。该进程继续拥有有效的文件句柄,/dev/ttyUSB0但不会从设备接收任何数据,除非该进程重新打开设备(因为udev已删除并重新创建了设备节点)。

是否有直接的方法来检测这种情况(即,不是通过检测数据流中的超时来间接检测),以便进程知道它必须重新打开设备?/dev/ttyUSB0监控using的修改时间是否可靠stat()

额外细节:

该过程使用标准open()函数打开设备文件。

/dev是由tmpfs控制的udev

注意:不想为此使用任何udev规则,而是更喜欢直接在流程中实现的解决方案。

0 投票
2 回答
2267 浏览

python - how to get uuid of a device using udev

I want get the mount node of an usb mass-storage device, like /media/its-uuid in pyudev, class Device has some general attributes, but not uuid or mount node.

how to do it

thanks help

0 投票
2 回答
2548 浏览

c - 如何检测或测试用于 USB 闪存驱动器插入的 unix/linux 开发节点创建

我在 linux 系统上用 C 语言编写代码。我想插入一个 USB 闪存驱动器,让 udev 创建 dev 节点(例如在 /dev/sdc 和 /dev/sdc1),并且只有在 /dev/sdc 出现时才执行操作。我一直在做的是将其视为我的 C 应用程序中的等待循环,等待 udev 守护进程创建一个 dev 节点。类似于以下内容:

我的第一个问题是,什么 C 库函数可以在我的 if() 测试中返回“/dev/sdc 存在”的值。我的第二个问题是,我只是错误地处理了这个问题吗?我应该使用 udev 监视器结构直接从 udev 检测到这一点吗?

0 投票
2 回答
4132 浏览

python - 在 Linux 中收到有关“以太网电缆已插入”事件的通知

我正在编写一个在 linux 上运行的 Python 应用程序。如果插入/拔出网线,我希望能够注册并得到系统通知

我已经在使用pyUdev(libUdev 的 python 绑定)来获得 USB 插入事件的通知。但是,由于网络 eth0 模块(例如)始终保持加载状态(无论插入的电缆如何),我没有得到我需要的信息。它仅适用于 if up/down 事件。

我已经阅读了很多关于提供此功能的 Windows WMI 的帖子,但在 linux 上没有。我在寻找正确的方向吗?

执行此操作的 python 方式(python 库)将是理想的,因为我想将其与我的程序集成。

0 投票
3 回答
3816 浏览

linux - udev:启动时连接的设备

我正在使用 udev 检测我的 Ubuntu 10.04 LTS x64 服务器上的 USB 驱动器连接和断开连接。当机器运行时连接 USB 设备时,一切正常,但如果在启动时已经存在,我的脚本没有完成,显然是因为mkdir /tmp/blah不起作用。

如果我随后sudo udevadm trigger在终端输入,一切都很好。

我假设在 udev 首先根据其规则评估连接的设备时,尚未安装根文件系统。

因此,我的问题是:

  1. 我是否正确识别了问题?
  2. 是否有解决它的标准方法 - 即是否有替代方法/tmp/可以在安装之前和之后使用/
0 投票
1 回答
5624 浏览

c - 需要libudev建议

我正在着手进行一个编程项目,该项目需要确认可移动媒体(例如 USB 拇指驱动器)的设备身份,然后才能继续执行其他一些很酷的事情。

我的一些朋友建议我使用序列号,并且使用 udevadm 命令进行的初步测试表明这应该可以工作。我做了一些额外的检查,看来如果我能让软件与 libudev 一起工作,那么它应该(最少)在 ubuntu、slackware 和 gentoo 上编译,这将是一个非常好的好处。

所以我用 bing 找到了一个教程,并得到了 Signal 11 网站 (http://www.signal11.us/oss/udev/),这是一个写得很好的教程。它实际上似乎拥有我需要的一切。我下载代码。修复几个特定于平台的错误,然后编译。繁荣!Gcc 编译没有错误。到目前为止,一切都很好。

但是当我尝试运行它时,它引发了一些错误,我意识到我需要阅读更多的教程,以便我能够很好地理解 libudev 以修复错误并生成工作软件。问题是真的没有任何其他教程(我能找到),并且作为库文档的(唯一已知的?)站点的 kernel.org 站点在最近的服务器受损后关闭。

我考虑过只向 system() 发出 udevadm 指令,然后解析结果,但这是将软件组合在一起的一种非常糟糕的方式,我计划在完成编写后将其发布给社区。

那么如何最好地学习libudev?

0 投票
9 回答
5571 浏览

android - 一段时间后,adb 停止检测我的手机

我正在linux机器上为android开发,我已经udev为android创建了一个规则并且它可以工作。一段时间后,如果我拔下设备并重新插入,如果我运行或获取有关设备的信息,adb则无法识别设备。我尝试重新加载规则但它不起作用,我什至试图终止该进程但它仍然不起作用。lusbdmesgudevadb

有人可以帮忙吗?无论如何,谢谢你。

0 投票
1 回答
164 浏览

embedded - 嵌入式 linux 文件名长度

我正在使用arm开发平台。在那里我安装了udev,它运行完美。但是,当我安装笔式驱动器并查看文件内容时,所有名称超过 8 个字符的文件和文件夹都已替换为“~”字符。eg: myfilename.mp3 替换为 myfile~e.mp3

在 udev 安装之前,它运行良好。(所有文件名都正常显示)。我应该怎么办?

谢谢你。

0 投票
1 回答
128 浏览

embedded - udev 笔式驱动器文件名长度

我在使用 udev 安装笔式驱动器时遇到问题。我在一个arm开发平台上工作并成功安装了udev。我的 udev 规则如下。BUS=="usb", ID=="1-1", KERNEL=="sd?1", NAME="pen1" 我在这里想要的是每当笔安装到端口“1”时分配节点“pen1” -1”。udev 工作正常,但是当我使用“mount /dev/pen1 /mnt”挂载并访问内容时,文件名似乎已损坏并且仅显示 8 位。eg: myfilename.mp3 替换为 myfile~e.mp3

我该怎么办?

0 投票
2 回答
3485 浏览

linux - Linux USB设备路径是什么意思?(需要区分USB-Serial转换器)

我有几个 USB 串行转换器 (Prolific) 连接到 USB 集线器。我找不到任何udev 信息可以让我根据它们所连接的物理端口来区分这些转换器。

我希望设备路径可以给我这些信息......

/devices/pci0000:00/0000:00:0f.5/usb1/1-3/1-3.1/1-3.1:1.0/ttyUSB0

...但我找不到任何解释数字含义的文档(希望其中一个准确标识物理端口)。有人可以解释这些数字并告诉我它们是否允许我清楚地识别物理端口吗?