尝试执行fastboot
命令时,传输总是错误的。快速搜索指出与 USB 3.0 端口存在某些不兼容性。
强制传统 USB 2.0 模式在我的 BIOS 设置中不存在,并且在操作系统端也不可能,因此我将不得不依赖一个看起来至少可行的软件解决方案,因为有几个来源通过添加注册表项在 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 上的等效解决方案是什么?
libusb
我试图在 Linux 上搜索 BOS 描述符和容器 ID,但除了来源之外无济于事。
相关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
在深入研究各种文档之后,这是我设法解决问题的方法:
可能有点多余,但它有效。根据插入的端口更改USB端口。我的设备是小米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容量之间的关系。
对此答案的进一步扩展将不胜感激。