libudevを使用して特定のデバイスを監視したいと考えています。具体的には、リムーバブルストレージ(USBハードドライブ、USBキー、SDカードなど)を監視したいと思います。libudev APIを使用すると、そのデバイスの親の「サブシステム」と「devtype」を知っているデバイスを見つけることができます。私は自分のコンピュータでデバイスを試してみましたが、udevadmを使ってすべてのストレージタイプに 'block' - > 'scsi'のデバイスサブシステムがあることがわかりましたが、devtypeにはこれらのデバイスがありません。どこかのリファレンスとして使うことができるdevtypeとサブシステムのリスト、またはdevtypeを調べるためのより良い方法がありますか?udevでデバイスを特定する方法
5
A
答えて
5
サブシステムの一覧はls /sys/class/
で取得できますが、デバイスの種類についてはわかりません。私はあなたがこれを得ることができると思います:
ls -l /sys/class/scsi_disk/
total 0
lrwxrwxrwx 1 root root 0 2011-12-07 21:20 0:0:0:0 -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0
cat /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/device/vendor
ATA
cat /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/device/model
ST9500325AS
デバイスディレクトリ内の他のファイルを試すことができます。
実際に私はあなたが必要だと思う:
cat /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/scsi_disk/0:0:0:0/device/type
0
cat /usr/include/scsi/scsi.h | grep TYPE_
#define TYPE_DISK 0x00
#define TYPE_TAPE 0x01
#define TYPE_PROCESSOR 0x03 /* HP scanners use this */
#define TYPE_WORM 0x04 /* Treated as ROM by our system */
#define TYPE_ROM 0x05
#define TYPE_SCANNER 0x06
#define TYPE_MOD 0x07 /* Magneto-optical disk -
#define TYPE_MEDIUM_CHANGER 0x08
#define TYPE_ENCLOSURE 0x0d /* Enclosure Services Device */
#define TYPE_NO_LUN 0x7f
+0
グローバルリファレンスはありませんか?あなたが与えた情報は本当に役に立ちますが、scsiのためだけです。私のカードリーダーはタイプブロック - > mmc ...などです。私はこのリンクを見つけましたが、より普遍的なものがあることを望んでいました:http://wiki.xfce.org/dev/thunar-volman-udev – Prismatic
+0
一貫した命名がないことを知っている。すべてのサブシステムは異なる方法で処理されます。しかし、あなたが見たいかもしれない/ lib/udev /にいくつかのヘルパープログラムがあります。 –
関連する問題
- 1. 起動デバイスを特定する方法
- 2. PyAudioで特定の入力デバイスを選択する方法
- 3. iPhone - デバイスのキャリアを特定する方法(AT&T、Verizonなど)
- 4. 特定のデバイスでiphoneがクラッシュする
- 5. udev:起動時にデバイスが接続されています
- 6. udevルールでパラメータを渡す
- 7. Androidには特定のデバイスを確認する方法がありますか?
- 8. IPアドレスを使用してAndroidのデバイスの場所を特定する方法
- 9. 特定のデバイスで心拍センサーの測定を開始する方法NO1 D5。 Androidを実行する4.4
- 10. udev gotoとラベル
- 11. usb detail from udev
- 12. 特定のジェンキンマスターのハングスレーブを特定する方法
- 13. 特定のオーディオサンプルを増幅する方法、特に特定の周波数を増幅する方法
- 14. Ubuntu Linux Udevのルール:Cで書かれたプログラムをudevルールで実行することは可能ですか?
- 15. ブラックベリーのブラウザを特定する方法
- 16. civicrm phpページを特定する方法
- 17. MINAのサーバーポートを特定する方法
- 18. 特定のコミットを「プルリクエストする」方法
- 19. iphoneまたはmacで金属で利用可能な計算デバイスを特定する方法
- 20. androidアニメーションで特定のフレームを設定する方法
- 21. nginx設定で特定のサブドメインserver_nameを除外する方法
- 22. Emacsで特定のプロジェクト(Projectile)のテーマを設定する方法
- 23. フレックスリストコントロールで特定の行の色を設定する方法
- 24. 特定のクエリを優先する方法は?特定の場面で
- 25. 特に特定のモジュールでgccフラグ(CXXFLAGS)を指定する方法は?
- 26. Structuremap - 特定のレイヤーで特定のタイプを登録する方法
- 27. 特定の部屋で撮影した写真を特定する方法
- 28. 特定のデバイス(既定のデバイスではない)によってデータを送信する方法はありますか?
- 29. Android EditTextは特定のデバイス、特にHTCで動作しない
- 30. AndroidでNFCデバイスをポーリングする方法
あなたはdevtypesおよびサブシステムのためのグローバル参照を見つけましたか? –