「udevadm monitor --kernel --property」でUSBデバイスが接続されていることがわかりません。

「udevadm monitor --kernel --property」でUSBデバイスが接続されていることがわかりません。

USBハードドライブがあります。 xhci_hcdバスに接続すると通常それはリストされていませんlsusb。これにより、udevadm monitor --kernel --propertyデバイスが接続されていることを示す表示は表示されません。

結合または単独でデバイスを表示するために最終的に成功する2つのことがあります。

  • カバーを閉じます(したがってシステムを一時停止状態にします)。
  • USBバスからUSBドライバをバインド解除し、再バインドします。

_

echo -n 0000:19:00.0 > /sys/bus/pci/drivers/xhci_hcd/unbind
echo -n 0000:19:00.0 > /sys/bus/pci/drivers/xhci_hcd/bind

検出がどのように機能するか、つまりどのレイヤーなのか、つまりここでは「失敗」なのか、なぜ

私が知っている限り:

  1. デバイスとホスト間の通信の最初のステップは、デバイスが電気ループに抵抗器を挿入することです。これにより、ホスト(またはハブ?)がデバイスの物理的(電気的)存在を認識します。そうですか?ハードウェア(ハブ/バス?)はこの電気イベントをバスドライバに信号を送信しますか?udevadm monitor --kernel --propertyこのアクティビティを表示する必要がありますか?そうでない場合は、ホスト側でこのイベントを表示できる他のものがありますか?

  2. 次はどうなりますか?これはで表示されるべきですかudevadm

  3. USBスタックの「トランスポート層」が引き継がれ、ホストはベンダーと製品IDを要求するUSB​​制御パケットをデバイスに送信します。この仕事を担当する人は誰ですか?これはすでにこれを行うバスドライバソフトウェアですか、それともまだ「ハードウェア」(ソフトウェアなど)にありますか?存在するラップトップUSBハブ/バス)?これはで表示されるべきですかudevadm

  4. ホストはデバイスの応答を受信し、デバイスにどのVID / PIDがあるかを知っています。これは、必ずlsusb現在のデバイスが表示されることを意味しますか?

インターネットを検索しましたが、「USBでデバイス(機能)検出が機能する方法」の文書が見つかりませんでした。まだ670ページを超えるUSB仕様を読んでいません。誰でも教えてもらえますか?

  • 上記の手順のうち、ハードウェア(ハブと内部ソフトウェア)によって実行される手順は何ですか?
  • ドライバはいつ通知(イベント、割り込み、ポーリングなど)を受け取りますか?
  • (USBバスドライバにデバッグステートメントを追加せずに)プロセスの初期に何が起こっているのかを知らせる(より良いですか?より専門的な?)ツールはありますか?

はじめに:

  • バスはBus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
  • デバイスはBus 002 Device 002: ID 1e68:001b TrekStor GmbH & Co. KG DataStation maxi g.uドライブです。
  • Debian カーネル 3.16.0-4-amd64

ベストアンサー1

おすすめ記事