我正在开发一个实用程序,它可以在linux上自动挂载一个插入的U盘。我绑定了D-Bus来接收设备插入时的通知,这很好用。但是,我需要确定/dev中的哪个设备映射到插入的U盘。我得到了D-Bus通知,然后用pyUSB ( 0.4 )扫描USB系统。我过滤了USB_MASS_STORAGE_DEVICE类,我可以看到添加或删除的设备。我需要挂载这个设备,这样我就可以查询它的可用空间,并将其报告给我们的应用程序,这样我们就可以确定是否存在足够的可用空间,以便我们可以写入数据。
我使用python来完成这项任务。我不确定我们的目标发行版是什么,只知道它至少是2.6版
编辑:我的问题是:如何确定/dev中的哪个设备映射到我从pyUSB获得的总线设备号。
发布于 2009-12-18 06:16:14
你应该问问HAL这件事。你说你已经通过D-Bus收到了HAL的通知...它维护USB设备的列表,以及它们的It和设备名称(block.device
属性)。
这里有一个很好的例子来说明如何获得设备文件名和新的USB设备的通知:How can I listen for 'usb device inserted' events in Linux, in Python?
发布于 2009-12-18 05:23:09
为什么不使用"os"模块挂载文件系统:
os.system ("mount ... ")
或者,如果您想检查输出,请使用"popen":
l = op.popen ("mount ....").readlines()
发布于 2009-12-18 05:27:19
如果使用dmesg
输出来查找设备名称(sdc1等)呢?
在dbus告诉您USB中插入了某些东西后,立即使用它。例如,您可以使用tail dmesg
https://stackoverflow.com/questions/1924646
复制相似问题