2

我正在开发一个实用程序,该实用程序将在 linux 上自动安装插入的 USB 记忆棒。我已经绑定到 D-Bus 以接收有关何时插入设备的通知,并且效果很好。但是,我需要确定 /dev 中的哪个设备映射到插入的 USB 记忆棒。我收到 D-Bus 通知,然后使用 pyUSB ( 0.4 ) 扫描 USB 系统。我过滤了 USB_MASS_STORAGE_DEVICE 类,我可以看到已添加或删除的设备。我需要安装此设备,以便查询它的可用空间并将其报告给我们的应用程序,以便我们确定是否存在足够的可用空间,以便我们可以写入数据。

我正在使用 python 来完成这项任务。我不确定我们的目标发行版是什么,只是它至少是 2.6

编辑:我的问题是:如何确定 /dev 中的哪个设备映射到我从 pyUSB 获得的总线设备号。

4

3 回答 3

2

您可能应该就此向 HAL 询问。您说您已经通过 D-Bus 从 HAL 收到通知...它维护 USB 设备列表,以及它们的 ID 和设备名称(block.device属性)。

这是一个很好的示例,说明如何获取设备文件名以及新 USB 设备的通知:如何在 Python 中侦听 Linux 中的“插入 USB 设备”事件?

于 2009-12-17T22:16:14.280 回答
0

为什么不使用“os”模块挂载文件系统:

os.system ("mount ... ")

或者,如果您想检查输出,请使用“popen”:

l = op.popen ("mount ....").readlines()
于 2009-12-17T21:23:08.810 回答
0

如何使用dmesg输出找出设备名称(sdc1 等...)

在 dbus 告诉您某些内容已插入 USB 后立即使用它。你可以做tail dmesg例如

于 2009-12-17T21:27:19.067 回答