Update kmod-usb-net-rtl8152 Driver to avoid USB 3.0 to Gigabit LAN issues?

thanks, here's my openwrt_version file r13565-373f446049

As promised, here you go: kmod-usb-net-rtl8152_5.4.45-1_v2.13_aarch64_cortex-a72.ipk

To install it:

opkg --force-reinstall install kmod-usb-net-rtl8152_5.4.45-1_v2.13_aarch64_cortex-a72.ipk

Please, let us know how your testing goes.

I've ordered my UE300 adaptor now too, so I'll be interested to see how this works out.

Ok, I have installed the new driver files and the error still occured, here's the snippet of the system log

Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.186668] r8152 2-1:1.0 eth1: get_registers -71
Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.191982] r8152 2-1:1.0 eth1: get_registers -71
Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.197297] r8152 2-1:1.0 eth1: get_registers -71
Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.202613] r8152 2-1:1.0 eth1: get_registers -71
Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.207929] r8152 2-1:1.0 eth1: get_registers -71
Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.213239] r8152 2-1:1.0 eth1: get_registers -71
Mon Jun 29 19:25:54 2020 kern.err kernel: [   87.218553] r8152 2-1:1.0 eth1: get_registers -71

for quite long followed by error like this :

Mon Jun 29 19:25:57 2020 daemon.err uwsgi[1244]: Mon Jun 29 19:25:57 2020 - [emperor] vassal /etc/uwsgi/vassals/luci-cgi_io.ini is now loyal
Mon Jun 29 19:26:01 2020 kern.warn kernel: [   94.928880] r8152 2-1:1.0 eth1: Tx timeout
Mon Jun 29 19:26:02 2020 kern.warn kernel: [   95.441010] xhci_hcd 0000:01:00.0: Timeout while waiting for setup device command
Mon Jun 29 19:26:06 2020 kern.warn kernel: [   99.792513] r8152 2-1:1.0 eth1: Tx timeout
Mon Jun 29 19:26:07 2020 kern.warn kernel: [  100.816550] xhci_hcd 0000:01:00.0: Timeout while waiting for setup device command
Mon Jun 29 19:26:08 2020 kern.err kernel: [  101.028403] usb 2-1: device not accepting address 2, error -62
Mon Jun 29 19:26:11 2020 kern.warn kernel: [  104.912138] r8152 2-1:1.0 eth1: Tx timeout
Mon Jun 29 19:26:12 2020 kern.err kernel: [  105.128188] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?
Mon Jun 29 19:26:12 2020 kern.err kernel: [  105.892438] r8152 2-1:1.0 eth1: get_registers -19
Mon Jun 29 19:26:12 2020 kern.info kernel: [  105.892467] usb 2-1: USB disconnect, device number 2
Mon Jun 29 19:26:12 2020 kern.err kernel: [  105.897163] r8152 2-1:1.0 eth1: Get ether addr fail

here's similar problem in ubuntu in this thread, although disabling power management doesn't make the problem go away totally (it still occured but not often). Similar symptom of problem also in windows 10.

What is the adaptor you're using?

1 Like

The usb 3.0 to gigabit lan adapter is not so known brand called "m-tech" exactly like this picture :


Interestingly, I bought second usb 3.0 to gigabit lan (no-name brand), it has exactly the same look without the M-Tech naming, but the chipset is using Asix AX88179, this adapter works without problem (that I know of) in raspberry pi 4.

I would suggest the issue is with the adaptor, rather than the chipset. Other brands using the rtl chips seem to work fine with the RPi4. I've had no issues with the TP-Link UE300. Maybe try a different brand, see if it solves it?

3 Likes

That was my thought at first, but after updating the driver from realtek website solve the problem completely (not to mention similar older problems in other forums).

