All,
I am trying to get an ASIX AX88179 USB 3.0 dual Ethernet NIC dongle to
work on an SFF system running Linux 4.20.13. The NICs are properly
detected and named eth3 and eth4 by udev and I can configure and
administer them like any other NIC, but neither interface is able to
fully establish a link beat and exchange Ethernet frames with any
attached device.
I checked to see if the drivers were still maintained and it appears,
according to https://github.com/FreddyXin/ax88179_178a, that the drivers
were last maintained in February 2013. As far as I can tell, I've
selected all the right Kconfig options for my kernel; I do see some
stuff under CONFIG_GENERIC_PHY and CONFIG_PHYLIB that might be relevant
but the documentation is inconsistent.
lsusb -v -t:
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
|__ Port 2: Dev 2, If 0, Class=hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=ax88179_178a, 5000M
|__ Port 2: Dev 4, If 0, Class=vend., Driver=ax88179_178a, 5000M
lspci:
04:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB
Host Controller
Kconfig:
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
dmesg snippets:
[ 0.367286] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 0.367289] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
bus number 3
[ 0.473915] xhci_hcd 0000:04:00.0: hcc params 0x0200f180 hci version
0x96 quirks 0x0000000000080000
[ 0.474405] xhci_hcd 0000:04:00.0: xHCI Host Controller
[ 0.474407] xhci_hcd 0000:04:00.0: new USB bus registered, assigned
bus number 4
[ 0.474409] xhci_hcd 0000:04:00.0: Host supports USB 3.0 SuperSpeed
[ 0.474443] usb usb4: We don't know the algorithms for LPM for this
host, disabling LPM.
[ 0.474551] hub 4-0:1.0: USB hub found
[ 0.474561] hub 4-0:1.0: 2 ports detected
[ 1.202211] usb 4-2: new SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 1.371725] hub 4-2:1.0: USB hub found
[ 1.371939] hub 4-2:1.0: 4 ports detected
[ 1.818569] usb 4-2.1: new SuperSpeed Gen 1 USB device number 3 using
xhci_hcd
[ 2.525608] ax88179_178a 4-2.1:1.0 eth1: register 'ax88179_178a' at
usb-0000:04:00.0-2.1, ASIX AX88179 USB 3.0 Gigabit Ethernet,
00:0a:cd:2f:24:c9
[ 2.647403] usb 4-2.2: new SuperSpeed Gen 1 USB device number 4 using
xhci_hcd
[ 3.285773] ax88179_178a 4-2.2:1.0 eth3: register 'ax88179_178a' at
usb-0000:04:00.0-2.2, ASIX AX88179 USB 3.0 Gigabit Ethernet,
00:0a:cd:2f:24:c8
[ 3.294077] ax88179_178a 4-2.2:1.0 eth4: renamed from eth3
[ 3.310712] ax88179_178a 4-2.1:1.0 eth3: renamed from eth1
[ 9.887256] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0000: -110
[ 15.007258] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0001: -110
[ 20.127228] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0009: -110
[ 1431.076463] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready
[ 1436.253354] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0000: -110
[ 1441.373148] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0001: -110
[ 1446.493014] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0009: -110
[ 1648.735215] ax88179_178a 4-2.1:1.0 eth3: ax88179 - Link status is: 1
[ 1648.742353] IPv6: ADDRCONF(NETDEV_CHANGE): eth3: link becomes ready
[ 1958.264142] ax88179_178a 4-2.1:1.0 eth3: ax88179 - Link status is: 0
[ 1967.224863] ax88179_178a 4-2.1:1.0 eth3: ax88179 - Link status is: 1
[ 1972.293726] ax88179_178a 4-2.1:1.0 eth3: Failed to write reg index
0x0002: -110
[ 1995.259117] ax88179_178a 4-2.1:1.0 eth3: ax88179 - Link status is: 1
[ 1997.892589] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0000: -110
[ 2003.012309] ax88179_178a 4-2.1:1.0 eth3: Failed to write reg index
0x0002: -110
[ 2008.132053] ax88179_178a 4-2.1:1.0 eth3: Failed to write reg index
0x0002: -110
[ 2032.126090] ax88179_178a 4-2.1:1.0 eth3: ax88179 - Link status is: 1
[ 2171.196246] ax88179_178a 4-2.1:1.0 eth3: Failed to read reg index
0x0002: -110
[ 2176.315997] ax88179_178a 4-2.1:1.0 eth3: Failed to write reg index
0x0002: -110
[ 2182.038412] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready
The dmesg implies that either the driver or the NICs themselves are not
able to get a link beat with the connected device (a TP-Link gigabit
switch). I tried to interrogate the PHY on each NIC with mii-diag and
got the following:
Basic registers of MII PHY #3: 0000 0000 0000 0000 0000 0000 0000 0000.
No MII transceiver present!.
I checked with ethtool and it returned the following info about each NIC:
ethtool:
Settings for eth3:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 3
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
Settings for eth4:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 3
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
I'm at a loss about what could be wrong - I tried swapping patch cables
and ports on the switch and tested both NICs, and neither of them would
fully come up and exchange frames.
Thanks,
Brad