[SOLVED] Getting the RTL8156 2.5GB adapter on Ubuntu 22.04? (Solution blacklist TLP from device)

I bought the 2.5GB ethernet adapter from framework.

Everything online says that it should work as of kernel version 5.13. I’m running 5.15 on Kubuntu 22.04.1. The driver either doesn’t load or I’m getting a ‘no carrier signal’ message.

Trying to download and install the r8152 driver results in a:

modprobe ERROR: ERROR could not insert 'r8152': Operation not permitted

(Ofc I executed as root)

Does anyone have a similar setup? Does yours work? What did you need to do? Or is mine faulty?

Okay I’ve gotten more info.
I have an usb A->C adapter so I plugged in to my identical desktop pc. There it works. It loads the cdc_ncm driver and connects to the network. (Gigabit speeds because I don’t have my 2.5gb SFP+ module yet)

It registers as follows:

[ 3785.755955] usb 1-4: new high-speed USB device number 5 using xhci_hcd
[ 3785.961010] usb 1-4: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.04
[ 3785.961020] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ 3785.961025] usb 1-4: Product: USB 10/100/1G/2.5G LAN
[ 3785.961029] usb 1-4: Manufacturer: Realtek
[ 3785.961032] usb 1-4: SerialNumber: **********
[ 3786.012550] usbcore: registered new interface driver cdc_ether
[ 3786.071028] cdc_ncm 1-4:2.0: MAC-Address: **:**:**:**:**:**
[ 3786.071042] cdc_ncm 1-4:2.0: setting rx_max = 16384
[ 3786.074999] cdc_ncm 1-4:2.0: setting tx_max = 16384
[ 3786.079221] cdc_ncm 1-4:2.0 eth0: register 'cdc_ncm' at usb-0000:02:00.0-4, CDC NCM, 9c:bf:0d:00:07:88
[ 3786.079295] usbcore: registered new interface driver cdc_ncm
[ 3786.081492] usbcore: registered new interface driver cdc_wdm
[ 3786.082944] usbcore: registered new interface driver cdc_mbim
[ 3786.090717] cdc_ncm 1-4:2.0 enx9cbf0d000788: renamed from eth0

On the manjaro forums I found the solution. IT appears to have to do with TLP power management. Adding the correct exception for my USB device solved the problem. This also explains why it works on the desktop as the desktop doesn’t have TLP.


Just to prevent link rot.
The solution is:

Create a file in the form of /etc/tlp.d/54-blacklist-usbeth.conf with the following content


The values can be found by doing lsusb and finding the line matching the description of the adapter. If you can’t find it there, unplug the device and plug it back in. dmesg now shows a new usb device appearing with the values of idVendor and idProduct logged.


Just an FYI if you are using TLP 1.5 the USB_BLACKLIST no longer works. It has been changed to USB_DENYLIST=“insertidVendoridProducthere”


Okay, appreciate this update.

1 Like