Also without updating the drivers but using usb 2.0 port the device works flawlessly (well except it won't give full gigabit speed since bottleneck in usb 2.0 interface).

@Ark, after all your problems and seeing that people is not having problems with UE300 adaptors and 2013 drivers and, I do not have problems with same adaptor and 2020 drivers. May I suggest you get a new one? In the end, even with same chipset, adaptors are not build the same and they differ in quality.

I guess for this time I'll use my other USB 3.0 to gigabit adapter which is AX88179 based, or putting the RTL8153 adaptor in USB 2.0 slot. I do plan to use the realtek on raspberry pi but using dietpi, nftable and updated linux driver as another router / gateway, and testing if the adapter works normally like in windows. But I don't have spare unit because it's now used as my main router right now so maybe in the future.

1 Like

@xiaobo, as you can see it got rejected, probably because how I committed it. Let me see if I can follow up on how to properly do the pull request for a new version of a kernel driver.

1 Like

Ok, finally I bought UE-300 and plugged it in usb 3.0 port, works normal unlike previous adapter. although a bit curious lsusb shows rtl8152 even though google said it's rtl8153 chipset. And I vaguely remember my previous adapter shows as rtl8153...

This is not a driver problem. The USB core is also unable to communicate with the device. That's most likely a hardware and/or firmware issue with the device. I'd just throw it in the garbage.

This doesn't mean that I don't believe you are right about the bug being related to autosuspend or other parts of device power management. It might very well be related. But it's still a bug. And there might be more. Which is why I believe implementing any workaround is a waste of time.

But disabling autosuspend is simple in Linux. You don't need anythong special for that. You can

  1. boot with usbcore.autosuspend=-1 on the kernel command line, or
  2. echo -1 >/sys/module/usbcore/parameters/autosuspend, or
  3. echo -1 >/sys/bus/usb/devices/x-y/power/autosuspend (where x-y must be replaced)

This is documented e.g in https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-bus-usb

I reckon that's how the driver reports it. Nothing to worry about, tho'. Your device is a RTL8153, Linux uses same driver for both the 8152 and 8153.

Same problem here.

Ok, been tinkering with another device (intel nuc / mini pc) and tried installing OPNsense with internal ethernet (RTL8111) on WAN and the previously problematic usb to gigabit ethernet (RTL8153) as LAN. tried speedtest and downloads seems no problem which leads to more questions.

I know intel nuc and OPNsense is not a good comparison since comparing x86 vs arm and Linux vs BSD but I thought maybe there's more than just faulty usb ethernet. I plan to test it as openwrt in the nuc later.

Edit : after swapping the WAN side to USB Adapter and LAN to onboard NIC problem began to happens, and after further examination, previously the LAN side on my laptop is set to 100 mbps not 1 Gbps, maybe that explain why the USB ethernet works fine (similar when plugged in to USB 2.0 port). I guess it's confirmed the generic USB Gigabit adapter is very unrealiable that archieving 1 Gbps is almost impossible.

1 Like

Would you post the patch somewhere?

edit: no need, just found your closed PR.

Thx

1 Like

Hi Amteza, i plugged in the TP-Link UE300 and i can see it on the USB LS but i dont see the eth1. only eth0. hope you can help

root@OpenWrt:~# lsusb
Bus 002 Device 002: ID 2357:0601 TP-Link UE300 10/100/1000 LAN (ethernet mode) [Realtek RTL8153]
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

If you installed the corresponding kmod-usb-net-rtl8152 package it simple works, you have to do nothing to see the new interface.

i get that error:

root@OpenWrt:~# opkg install kmod-usb-net-rtl8152
Installing kmod-usb-net-rtl8152 (5.4.66-1) to root...
Downloading https://downloads.openwrt.org/snapshots/targets/bcm27xx/bcm2711/packages/kmod-usb-net-rtl8152_5.4.66-1_aarch64_cortex-a72.ipk
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-net-rtl8152:
 *      kernel (= 5.4.66-1-5bce2209885de4a03488d29e7c2dd93e)
 * opkg_install_cmd: Cannot install package kmod-usb-net-rtl8152.
root@OpenWrt:~#