Problem with USB network card asix ax88179_178a driver, usb 2-2 USB disconnect

PNL

New Member
Mar 27, 2023
17
1
3
Hello,

I must be cursed, on a cluster of 3 identical servers I had a problem with the integrated network card on the motherboard. Cf https://forum.proxmox.com/threads/n...-a-new-installation.124839/page-2#post-547603
I no longer use the internal network card but 2 USB network cards on each server.
One card is dedicated for Ceph the other one for the cluster and the rest.
The dedicated card for Ceph works without problem, the one for the cluster cuts out after an hour or more.

in kern.log i have :
Code:
Apr 29 10:30:25 prox3 kernel: [ 8406.303062] ax88179_178a 2-2:1.0 eno2: renamed from eth0
Apr 29 18:02:09 prox3 kernel: [35510.793691] ax88179_178a 2-2:1.0 eno2: ax88179 - Link status is: 1
Apr 29 18:02:12 prox3 kernel: [35513.481709] ax88179_178a 2-2:1.0 eno2: ax88179 - Link status is: 1
Apr 29 18:02:12 prox3 kernel: [35513.489137] IPv6: ADDRCONF(NETDEV_CHANGE): eno2: link becomes ready
Apr 29 18:02:18 prox3 kernel: [35519.566751] vmbr0: the hash_elasticity option has been deprecated and is always 16
Apr 29 18:02:18 prox3 kernel: [35519.572699] vmbr0: port 1(eno2) entered blocking state
Apr 29 18:02:18 prox3 kernel: [35519.572720] vmbr0: port 1(eno2) entered disabled state
Apr 29 18:02:18 prox3 kernel: [35519.572791] device eno2 entered promiscuous mode
Apr 29 18:02:18 prox3 kernel: [35519.572837] vmbr0: port 1(eno2) entered blocking state
Apr 29 18:02:18 prox3 kernel: [35519.572841] vmbr0: port 1(eno2) entered forwarding state
Apr 29 18:20:11 prox3 kernel: [36592.346960] usb 2-2: USB disconnect, device number 6
Apr 29 18:20:11 prox3 kernel: [36592.347046] xhci_hcd 0000:00:14.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
Apr 29 18:20:11 prox3 kernel: [36592.347111] ax88179_178a 2-2:1.0 eno2: unregister 'ax88179_178a' usb-0000:00:14.0-2, ASIX AX88179 USB 3.0 Gigabit Ethernet
Apr 29 18:20:11 prox3 kernel: [36592.347135] ax88179_178a 2-2:1.0 eno2: Failed to read reg index 0x0002: -19
Apr 29 18:20:11 prox3 kernel: [36592.347141] ax88179_178a 2-2:1.0 eno2: Failed to write reg index 0x0002: -19
Apr 29 18:20:11 prox3 kernel: [36592.347178] vmbr0: port 1(eno2) entered disabled state
Apr 29 18:20:11 prox3 kernel: [36592.347657] device eno2 left promiscuous mode
Apr 29 18:20:11 prox3 kernel: [36592.347664] vmbr0: port 1(eno2) entered disabled state
Apr 29 18:20:11 prox3 kernel: [36592.382982] ax88179_178a 2-2:1.0 eno2 (unregistered): Failed to write reg index 0x0002: -19
Apr 29 18:20:11 prox3 kernel: [36592.382993] ax88179_178a 2-2:1.0 eno2 (unregistered): Failed to write reg index 0x0001: -19
Apr 29 18:20:11 prox3 kernel: [36592.383000] ax88179_178a 2-2:1.0 eno2 (unregistered): Failed to write reg index 0x0002: -19
Apr 29 18:20:11 prox3 kernel: [36592.655191] usb 2-2: new SuperSpeed USB device number 7 using xhci_hcd
Apr 29 18:20:11 prox3 kernel: [36592.679355] usb 2-2: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 1.00
Apr 29 18:20:11 prox3 kernel: [36592.679363] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 29 18:20:11 prox3 kernel: [36592.679368] usb 2-2: Product: AX88179
Apr 29 18:20:11 prox3 kernel: [36592.679372] usb 2-2: Manufacturer: ASIX Elec. Corp.
Apr 29 18:20:11 prox3 kernel: [36592.679375] usb 2-2: SerialNumber: 007CC2C647B805
Apr 29 18:20:12 prox3 kernel: [36593.015560] ax88179_178a 2-2:1.0 eth0: register 'ax88179_178a' at usb-0000:00:14.0-2, ASIX AX88179 USB 3.0 Gigabit Ethernet, 7c:c2:c6:47:b8:05
Apr 29 18:20:12 prox3 kernel: [36593.020627] ax88179_178a 2-2:1.0 eno2: renamed from eth0

There is " usb 2-2: USB disconnect, device number 6"
I do an eno2 and ifup vmbr0 and the connection is ok again.

