GNU+Linux command memo

Gigabit USB / Ethernet adapter driver

Utiliser un adaptateur USB / Ethernet gigabit avec le bon pilote de périphérique pour ne pas bloquer le système.

Since 5 years I use a laptop with no Ethernet port. On some rare occasions I needed one and used 3 different USB / Ethernet adapters. Each of them ended up blocking my Linux kernel after a few hours of usage. The last I’ve tested was based on the RTL8153 chip. I might have recently found out why it causes troubles here :

It’s well supported by the Linux kernel, but the default r8152 module is rarely used, the generic cdc_ether driver is loaded instead.

—[Arnab Satapathi]

So a radical solution is to blacklist the faulty kernel module to let the r8152 being used. This can be achieved with a configuration file in /etc/modprobe.d :

# vi /etc/modprobe.d/blacklist_cdc_ether.conf
# depmod -a
blacklist cdc_ether

Another solution is to point out which module to use for your particular peripheral, via udev :

# vi /etc/udev/rules.d/50-usb-realtek-net.rules
ATTR{idVendor}=="0bda", ATTR{idProduct}=="8153", ATTR{bConfigurationValue}!="1", ATTR{bConfigurationValue}="1"

The idVendor and idProduct field values where given by lsusb :

$ lsusb
Bus 002 Device 014: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter

The complete 50-usb-realtek-net.rules file can found here :

There is a known bug in the Linux kernel since 2018-08-30 that causes close symptoms with RealTek RTL8153 adapters (embeding a USB hub, as for my experience) : Bug 200977 - Daily crash with r8152 driver requiring reboot ; no solutions yet (2020-11-15).