- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我需要检测嵌入式系统上的 USB 串行设备何时插入或拔出,并知道 tty
是什么与之相关。
我的系统运行在 2.6 Linux 内核上。
因为我没有 udev
的写入权限规则,现在我试图从文件系统中获取此信息,在 /sys/bus/usb/devices
中查找修改目录。但是,我在使用这种方法时遇到了一些问题。
我知道 Id BUS
是什么连接的 USB 端口(例如 1-1.3)。所以,我搜索相关的 tty
(在 /sys/bus/usb/devices/<Id BUS>:1.0/tty/
中寻找目录 - 例如 /sys/bus/usb/devices/1-1.3:1.0/tty/ttyACM0
)。这样我就知道我应该使用 /dev/ttyACM0
与我的设备通信。但是,有时,此设备 ( /dev/ttyACM0
) 不存在。
有没有更好的方法来获取这些信息?
我什至想尝试从系统日志中获取此信息,但我不知道这是否是个好主意。
编辑:
只是澄清一下,我的系统需要能够检测 USB 总线中的状态变化,即检测何时插入新设备(并获取与其关联的 tty
名称)或拔下现有设备。
系统正在监控 N
USB/串行设备,使用 USB HUB 插入。在其正常执行期间,可以插入新设备,可以删除现有设备(或通过远程命令重新启动 - 超出此范围)。当设备重新启动时,它可能会收到不同的 tty
来自之前使用的前一个(例如 ttyACM0
-> ttyACM3
),因为内核指定给它一个 tty
目前是免费的,这对我来说是个大问题。
最佳答案
Netlink是内核和用户空间之间通信的首选机制。
您将创建一个带有 NETLINK_KOBJECT_UEVENT
系列的 Netlink 套接字,监听该套接字并过滤掉包含 SUBSYSTEM=usb
和 ACTION=add
的消息> 用于 USB 插入事件或 ACTION=remove
用于 USB 拔出事件。
关于linux - C++检测USB串口设备插入/拔出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44010480/
如何使用Delphi检查麦克风是否插入/拔出? 最佳答案 function WaveInDevicePresent: boolean; begin result := waveInGetNumDe
DirectShow 是否有一种简单的方法来检测网络摄像头是否已插入 (USB),或者是否有人拔掉了它(然后轮询或搜索它)? 我看过 Microsoft Media Foundation 的代码,但它
我有一个与我的 linux 盒子配对的蓝牙 Remote ,当激活时,这个 Remote 在 /dev/input/event13 可见。 我有一个小的 C 程序,可以打开这个设备并直接从中读取,运行
我正在使用官方 Kinect SDK 1.5 示例之一,我正在尝试了解如何添加检查以检测 Kinect 何时断开连接。目前,该应用程序只会卡住,因此必须有一种方法来防止这种情况发生。 这是来自 SDK
我需要检测嵌入式系统上的 USB 串行设备何时插入或拔出,并知道 tty 是什么与之相关。 我的系统运行在 2.6 Linux 内核上。 因为我没有 udev 的写入权限规则,现在我试图从文件系统
我是安卓新手。如果插入或拔出充电器,我想更改 Activity 中 TextView 的文本。为此,我已经在 list 中注册了一个带有 Intent 的接收器 android.intent.acti
我正在开发一个在线乐谱阅读训练器,a prototype is available here .我能够实现对以前连接的 MIDI 键盘的访问,但是,我正在努力实现热插拔方案。 我最后一次拍摄是这样的:
我的最终目标是创建一个在启动时运行的脚本,该脚本在插入以太网电缆时关闭 wifi,反之亦然。这是我到目前为止创建的脚本: #!/bin/bash File=/sys/class/net/eth0/ca
我是一名优秀的程序员,十分优秀!