lsusb
Code:
Bus 002 Device 008: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

IP link
Code:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ec:8e:b5:7c:12:40 brd ff:ff:ff:ff:ff:ff
    altname enp0s31f6
3: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 7c:c2:c6:43:61:16 brd ff:ff:ff:ff:ff:ff
5: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 7c:c2:c6:47:b8:05 brd ff:ff:ff:ff:ff:ff
9: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP mode DEFAULT group default qlen 1000
    link/ether 7c:c2:c6:47:b8:05 brd ff:ff:ff:ff:ff:ff

IP a
Code:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether ec:8e:b5:7c:12:40 brd ff:ff:ff:ff:ff:ff
    altname enp0s31f6
3: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 7c:c2:c6:43:61:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.13/24 scope global eno3
       valid_lft forever preferred_lft forever
    inet6 fe80::7ec2:c6ff:fe43:6116/64 scope link
       valid_lft forever preferred_lft forever
5: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 7c:c2:c6:47:b8:05 brd ff:ff:ff:ff:ff:ff
    inet 192.168.50.13/24 scope global vmbr0
       valid_lft forever preferred_lft forever
    inet6 fe80::7ec2:c6ff:fe47:b805/64 scope link
       valid_lft forever preferred_lft forever
9: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000
    link/ether 7c:c2:c6:47:b8:05 brd ff:ff:ff:ff:ff:ff

/etc/network/interfaces
Code:
auto lo
iface lo inet loopback
#eno3 dédié ceph
auto eno3
iface eno3 inet static
        address 192.168.60.13/24

iface eno2 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.50.13/24
        gateway 192.168.50.1
        bridge-ports eno2
        bridge-stp off
        bridge-fd 0
The problem is on the first device Bus 002 Device 008, after ifup eno2 the number device change 008 -> 009

I have the same problem on 2 servers (prox1 and prox3 but not on prox2.
It's the same installation with the last kernel
Linux prox3 6.2.11-1-pve #1 SMP PREEMPT_DYNAMIC PVE 6.2.11-1 (2023-04-20T09:59Z) x86_64 GNU/Linux

how to prevent the usb device from being disconnected?

Best regards.

Pat
 

Attachments

Last edited:
HI,
I tried adding in /etc/default/grub
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet usbcore.autosuspend=-1"

Then after update-grub and reboot when I check with
Code:
cat /sys/module/usbcore/parameters/autosuspend
I have the value 2 and not -1.

how to remove this autosuspend under Proxmox?
Who can help me?
Thank you.
 
I have a very similar problem with a USB network dongle (Belkin, 2.5 Gbps, USB-C). The dongle disconnects very often with messages like:

Code:
usb 2-4: USB disconnect, device number 3
usb 2-4: new SuperSpeed USB device number 4 using xhci_hcd
usb 2-4: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.04
usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=6
usb 2-4: Product: USB 10/100/1G/2.5G LAN
usb 2-4: Manufacturer: Realtek
usb 2-4: SerialNumber: xxxxxxxxx
cdc_ncm 2-4:2.0: MAC-Address: xx:xx:xx:xx:xx:xx
cdc_ncm 2-4:2.0: setting rx_max = 16384
cdc_ncm 2-4:2.0: setting tx_max = 16384
cdc_ncm 2-4:2.0 eth0: register 'cdc_ncm' at usb-0000:00:14.0-4, CDC NCM (NO ZLP), xx:xx:xx:xx:xx:xx
cdc_ncm 2-4:2.0 eth0: unregister 'cdc_ncm' usb-0000:00:14.0-4, CDC NCM (NO ZLP)
usb 2-4: reset SuperSpeed USB device number 4 using xhci_hcd
r8152 2-4:1.0: load rtl8156b-2 v1 04/15/21 successfully
r8152 2-4:1.0 eth0: v1.12.13
r8152 2-4:1.0 enxxxxxxxxxxxxx: renamed from eth0

The device uses the proper r8152 driver (the default cdc driver does not allow full duplex).

I have tried to blacklist the cdc driver, in order to avoid any possible conflict, but nothing changes.
Additionally, the corresponding network interface does not come up at boot, and needs to be started manually.

The strange thing is that the dongle works perfectly without any disconnection if I use an USB-C-to-USB-A converter and I plug it in one of the USB-A slots.

I have connected to the same USB-C slot an external NVME drive, and that works perfectly, without any single disconnection.

The USB autosuspend feature is disabled (/sys/bus/usb/devices/2-4/power/control is set to on).

Does anybody have a similar issue?

I am using the last 6.2 kernel:

Code:
Linux proxmox 6.2.11-2-pve #1 SMP PREEMPT_DYNAMIC PVE 6.2.11-2 (2023-05-10T09:13Z) x86_64 GNU/Linux

Installed packages are:

Code:
proxmox-ve: 7.4-1 (running kernel: 6.2.11-2-pve)
pve-manager: 7.4-3 (running version: 7.4-3/9002ab8a)
pve-kernel-6.2: 7.4-3
pve-kernel-5.15: 7.4-3
pve-kernel-6.1: 7.3-6
pve-kernel-6.2.11-2-pve: 6.2.11-2
pve-kernel-6.1.15-1-pve: 6.1.15-1
pve-kernel-5.15.107-2-pve: 5.15.107-2
pve-kernel-5.15.102-1-pve: 5.15.102-1
ceph-fuse: 15.2.17-pve1
corosync: 3.1.7-pve1criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown2: 3.1.0-1+pmx4
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-1
libknet1: 1.24-pve2
libproxmox-acme-perl: 1.4.4
libproxmox-backup-qemu0: 1.3.1-1
libproxmox-rs-perl: 0.2.1
libpve-access-control: 7.4-3
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.4-1
libpve-guest-common-perl: 4.2-4
libpve-http-server-perl: 4.2-3
libpve-rs-perl: 0.7.6
libpve-storage-perl: 7.4-2
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 5.0.2-2lxcfs: 5.0.3-pve1
novnc-pve: 1.4.0-1
proxmox-backup-client: 2.4.2-1
proxmox-backup-file-restore: 2.4.2-1
proxmox-kernel-helper: 7.4-1
proxmox-mail-forward: 0.1.1-1
proxmox-mini-journalreader: 1.3-1
proxmox-widget-toolkit: 3.7.0
pve-cluster: 7.3-3
pve-container: 4.4-3
pve-docs: 7.4-2
pve-edk2-firmware: 3.20230228-2
pve-firewall: 4.3-2
pve-firmware: 3.6-5
pve-ha-manager: 3.6.1
pve-i18n: 2.12-1
pve-qemu-kvm: 7.2.0-8
pve-xtermjs: 4.16.0-1
qemu-server: 7.4-3
smartmontools: 7.2-pve3
spiceterm: 3.2-2
swtpm: 0.8.0~bpo11+3
vncterm: 1.7-1
zfsutils-linux: 2.1.11-pve1
 
I have solved the issue adding
Code:
usbcore.quirks=0bda:8156:k
to the kernel command line options.
 
I have solved the issue adding
Code:
usbcore.quirks=0bda:8156:k
to the kernel command line options.
Hi giupo77,
Thanks for this workaround.
I just tested it and it seems to work.

I'll let it run for a few days but I'm hopeful.

In the meantime I had abandoned Proxmox for Ovirt on Oracle Linux, but since Red Hat's announcement that it will no longer make the source code available, there's a risk that OL will change its policy on making the OS available.

I've just seen the announcement of version 8 of Proxmox based on Debian and I thought it would be a good opportunity to test and see if my problem is solved with this new version.

But not yet, I still have the problem with the USB network cards and the Intel i219-LM PCI card.

I think the Proxmox kernel is still an Ubuntu kernel and that's why it's not working. With a Debian kernel I don't have these problems.

Thanks to the workaround, my 2 network cards on the 3 nodes are working.
 
Hi,
Finally, after a few days of testing, I still have 2 USB cards that are randomly disconnected.
I have 3 nodes with 2 USB cards each, out of the 6 cards there are 2 that have this problem and I'm now assuming a hardware problem.

I'm going to replace these 2 cards to confirm, in the meantime I've set up a monitoring script that restarts the down card and vmbr0 when it's detected. It runs every 5 minutes, so for a home lab it's usable, but for production it won't be with the same type of machine.
I'll let you know about stability once the 2 cards have been replaced.
 
How is stability for you now, have the disconnects stopped? I have the same ASIX usb adaptor and am dealing with USB disconnects too.
 
I'm using Proxmox 8.1.3 to host opnsense in a VM on a Lenovo Thinkcentre M910q. The built in ethernet adapter uses an Intel chipset and works flawlessly.

I came across this above issue recently when using a TP-Link UE306 USB3 to ethernet adapter, which uses the AX88179 chipset. The adapter would randomly disconnect anywhere between 10 minutes and 6 hours. I noticed, however, that when making a call via Teams it was particularly awful (disconnected twice during a 1 hour call).
I tried the suggestion above relating to autosuspend and also another suggestion from a lenovo forum (I'm using a Thinkcentre M910q) to set usbcore.quirks in the grub.cfg (from here). Nothing worked.

Gave up and bought a TP-Link UE300 which uses the RTL8153 chipset - absolutely rock solid since being plugged in 3 days ago - no issues whatsoever. I'm still none the wiser as to what was even causing the disconnections and I've not been able to test the USB adapter with other linux distros so not sure if this is isolated to proxmox and/or my hardware.