USB 以太网适配器(Realtek r8153)不断断开连接

USB 以太网适配器(Realtek r8153)不断断开连接

自从从 17.10 升级到 Ubuntu 18.04 以来,我的 USB 以太网适配器一直断开连接。它以前在 17.10 上可以完美运行。

连接断开时,dmesg 显示以下输出:

[  273.462732] usb 4-1.4: usb_reset_and_verify_device Failed to disable LTM
               .
[  273.643622] usb 4-1.4: USB disconnect, device number 11
[  273.795468] usb 4-1.4: new SuperSpeed USB device number 12 using xhci_hcd
[  273.816520] usb 4-1.4: New USB device found, idVendor=0bda, idProduct=8153
[  273.816522] usb 4-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[  273.816523] usb 4-1.4: Product: USB 10/100/1000 LAN
[  273.816524] usb 4-1.4: Manufacturer: Realtek
[  273.816525] usb 4-1.4: SerialNumber: 0000A5
[  273.896167] usb 4-1.4: reset SuperSpeed USB device number 12 using xhci_hcd
[  273.948778] r8152 4-1.4:1.0 eth0: v1.09.9
[  274.503001] r8152 4-1.4:1.0 enx144fd7d04a3c: renamed from eth0
[  274.539481] IPv6: ADDRCONF(NETDEV_UP): enx144fd7d04a3c: link is not ready
[  274.543857] IPv6: ADDRCONF(NETDEV_UP): enx144fd7d04a3c: link is not ready
[  276.431243] r8152 4-1.4:1.0 enx144fd7d04a3c: carrier on
[  276.431258] IPv6: ADDRCONF(NETDEV_CHANGE): enx144fd7d04a3c: link becomes ready

答案1

在写这个问题时,我在内核邮件列表中找到了错误的来源。负责管理我的 r8153 适配器的 r8152 驱动程序无法处理 usb 自动挂起(出于省电原因)。将设备列入 usb 自动挂起的黑名单可解决断开连接问题,具体操作如下:

使用 lsusb 找出你的设备的 usb id(在我的情况下是 0bda:8153),它给出以下信息:

Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp.

现在打开 /etc/default/tlp 并搜索 USB_BLACKLIST 并为您的设备添加一个条目:

USB_BLACKLIST="0bda:8153"

您可能需要重新启动,之后您的以太网连接应该再次稳定。

答案2

您也可以使用内核 udev 规则执行此操作。我创建了 udev 规则,既可以关闭设备的 USB 自动挂起,也可以关闭 CPU 的 Turbo 模式(这也可能有帮助):

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8153", TEST=="power/control", ATTR{power/control}="on"
KERNEL=="cpu",RUN+="/bin/sh -c 'echo -n 1 > /sys/devices/system/cpu/intel_pstate/no_turbo'"

将以上内容放入文件中:/etc/udev/rules.d/50-cpu-custom.rules

答案3

kernel.org 上有一个 bugzilla 条目,似乎是关于这个问题的(尽管它可能是两个独立的问题)。

https://bugzilla.kernel.org/show_bug.cgi?id=198931

此处的 TLP 解决方法没有解决我的问题,但我能够根据该错误讨论中的一些建议解决问题。不过,我确实同时进行了多次修复,但不知道哪个修复真正解决了问题。

  1. 我添加usbcore.quirks=0bda:8153:k到了内核启动命令行
  2. 我安装了最新的firmware-realtek软件包(这个是 Debian 特有的,你可能已经在 Ubuntu 的其他固件包中安装了这个软件包)
  3. 在网络管理器界面中,我将以太网连接的连接自动协商从“忽略”切换为“自动”。

无论如何,该讨论包含所有这些以及更多不同的修复和解决方法,我希望某种组合对于遇到此问题的任何人来说都有效。

答案4

我有点困惑,但我认为这一点信息可能会有所帮助。在链接中问题我问了一个类似的问题,但这里的解决方案没有解决我遇到的问题。虽然我很快就解决了这个问题,并且在订购了另一个适配器后,通过更改 /etc/networking/interfaces 中的配置,但刚刚发布了一个答案,指出我的 dmesg 中使用了两个类似的数字。顺便说一句,用于dmesg -T人类可读的时间戳!

因此适配器报告为,usb 3-4: New USB device found, idVendor=0bda, idProduct=8153但 r8152 驱动程序(?)r8152 3-4:1.0 eth0: v1.09.9正在使用它。那么在黑名单中应该使用哪个数字 8153 还是 8152?我猜应该是 8153,因为这是被列入黑名单的设备的编号。但在排除故障时,请注意这两个相似的数字。

相关内容