USB 以太网 + 雷电错误

gno*_*med 10 usb networking drivers thunderbolt

目前,Thunderbolt 以太网适配器存在重大问题。

该设备是“Razer Core X”雷电 eGPU 外壳,内置 USB3 集线器和千兆以太网端口。本质上是一个非常强大的扩展坞,带有自己的 GPU(利用 Thunderbolt 端口上的 4 个 PCIe 通道)。

如果我使用内置以太网端口或将我自己的 USB3 以太网适配器插入扩展坞上的 USB3 集线器,则会出现同样的问题。如果我绕过 Thunderbolt 扩展坞并直接插入以太网适配器,则不会出现此问题(尽管这种方式违背了扩展坞的目的)。

在使用此扩展坞的不同笔记本电脑上也会出现同样的问题。我的工作笔记本电脑是 18.04,我的新个人笔记本电脑是 20.04,两台笔记本电脑上的两个版本的 Ubuntu 都具有完全相同的行为。

当以太网出现故障时,它不再能够解析 DNS,我什至无法 ping 本地网络上的任何内容,但设备在 NetworkManager UI 中仍然显示为“已连接”。当我关闭/打开连接时,它会显示“正在连接”并永久停留在那里。

当我检查 dmesg/syslog 时,我每次都会看到完全相同的一堆错误。下面是错误示例。在这里您可以在日志中看到我通过 modprobe 重新加载驱动程序,这会导致连接再次短暂工作。然后稍后会出现完全相同的错误和症状:

[SAME ERROR REPEATED ~20 times]
[  543.814402] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000425e6e3f0 trb-start 0000000425e6e2e0 trb-end 0000000425e6e2e0 seg-start 0000000425e6e000 seg-end 0000000425e6eff0
[  543.815185] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  543.815186] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000425e6e400 trb-start 0000000425e6e2e0 trb-end 0000000425e6e2e0 seg-start 0000000425e6e000 seg-end 0000000425e6eff0
[  543.815271] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  543.815272] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000425e6e410 trb-start 0000000425e6e2e0 trb-end 0000000425e6e2e0 seg-start 0000000425e6e000 seg-end 0000000425e6eff0
[  543.815356] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  543.815357] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000425e6e420 trb-start 0000000425e6e2e0 trb-end 0000000425e6e2e0 seg-start 0000000425e6e000 seg-end 0000000425e6eff0
[  543.815822] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  543.815823] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000425e6e430 trb-start 0000000425e6e2e0 trb-end 0000000425e6e2e0 seg-start 0000000425e6e000 seg-end 0000000425e6eff0
[  609.127969] usbcore: deregistering interface driver ax88179_178a
[  609.128443] ax88179_178a 10-1:1.0 enx90203a1c2b65: unregister 'ax88179_178a' usb-0000:0c:00.0-1, ASIX AX88179 USB 3.0 Gigabit Ethernet
[  609.643604] ax88179_178a 10-1:1.0 eth0: register 'ax88179_178a' at usb-0000:0c:00.0-1, ASIX AX88179 USB 3.0 Gigabit Ethernet, 90:20:3a:1c:2b:65
[  609.645089] usbcore: registered new interface driver ax88179_178a
[  609.646672] ax88179_178a 10-1:1.0 enx90203a1c2b65: renamed from eth0
[  612.705215] ax88179_178a 10-1:1.0 enx90203a1c2b65: ax88179 - Link status is: 1
[  612.735735] IPv6: ADDRCONF(NETDEV_CHANGE): enx90203a1c2b65: link becomes ready
[  652.991795] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  652.991799] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000384cb4280 trb-start 0000000384cb4260 trb-end 0000000384cb4260 seg-start 0000000384cb4000 seg-end 0000000384cb4ff0
[  652.991859] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  652.991862] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000384cb4290 trb-start 0000000384cb4260 trb-end 0000000384cb4260 seg-start 0000000384cb4000 seg-end 0000000384cb4ff0
[  652.991944] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  652.991945] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000384cb42a0 trb-start 0000000384cb4260 trb-end 0000000384cb4260 seg-start 0000000384cb4000 seg-end 0000000384cb4ff0
[  652.992030] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  652.992032] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000384cb42b0 trb-start 0000000384cb4260 trb-end 0000000384cb4260 seg-start 0000000384cb4000 seg-end 0000000384cb4ff0
[  652.992121] xhci_hcd 0000:0c:00.0: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 4 comp_code 13
[  652.992122] xhci_hcd 0000:0c:00.0: Looking for event-dma 0000000384cb42c0 trb-start 0000000384cb4260 trb-end 0000000384cb4260 seg-start 0000000384cb4000 seg-end 0000000384cb4ff0
[SAME ERROR REPEATED ~20 times]

Run Code Online (Sandbox Code Playgroud)

每次我在注意到症状后检查日志时,“传输事件”错误都会出现在日志中,而 syslog 中的时间戳似乎与网络停止工作的那一刻精确对应。从这次运行中可以看出,在加载驱动程序和遇到问题之间没有其他日志输出。

当我在 google 上搜索该错误消息时,有多篇文章讨论了 Thunderbolt 带宽管理问题,但我能找到的每篇文章都已经有好几年了,只是说它现在已在内核中修复。但对我来说似乎没有修复(5.3.0-51-generic)。当我做一些需要更多网络带宽的事情(比如流式传输电影)时,错误确实发生得更快,所以这似乎指向了迅雷带宽问题,但我再次找不到修复程序/据说这都是几年前修复的。

此处链接是我的网络诊断脚本输出:https : //paste.ubuntu.com/p/FmG8hGzkXV/

我已经尝试禁用以太网设备和设备所连接的 USB 总线的自动挂起(使用 powertop),但它没有帮助。我的笔记本电脑似乎没有安装 notebook-mode-tools 或 tlp。

有人可以帮我弄清楚发生了什么吗?我觉得像这样的霹雳设备应该能够在 Ubuntu 上工作。如果我预计 eGPU 的 GPU 部分会出现任何问题,但由于我目前正在由扩展坞驱动的双 4k 显示器上打字,因此工作正常,唯一的问题是以太网(键盘、鼠标、USB 声卡都可以正常工作)插入坞站时)。