Help needed getting ASIX AX88179 usb ethernet adapter to work on FW with linux

Hi. I received my i7-1165 DIY unit with BIOS 03.07 yesterday and did a fresh installation of POP!_OS 22.04 LTS which uses kernel 5.16.19 and my two network dongles with the ASIX AX88179 chipset don’t get link. A Realtek chip based adapter does work. I get the same results booting Ubuntu 20.04 LTS with kernel 5.13.0-40 from usb on the FW. The two usb-a adapters worked out of the box with the same POP!_OS and Ubuntu images booting from usb on my 2012 MacBook Pro.

Update: The ASIX usb-a adapter worked on my mips based router running OpenWrt as well. It is looking like the frame.work computer may be the issue but what specifically and why?

Here is some data I collected:

output of a few commands and dmesg excerpts
sm@pop-os:~$ ip a
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: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 12:b8:4f:xx:xx:xx brd ff:ff:ff:ff:ff:ff permaddr 82:09:f3:xx:xx:xx
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 26:e4:4c:xx:xx:xx brd ff:ff:ff:ff:ff:ff permaddr 92:bb:3a:xx:xx:xx
4: wlp170s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether bc:09:1b:xx:xx:xx brd ff:ff:ff:ff:ff:ff
sm@pop-os:~$ sm@pop-os:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Bus 003 Device 002: ID 0bda:5634 Realtek Semiconductor Corp. Laptop Camera
Bus 003 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
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

sm@pop-os:~$ lshw
...
  *-network:0
       description: Ethernet interface
       physical id: b
       bus info: usb@2:1
       logical name: eth0
       serial: 12:b8:4f:xx:xx:xx
       size: 10Mbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=off broadcast=yes driver=ax88179_178a driverversion=5.16.19-76051619-generic duplex=half link=no multicast=yes port=MII speed=10Mbit/s
  *-network:1
       description: Ethernet interface
       physical id: c
       bus info: usb@2:1
       logical name: eth1
       serial: 26:e4:4c:xx:xx:xx
       size: 10Mbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=off broadcast=yes driver=ax88179_178a driverversion=5.16.19-76051619-generic duplex=half link=no multicast=yes port=MII speed=10Mbit/s

sm@pop-os:~$ sudo dmesg
[    0.000000] microcode: microcode updated early to revision 0x88, date = 2021-03-31
[    0.000000] Linux version 5.16.19-76051619-generic (jenkins@warp.pop-os.org) (gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #202204081339~1649696161~22.04~091f44b SMP PREEMPT Mon Apr 11 17
...
[    0.000000] DMI: Framework Laptop/FRANBMCP0B, BIOS 03.07 12/14/2021
...
[    2.206285] usb 2-1: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 2.00
[    2.206288] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.206289] usb 2-1: Product: AX88179A
[    2.206291] usb 2-1: Manufacturer: ASIX
[    2.206291] usb 2-1: SerialNumber: 008F857D
[    2.315043] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[    2.322188] usb 3-10: new full-speed USB device number 4 using xhci_hcd
[    2.326797] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[    2.473207] usb 3-10: New USB device found, idVendor=8087, idProduct=0032, bcdDevice= 0.00
[    2.473216] usb 3-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.541730] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.652419] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to read reg index 0x0006: -32
[    2.652429] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): invalid MAC address, using random
[    2.662864] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0006: -32
[    2.673293] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0005: -32
[    2.683491] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.695504] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.705901] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.716408] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.726919] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[    2.737211] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.748917] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[    2.759271] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to read reg index 0x0001: -32
[    2.769972] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    2.780328] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x001f: -32
[    2.790883] ax88179_178a 2-1:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0019: -32
[    2.898279] ax88179_178a 2-1:2.0 eth0: register 'ax88179_178a' at usb-0000:00:0d.0-1, ASIX AX88179 USB 3.0 Gigabit Ethernet, 82:09:f3:ba:8d:5d
[    3.040988] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[    3.051394] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[    3.265964] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[    3.376867] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to read reg index 0x0006: -32
[    3.376878] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): invalid MAC address, using random
[    3.387212] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0006: -32
[    3.397538] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0005: -32
[    3.611328] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x000e: -32
[    3.623288] ax88179_178a 2-1:2.1 (unnamed net_device) (uninitialized): Failed to read reg index 0x0000: -32
[    3.623595] ax88179_178a 2-1:2.1 eth1: register 'ax88179_178a' at usb-0000:00:0d.0-1, ASIX AX88179 USB 3.0 Gigabit Ethernet, 92:bb:3a:bd:b2:26
[    3.668294] usbcore: registered new interface driver ax88179_178a
[    3.670978] usbcore: registered new interface driver cdc_ether
[    3.672423] usbcore: registered new interface driver cdc_ncm
[    3.726579] system76_acpi: loading out-of-tree module taints kernel.
[    3.726591] system76_acpi: module verification failed: signature and/or required key missing - tainting kernel
[    3.728056] system76: Model does not utilize this driver
[    3.793786] usbcore: registered new interface driver system76-io
...
[   19.133752] ax88179_178a 2-1:2.1 eth1: Failed to read reg index 0x0000: -71
[   19.140752] ax88179_178a 2-1:2.1 eth1: Failed to read reg index 0x0001: -71
[   19.147751] ax88179_178a 2-1:2.1 eth1: Failed to read reg index 0x0009: -71
[   19.154749] ax88179_178a 2-1:2.1 eth1: Failed to read reg index 0x000a: -71
[   19.161760] ax88179_178a 2-1:2.1 eth1: Failed to read reg index 0x0004: -71

Any ideas for what is wrong or what to look at or try to get it working?

Thanks in advance.

Hi @Spence,

You’re not the only having this issue with this particular adapter. However, the problem should not be related to the laptop. I can confirm a similar issue with yours on Manjaro and kernel 5.15.38-1-MANJARO, here’s the output from modprobe -w:

[  208.745842] ax88179_178a 2-2:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0000: -32
[  208.758812] ax88179_178a 2-2:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[  208.770272] ax88179_178a 2-2:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
[  208.982744] ax88179_178a 2-2:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0001: -32
[  209.095365] ax88179_178a 2-2:2.0 (unnamed net_device) (uninitialized): Failed to read reg index 0x0001: -32

Here’s what I did to solve it:

  1. searched and installed the driver for ax88179 from AUR: AUR (en) - asix-ax88179-dkms
  2. noticed that the output from dmesg was the same as before
  3. found and removed the module from the kernel with
lsmod | grep ax88
sudo modprobe -r ax88179_178a

After doing that, the adapter worked and recognized the full 1000Mbit connection. In my case, this solution won’t persist reboots because I have to probably blacklist the module and burn with mkinitcpio (your case with PopOS! might be different).

I suggest checking out how to install the driver on PopOS! and see if that brings the device to life. If not, try unloading the module from the kernel.

Alternatively, checkout the official driver from ASIX: ASIX Electronics Corporation

Good luck!

1 Like

Thanks @Ioannis.

Edit: I spoke too soon. I rebooted and the Asix network adapters did not work but found a process to get the built-in driver to work. It looks like at this point, with the standard kernel modules or perhaps provided by the distro, If I modprobe -r ax88179_178a , open the network setting gui and then plug in the adapter, it is recognized and it gets link and the name changes. Once I slide the slider to “on” it gets an IP address and transceives traffic. This also depends on an existing connection profile being set-up and having the control panel open to “Network”. Switching between multiple interfaces with the cable, I also have to select it in the app in order for it to go active. Perhaps this is an intended feature for security so a 3rd party cannot plug an adapter in and cause traffic to flow without a logged in user making an active choice. It looks like the modprobe -r is still needed once after every boot. Being new to linux desktop, I don’t know if any of this is normal and expected but, - oh wait, the rtl adapters/driver don’t behave like this. Perhaps figuring out how to build and install Asix drivers might help , but be annoying to maintain after kernel updates.

Original reply:
I saw your message and started to go through it and try some commands and I noticed my ax88179 adapter was blinking like it was transceiving traffic and sure enough it is working! Yay! I did not make any changes but I have installed updates that the Pop!_OS update manager provided. I’ve been reviewing the list before approving the updates and I haven’t seen any that look to be network or driver related and they haven’t been asking to reboot. Either way something changed to get the adapters working. I actually have two different units from different companies and both work as of this afternoon with the included dkms drivers.
I downloaded and tried to build the ASIX vendor driver a couple weeks ago but ran into compile/build errors. I’m new at linux and 22.04 is new so, after not finding a quick solution, I decided to wait for help or Debian/Ubuntu/Pop!_OS to magically fix it for me.

As a side note, my Intel AX210 wifi did not work on initial installation of PoP!_OS so I installed the drivers recommended as a work-around and had to reinstall after an update with a new kernel version. A second update broke connectivity again but the fix was to remove the work-around as the built-in driver worked at that point and has since.

Thanks again! I may need the info you provided yet. We’ll see. :slight_smile: