USB ethernet port fails after an hour

rossd

New Member
Nov 16, 2023
25
4
3
I have a usb thunderbolt port, and after about an hour it will disconnect. dmesg shows this:

Code:
[Tue Mar 26 09:01:06 2024] r8152-cfgselector 2-2: USB disconnect, device number 11
[Tue Mar 26 09:01:06 2024] xhci_hcd 0000:00:0d.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
[Tue Mar 26 09:01:06 2024] r8152 2-2:1.0 enx00e04c9f528b: Tx status -108
[Tue Mar 26 09:01:06 2024] r8152 2-2:1.0 enx00e04c9f528b: Tx status -108
[Tue Mar 26 09:01:06 2024] r8152 2-2:1.0 enx00e04c9f528b: Tx status -108
[Tue Mar 26 09:01:06 2024] r8152 2-2:1.0 enx00e04c9f528b: Tx status -108
[Tue Mar 26 09:01:06 2024] xhci_hcd 0000:00:0d.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
[Tue Mar 26 09:01:06 2024] bond0: (slave enx00e04c9f528b): Releasing backup interface
[Tue Mar 26 09:01:06 2024] r8152 2-2:1.0 enx00e04c9f528b (unregistering): left promiscuous mode
[Tue Mar 26 09:01:06 2024] r8152 2-2:1.0 enx00e04c9f528b (unregistering): left allmulticast mode
[Tue Mar 26 09:01:06 2024] usb 2-2: new SuperSpeed USB device number 12 using xhci_hcd
[Tue Mar 26 09:01:06 2024] usb 2-2: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.00
[Tue Mar 26 09:01:06 2024] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[Tue Mar 26 09:01:06 2024] usb 2-2: Product: USB 10/100/1G/2.5G LAN
[Tue Mar 26 09:01:06 2024] usb 2-2: Manufacturer: Realtek
[Tue Mar 26 09:01:06 2024] usb 2-2: SerialNumber: 0013000001

For what it's worth I really don't think this is a proxmox issue, just at a bit of a loss where else to ask!

I'm running it on a nuc 11. I also have a nuc 10 with the same ethernet adapter and that "just works".

I've updated the bios to the newest available and it's still happening. Any other pointers would be appreciated!
 
Its a usb-c to 2.5 adaptor.
you got another one to swap it out? as these are so cheap at £6 it could be a manufacturing fault.

also did you see it load a firmware in the log when it was 1st plugged in? if not try loading firmware-realtek package

you will need to change your apt /etc/apt/sources.list to as follows
Code:
deb http://ftp.uk.debian.org/debian bookworm main contrib
deb http://ftp.uk.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
# security updates
deb http://security.debian.org bookworm-security main contrib non-free non-free-firmware

package supports your nic

https://packages.debian.org/bullseye/firmware-realtek
 
Last edited:
  • Like
Reactions: Kingneutron
What does cat /etc/network/interfaces show?

Note `enx00e04c9f528b` is the old usb-c ethernet one that originally wasn't working, I swapped it with my other proxmox host (that was working). This one works fine in there. `enx00e04c9f525e` is the one that worked in the other host, and is behaving the same in this host.

auto lo
iface lo inet loopback

auto enp88s0
iface enp88s0 inet manual

iface wlo1 inet manual

auto enx00e04c9f528b
iface enx00e04c9f528b inet manual

auto thunderbolt0
iface thunderbolt0 inet manual

auto enx00e04c9f525e
iface enx00e04c9f525e inet manual

auto bond0
iface bond0 inet manual
bond-slaves enp88s0 enx00e04c9f525e
bond-miimon 100
bond-mode 802.3ad

auto vmbr0
iface vmbr0 inet static
address 192.168.86.10/24
gateway 192.168.86.1
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094

auto vmbr1
iface vmbr1 inet static
address 10.0.0.1/24
bridge-ports thunderbolt0
bridge-stp off
bridge-fd 0

source /etc/network/interfaces.d/*
 
This suggests they are both using the same firmware to me (pve0 is the host with the issue):


root@pve0:~# ethtool -i enx00e04c9f525e
driver: r8152
version: v1.12.13
firmware-version: rtl8156b-2 v3 10/20/23
expansion-rom-version:
bus-info: usb-0000:00:0d.0-2
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
root@pve1:~# ethtool -i enx00e04c9f528b
driver: r8152
version: v1.12.13
firmware-version: rtl8156b-2 v3 10/20/23
expansion-rom-version:
bus-info: usb-0000:00:14.0-4
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
 
Hi,

what version of Proxmox VE are you running, specifically the kernel (pveversion -v)?
Have you tried upgrading to the latest available kernel?

The drivers for these Realtek chipsets unfortunately have some rough edges, due to pretty much no help/support from the vendor itself. Updating the kernel (esp. the 6.5 fixed some issues with them IIRC) can often help.
 
This suggests they are both using the same firmware to me (pve0 is the host with the issue):
Maybe compare the 2 hosts; kernels & PVE versions being used on both NUCs.
Are you also plugging in the adapter in the NUC10 to a thunderbolt port? Regular USBC?
 
Last edited:
Thanks - I ran pveversion -v on both nodes and they were identical. They are both usb c ethernet cables. This was the output for both of them:

root@pve0:~# pveversion -v
proxmox-ve: 8.1.0 (running kernel: 6.5.11-8-pve)
pve-manager: 8.1.4 (running version: 8.1.4/ec5affc9e41f1d79)
proxmox-kernel-helper: 8.1.0
proxmox-kernel-6.5: 6.5.11-8
proxmox-kernel-6.5.11-8-pve-signed: 6.5.11-8
proxmox-kernel-6.5.11-7-pve-signed: 6.5.11-7
proxmox-kernel-6.5.11-4-pve-signed: 6.5.11-4
ceph-fuse: 17.2.7-pve2
corosync: 3.1.7-pve3
criu: 3.17.1-2
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx8
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-4
libknet1: 1.28-pve1
libproxmox-acme-perl: 1.5.0
libproxmox-backup-qemu0: 1.4.1
libproxmox-rs-perl: 0.3.3
libpve-access-control: 8.0.7
libpve-apiclient-perl: 3.3.1
libpve-common-perl: 8.1.0
libpve-guest-common-perl: 5.0.6
libpve-http-server-perl: 5.0.5
libpve-network-perl: 0.9.5
libpve-rs-perl: 0.8.8
libpve-storage-perl: 8.0.5
libspice-server1: 0.15.1-1
lvm2: 2.03.16-2
lxc-pve: 5.0.2-4
lxcfs: 5.0.3-pve4
novnc-pve: 1.4.0-3
proxmox-backup-client: 3.1.3-1
proxmox-backup-file-restore: 3.1.3-1
proxmox-kernel-helper: 8.1.0
proxmox-mail-forward: 0.2.3
proxmox-mini-journalreader: 1.4.0
proxmox-offline-mirror-helper: 0.6.4
proxmox-widget-toolkit: 4.1.3
pve-cluster: 8.0.5
pve-container: 5.0.8
pve-docs: 8.1.3
pve-edk2-firmware: 4.2023.08-3
pve-firewall: 5.0.3
pve-firmware: 3.9-1
pve-ha-manager: 4.0.3
pve-i18n: 3.2.0
pve-qemu-kvm: 8.1.2-6
pve-xtermjs: 5.3.0-3
qemu-server: 8.0.10
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.2-pve1
 
With the "quirks" it' better normaly : add something like this in the /etc/grub/default if you use grub. ( change the value corresponding of your hardware.
Code:
[16928.030978] usb 3-4: new high-speed USB device number 12 using xhci_hcd
[16928.180423] usb 3-4: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.00
[16928.180437] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[16928.180443] usb 3-4: Product: USB 10/100/1G/2.5G LAN
[16928.180447] usb 3-4: Manufacturer: Realtek
[16928.180450] usb 3-4: SerialNumber: 001000001
[16928.204137] cdc_ncm 3-4:2.0: MAC-Address: 00:e0:4c:68:01:f0
[16928.204143] cdc_ncm 3-4:2.0: setting rx_max = 16384
[16928.204238] cdc_ncm 3-4:2.0: setting tx_max = 16384
[16928.204622] cdc_ncm 3-4:2.0 eth2: register 'cdc_ncm' at usb-0000:00:14.0-4, CDC NCM, 00:e0:4c:68:01:f0
[16928.205199] cdc_ncm 3-4:2.0 eth2: unregister 'cdc_ncm' usb-0000:00:14.0-4, CDC NCM
[16928.351156] r8152-cfgselector 3-4: reset high-speed USB device number 12 using xhci_hcd
[16928.528512] r8152 3-4:1.0: ram code speedup mode fail
[16928.528518] r8152 3-4:1.0: load rtl8156b-2 v2 04/27/23 successfully
[16928.567506] r8152 3-4:1.0 eth2: v1.12.13
[16928.755142] r8152-cfgselector 3-4: reset high-speed USB device number 12 using xhci_hcd
[16928.919862] r8152 3-4:1.0: ram code speedup mode fail
[16928.919876] r8152 3-4:1.0: load rtl8156b-2 v2 04/27/23 successfully
[16928.959359] r8152 3-4:1.0 eth2: v1.12.13
Code:
usbcore.autosuspend=-1 usbcore.quirks=0bda:8156:k,0bda:8156:k


you can try to add a udev rules if the kernel try to load the cdc_ncm driver like above :

https://www.cnx-software.com/2022/0...realtek-rtl8156b-2-5gbe-usb-dongle-in-ubuntu/

try to use this :
50-usb-realtek-net.rules
 
Last edited:
I tried switching to `deb http://ftp.uk.debian.org/debian bookworm-updates main contrib non-free non-free-firmware` and this updated pve-firmware. The ethernet has now been up for over 24 hours... this might have been the fix! I'm not sure what the non-free non-free-firmware does but it does look like that was what was needed.
 
  • Like
Reactions: Kingneutron
So the plot thickens! Maybe there's some different HW between the 2 NUCs that effects this needed change.
 
I guess it's more modern hardware, but who knows! Anyway thanks everyone for all the help!
 
If this is truly the fix you needed, you may want to be aware of further updates. Since you still have no idea which firmware/update causes/fixes your scenario.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!