Linux USB映射问题
我正在开发一个工具,可以在Linux系统上自动挂载插入的USB闪存盘。我已经连接到了D-Bus,这样可以接收到设备插入的通知,这个功能运行得很好。不过,我需要找出在/dev目录下哪个设备对应于插入的USB闪存盘。我收到了D-Bus的通知,然后用pyUSB(版本0.4)扫描USB系统。我过滤出USB大容量存储设备的类别,这样就能看到哪些设备被添加或移除了。接下来,我需要挂载这个设备,以便查询它的可用空间,并将这个信息报告给我们的应用程序,这样我们就能判断是否有足够的空闲空间来存储我们的数据。
我正在用Python来完成这个任务。目前还不确定我们的目标操作系统是什么,只知道至少是2.6版本。
补充:我的问题是:我该如何确定在/dev目录下哪个设备对应于我从pyUSB获取的总线设备编号。
3 个回答
0
可以用 dmesg
的输出结果来查找设备名称(比如 sdc1 之类的)
在 dbus 告诉你有东西插入 USB 之后,立刻使用这个命令。你可以举个例子,使用 tail dmesg
来查看最新的信息。
0
为什么不使用"os"模块来挂载文件系统:
os.system ("mount ... ")
或者如果你想查看输出,可以使用"popen":
l = op.popen ("mount ....").readlines()
2
你可能应该问问HAL这个问题。你说你已经通过D-Bus收到了HAL的通知……它会维护一个USB设备的列表,包括它们的ID和设备名称(block.device
属性)。
这里有个很好的例子,教你如何在收到新USB设备通知时获取设备文件名:如何在Linux中用Python监听“USB设备插入”事件?