USBデバイス番号からUSBデバイス名を取得する方法

USBデバイス番号からUSBデバイス名を取得する方法

私の(複数の)USBドライブの1つがdmesgでこのエラーを報告します。

usb 5-1: device descriptor read/8, error -110

すべてのUSBデバイスの/dev/sdX名を見つける方法は?

逆の場合:デバイスの/ dev / sdX名が与えられたら、そのデバイスのUSB番号をどのように知ることができますか?

アップデート:ここにはたくさんの素晴らしい答えがありました。この情報はのような標準ツールで提供されたらいいのですが、lsusb残念ながらまだ提供されていません。 @sudodusの答えがすべてのドライブ名を取得する質問に最もよく答えているようで、報酬を選択しました。

答え:

よりきれいな出力を生成するには、少し長いこのコマンドをお勧めします。

find /sys/ -name dev -path '*usb*block*' | grep -v "sd../" | grep -Po "\/usb.*\/sd."

答え1

sysfsでこのデバイスを探す

# cd /sys/bus/usb/devices/5-1

割り当てられたすべてのブロックデバイスを探す

# find . -name dev -path '*block*'
./5-1:1/.../block/sdc/sdc2/dev
./5-1:1/.../block/sdc/dev
./5-1:1/.../block/sdc/sdc1/dev

答え2

タイトルに記載されている問題に対する良い回答は、あなたが報告したバグのために正確な問題を解決するのに役立たないようです。

usb 5-1: device descriptor read/8, error -110

カーネルが問題のUSBデバイスを正しく識別できないために発生する致命的なエラーです。したがって、適切なドライバを接続して/sysツリーを埋めることはできません。 /dev/sd*のエントリを見つけないでください。何もないでしょう!

USBエラー-110は「転送が完了する前にタイムアウトが経過しました。
しかし、キーボード、マウス、ウェブカメラなどの他のUSBデバイスは言うまでもなく、7つのUSBドライブが接続されたシステムを作成していることを考えると、最も可能性の高い原因です。これは、ホストコンピュータがデバイスに十分な電力を供給できないことです。

確認する最善の方法は、すべてのUSBデバイス(ドライブだけでなく、最終的に関連デバイスがドライブという情報を取得できなかったため)を切り離して順番に接続してメールを確認することです。
もちろん、実際に特別に要求の厳しいデバイスを購入しない限り、犯人は単一のデバイスではなく、すべてのデバイスのコレクションであることがわかります。

答え3

コンピュータでUSB大容量記憶装置(USBフラッシュドライブとUSB接続SSD)を使用していくつかのテストを実行した結果、出力は次のようになりました。

find /sys/ -name dev -path '*usb*block*'

/dev/sdXデバイスのUSB番号をデバイス名と一致させるのに役立ちます。


別の方法は、コマンドlsblkラインをlsusb一致させ、「モデル/製品」および「シリアル番号」タグで識別することです。

lsblk -do name,model,serial,hotplug|grep -e HOTPLUG$ -e 1$

sudo lsusb -v |grep -i -e '^BUS .* Device' -e product -e serial

関連情報