【问题标题】:How to detect USB storage in Qt?如何在 Qt 中检测 USB 存储?
【发布时间】:2016-06-01 08:00:13
【问题描述】:

目标:在我们的嵌入式Linux系统中,我们想用Qt来检测USB存储设备的插入,当USB存储设备插入或拔出时通知系统,那么我们可以挂载它的文件系统。稍后我们可以访问 USB 存储设备上的文件。

我搜了一下,好像有两种解决方案:libusb 和 dbus。但我仍然不知道如何使用它。谁有例子吗?

【问题讨论】:

  • USB笔应该是指针设备吧?你确定它是否安装正确?而且因为您使用的是 Linux,所以很可能使用 Xorg 访问特定的 USB 事件。我希望有人能提出一个很好的解决方案。
  • @Md.MinhazulHaque 这个问题不是指输入设备,而是指存储设备,在某些地方称为 USB 笔式驱动器。
  • "我搜了一下,似乎有两种解决方案:[...] dbus。" DBus 不是这个具体问题的解决方案,它是一个消息总线。您可能正在谈论通过 DBus(可能是 udisk)进行通信的某些服务。
  • @Kuba Ober 是的,只有存储设备。因为我们的用户会在里面放一些文件,PCB板上的QT程序应该访问这些文件。

标签: qt libusb


【解决方案1】:

auto-mount USB 存储的典型方式是通过udev。添加/安装设备时,udev 可以notify you。您也可以通过 dbus 与 udisks 交谈,以获得存储添加/删除的通知。

libusb 只是相关的,除非你想重新实现很多已经存在的代码,否则你不应该使用它。

【讨论】:

  • 你有这方面的示例代码吗?据我了解,它是通过 kernel->hotplug->udev->hal/udisks->dbus.
  • @James.Zhou 我发布的链接包含一些绕过 dbus 的示例 - 这应该足够了。我没有任何方便的 dbus 示例链接,但 google 应该是你的朋友。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
相关资源
最近更新 更多