(于 5 月 6 日太平洋标准时间中午 12 点左右编辑,以进行整合和澄清)
我遇到了类似的问题这里和这里。 实际产品是便宜的中国USB 转 PCIe 适配卡或者内部硬件的图片。 其他人给出的唯一答案似乎是“更新内核”。然而,在其他帖子中,硬件似乎根本无法工作,没有找到真正的解决方案,而且正如我将展示的那样,我不认为内核版本是问题所在。下面我展示了我的系统信息、硬件已初始化的事实,以及插入设备后出现故障时的输出。我在内核 v5.0.10(主线)和 v4.15.0-48.51 上尝试过。我也在 Lubuntu 18.04 和 19.04 上测试过。我已经用 USB 键盘(通用 so..1.1/2.0?)以及自供电和 USB 供电的 USB 3.0 外置硬盘测试了 PCIe 卡。这三种设备都表现出相同的故障模式。
如果有人遇到类似问题,可以使用以下命令列表。我在本文底部列出了使用这些命令的结果。
uname -a
这将返回您当前的内核版本
cat /etc/lsb-release
这将返回你的发行版
sudo dmidecode
这将返回所有系统硬件(如 PCIe 插槽)的状态
lspci -nn
这将返回 PCI 总线上所有硬件的状态(直观地过滤)
dmesg | grep xhci
这将显示状态消息并列出诸如失败之类的内容
以下内容主要针对开发人员。我是一名业余硬件“爱好者”,可以毫无问题地(尝试)排除硬件方面的故障,但我的软件技能较弱。我的 PCIe 适配器有一个 uPD720202。如果不先在其网站上创建帐户,则无法从 Renesas 直接获得此数据表。但是,完整的数据表可通过 Mouser 等零件分销商获得。本文档有引脚分布和时序图,但没有应用说明。在寻找网络上流传的潜在应用说明后,我偶然发现了以下内容……(请注意,这是一个 PDF 下载文件链接(PDF 的作者与主机站点“stonegroup”匹配,但这只是我在搜索 DDG 时找到的链接)) https://kb.stonegroup.co.uk/index.php?View=pdf&EntryID=359
如果您阅读了这份基本文档,它清楚地表明,uPD720200、uPD720201 和 uPD720202 的问题必须通过修改设备驱动程序来解决。硬件识别 USB 2.0/3.0 设备的方式与操作系统执行相同任务的方式之间存在冲突。只需禁用操作系统驱动程序的 USB 2/3 监视器即可解决此问题。我遇到的问题是,设备已初始化,但在插入设备后失败,这显然与此 PDF 中提到的相同故障模式有关。PDF 介绍了如何修复 Windows 和 VMware 的问题。我不知道是否可以使用某种虚拟机解决方案来解决此类问题。如果可能的话,我需要帮助。如果不行,我该如何修改我机器上的驱动程序或提交此信息以让开发人员修复此问题?哪个开发人员?在此先感谢您对这个问题提供的任何帮助。-Jake
--我的系统/使用主线内核和 18.04 进行测试/失败的结果--
$uname -a
Linux ********* 5.0.10-050010-generic #201904270832 SMP Sat Apr 27 08:34:43 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$cat /etc/lsb-release
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"
# dmidecode
Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
Manufacturer: Hewlett-Packard
Product Name: 30D8
Version: KBC Version 83.0E
Serial Number:
Handle 0x0007, DMI type 9, 13 bytes
System Slot Information
Designation: PC CARD-Slot 0
Type: 32-bit PC Card (PCMCIA)
Current Usage: Available
Length: Short
ID: Adapter 0, Socket 0
Characteristics:
5.0 V is provided
3.3 V is provided
PC Card-16 is supported
Cardbus is supported
PME signal is supported
该卡显示使用:
$lspci -nn
28:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015] (rev 02)
但是,只要插入任何设备,卡就会失效(使用 USB 供电和自供电外部硬盘进行测试)。
插入任何设备后:
$dmesg | grep xhci
[11230.209813] xhci_hcd 0000:28:00.0: xHCI Host Controller
[11230.209822] xhci_hcd 0000:28:00.0: new USB bus registered, assigned bus number 7
[11230.216144] xhci_hcd 0000:28:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x0000000100000090
[11230.216519] usb usb7: Manufacturer: Linux 5.0.10-050010-generic xhci-hcd
[11230.218060] xhci_hcd 0000:28:00.0: xHCI Host Controller
[11230.218067] xhci_hcd 0000:28:00.0: new USB bus registered, assigned bus number 8
[11230.218073] xhci_hcd 0000:28:00.0: Host supports USB 3.0 SuperSpeed
[11230.219102] usb usb8: Manufacturer: Linux 5.0.10-050010-generic xhci-hcd
[12398.657393] xhci_hcd 0000:28:00.0: remove, state 4
[12398.662440] xhci_hcd 0000:28:00.0: USB bus 8 deregistered
[12398.662456] xhci_hcd 0000:28:00.0: xHCI host controller not responding, assume dead
[12398.662462] xhci_hcd 0000:28:00.0: remove, state 4
[12398.662690] xhci_hcd 0000:28:00.0: Host halt failed, -19
[12398.662693] xhci_hcd 0000:28:00.0: Host not accessible, reset failed.
[12398.662829] xhci_hcd 0000:28:00.0: USB bus 7 deregistered
答案1
不管怎样:至少对于我来说,前面提到的电源问题似乎是罪魁祸首。我在联想/ThinkPad W500 上运行 Xubuntu 18.04 LTS(原版内核),最近购买了一个 USB 3.0 适配器(包装上标有“Encore Electronics”;“SuperSpeed USB 3.0 ExpressCard ENPUH-302”),34 毫米。
包装背面的规格注明:“电源输出:5V/300 mA 或 5V/900 mA,带电源适配器(不包括)”。
设备显示(lsusb):USB 控制器:NEC Corporation uPD720200 USB 3.0 主机控制器(rev 03)
插入后,它可以识别但无法安装 5 Gb 外部 USB3.0 驱动器。
我有一个 USB 电源适配器(仅有线的类型,带有 USB-A 公头和 USB-A 母头连接器,可将电源分配至小型空心电源/桶形连接器)。
插入后,Express 卡控制器立即识别出外部驱动器。Ubuntu 将其显示为 /dev/sda,并自动挂载分区。吞吐量不是很好:3 Gb 文件时为 46.3 MB/s 到 101 MB/s(不使用 drop cache 命令),但至少比我使用 USB 2.0 端口时获得的 19.6 Mb/s 要好得多。