USBデバイスのコンテナIDとBOS記述子クエリをスキップする

USBデバイスのコンテナIDとBOS記述子クエリをスキップする

コマンドを実行しようとすると、fastboot転送は常に間違っています。クイック検索USB 3.0ポートといくつかの非互換性を指摘します。

私のBIOS設定に強制レガシーUSB 2.0モードはありません。オペレーティングシステム側では不可能です。したがって、私はソフトウェアソリューションに頼る必要があります。複数のソースからレジストリキーを追加してWindowsにソリューションを提供するため、少なくとも実現可能に見えます。

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "osvc" /t REG_BINARY /d "0000" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipContainerIdQuery" /t REG_BINARY /d "01000000" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipBOSDescriptorQuery" /t REG_BINARY /d "01000000" /f

だから私の質問は次のようになりますLinuxで同等のソリューションは何ですか?

LinuxでBOS記述子とコンテナIDを検索してみましたが、libusbソース以外には何も見つかりませんでした。

関連dmesgログ:

[ 1467.568758] usb 1-1: new high-speed USB device number 8 using xhci_hcd
[ 1467.718322] usb 1-1: New USB device found, idVendor=18d1, idProduct=d00d, bcdDevice= 1.00
[ 1467.718325] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1467.718326] usb 1-1: Product: Android
[ 1467.718327] usb 1-1: Manufacturer: Google
[ 1467.718327] usb 1-1: SerialNumber: 832ec5e4
////// Here I executed `fastboot devices`
[ 1476.552829] usb usb5-port1: over-current condition
[ 1476.636501] usb usb6-port1: over-current condition
[ 1484.336743] usb usb5-port1: over-current condition
[ 1484.416485] usb usb6-port1: over-current condition
[ 1487.100726] xhci_hcd 0000:00:14.0: USB core suspending port 1-1 not in U0/U1/U2
[ 1487.100879] usb 1-1: USB disconnect, device number 8
[ 1487.100987] usb 1-1: Failed to suspend device, error -32
[ 1490.074492] ucsi_acpi USBC000:00: UCSI_GET_PDOS returned 0 bytes

ベストアンサー1

さまざまな文書を調べた後、問題を解決した方法は次のとおりです。

echo -1 | sudo tee /sys/module/usbcore/parameters/autosuspend
echo '18d1:d00d:k' | sudo tee /sys/module/usbcore/parameters/quirks
echo 1 | sudo tee /sys/bus/usb/devices/1-1/power/pm_qos_no_power_off
echo | sudo tee /sys/bus/usb/devices/1-1/power/wakeup
echo on | sudo tee /sys/bus/usb/devices/1-1/power/control
echo -1 | sudo tee /sys/bus/usb/devices/1-1/power/autosuspend_delay_ms
echo n | sudo tee /sys/bus/usb/devices/1-1/power/usb2_hardware_lpm

少し重複することがありますが、動作します。接続されているポートに従ってUSBポートを交換してください。私のデバイスはXiaomi Mix 2Sです。必要に応じて18d1:d00d問題のあるハードウェアを変更します。

引用:https://www.kernel.org/doc/html/v4.15/driver-api/usb/power-management.html https://www.kernel.org/doc/html/v4.15/admin-guide/kernel-parameters.html?highlight=usb-storage.quirks

私の理由は、

  • 問題は多少不規則に発生するため(時々挿入後、時にはブートローダへのいくつかのクエリの後でも)、それ自体の問題ではない可能性がありますfastboot。電力関連の問題は、このように現れる傾向があるため、疑わしいです。
  • lsusb -tこのデバイス()用の専用ドライバがないため、usbcore「生」USBデバイスに興味がある可能性があります。

電源管理の基本的なメカニズムと、これが両方のクエリをバイパスするWindowsソリューションとどのように関連しているかはまだわかりません。 ~によるとこれ、これはBOS記述子とLPM容量の関係です。

この回答をさらに拡張していただきありがとうございます。

おすすめ記事