2

Linuxに挿入されたUSBスティックを自動マウントするユーティリティに取り組んでいます。デバイスが挿入されたときに通知を受け取るために D-Bus に接続しましたが、うまく機能しています。ただし、挿入された USB スティックにマップされている /dev 内のデバイスを特定する必要があります。D-Bus 通知を受け取り、USB システムを pyUSB ( 0.4 ) でスキャンしています。USB_MASS_STORAGE_DEVICE クラスをフィルター処理すると、追加または削除されたデバイスが表示されます。このデバイスをマウントして、使用可能なスペースをクエリし、それをアプリにレポートして、データを書き込むのに十分な空きスペースがあるかどうかを判断できるようにする必要があります。

このタスクには python を使用しています。ターゲット ディストリビューションがどうなるかはわかりませんが、少なくとも 2.6 になるということだけです。

編集: 私の質問は: /dev のどのデバイスが pyUSB から取得した buss-device 番号にマップされているかを判断するにはどうすればよいですか。

4

3 に答える 3

2

そのあたりはHALに聞いてみてください。あなたはすでに D-Bus によって HAL から通知を受け取っていると言っています...それは、ID とデバイス名 (block.deviceプロパティ) と共に、USB デバイスのリストを維持します。

新しい 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 に答える