AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 687815
Accepted
SuibianP
SuibianP
Asked: 2022-01-26 00:07:12 +0800 CST2022-01-26 00:07:12 +0800 CST 2022-01-26 00:07:12 +0800 CST

跳过 USB 设备的容器 ID 和 BOS 描述符查询

  • 772

尝试执行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 usb-device
  • 1 1 个回答
  • 214 Views

1 个回答

  • Voted
  1. Best Answer
    SuibianP
    2022-01-26T08:12:14+08:002022-01-26T08:12:14+08:00

    在深入研究各种文档之后,这是我设法解决问题的方法:

    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端口。我的设备是小米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容量之间的关系。

    对此答案的进一步扩展将不胜感激。

    • 0

相关问题

  • 如何安全地将 U 盘/设备插入 Linux 计算机?

  • 如何从 USB 而不是 cdrom 安装 pppoe 包?

  • 如何修改 U 盘以将设备节点设为 /dev/sda1 而不是 /dev/sda?

  • 将 USBIP 用于正在移除和重新连接的设备

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve