【问题标题】:usb connection event on linux without udev or libusb没有 udev 或 libusb 的 Linux 上的 USB 连接事件
【发布时间】:2014-04-05 03:39:33
【问题描述】:

我需要找到一种方法来检测 USB 设备何时插入旧嵌入式 Linux (CentOs 4) 上的 C。

libudevlibusb 不可用,所以我对这里的选择有点茫然。有dbus,但是我不能使用udisks,因为我需要检测的设备不是存储设备。

谢谢。

【问题讨论】:

    标签: c linux centos usb


    【解决方案1】:

    您可以尝试编写自定义脚本并将其注册到/proc/sys/kernel/hotplug。当 uevent 发生时,内核将调用您的脚本并将子系统(在您的情况下为 usb)作为参数传递。然后你必须匹配设备(我不知道该怎么做,这可能是最棘手的部分)。

    与 USB 子系统匹配的自定义热插拔脚本的骨架:

    $ 猫 my_hotplug.sh #!/bin/sh [“$1”=usb]||出口 0 echo "在这里做点什么"

    将您的热插拔脚本注册为 uevent 助手:

    echo /path/to/my_hotplug.sh > /proc/sys/kernel/hotplug

    【讨论】:

    • "man hotplug" 显示了很多添加信息:在变量 $ACTION 中添加 ||删除,$PRODUCT 以十六进制显示类型,$DEVPATH 显示设备
    猜你喜欢
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2014-09-02
    • 1970-01-01
    • 2014-09-03
    • 2021-05-07
    相关资源
    最近更新 更多