ASIX Gigabit USB 3.0 Adapter

This device: https://oemdrivers.com/network-asix-ax88179-driver

On the same box it works plug-and-play with windows10.

On openSUSE, upon connecting it I get:

[92468.690359] usb 6-1.4: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[92468.964425] usb 6-1.4: New USB device found, idVendor=**0b95**, idProduct=**1790**, bcdDevice= 2.00
[92468.964429] usb 6-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[92468.964431] usb 6-1.4: Product: AX88179A
[92468.964433] usb 6-1.4: Manufacturer: ASIX
[92468.964435] usb 6-1.4: SerialNumber: 00809D09
[92469.101756] ax88179_178a 6-1.4:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
... (a dozen or more similar lines)
[92469.682584] ax88179_178a 6-1.4:2.0 (unnamed net_device) (uninitialized): Failed to write reg index 0x0000: -32
[92469.682871] ax88179_178a 6-1.4:2.0 eth1: register 'ax88179_178a' at usb-0000:09:00.3-1.4, ASIX AX88179 USB 3.0 Gigabit Ethernet, ca:b6:2f:bd:a8:53
[92469.763511] ax88179_178a 6-1.4:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0002: -32
... (a dozen or more similar lines)
[92470.344282] ax88179_178a 6-1.4:2.1 (unnamed net_device) (uninitialized): Failed to write reg index 0x0000: -32
[92470.344580] ax88179_178a 6-1.4:2.1 eth2: register 'ax88179_178a' at usb-0000:09:00.3-1.4, ASIX AX88179 USB 3.0 Gigabit Ethernet, ca:b6:2f:bd:a8:53
[92470.344615] usbcore: registered new interface driver ax88179_178a
[92470.351539] usbcore: registered new interface driver cdc_ncm
[92470.355301] usbcore: registered new interface driver cdc_wdm
[92470.358127] usbcore: registered new interface driver cdc_mbim
[92470.413168] ax88179_178a 6-1.4:2.1 eth2: Failed to write reg index 0x0006: -32
[92471.407480] ax88179_178a 6-1.4:2.0 eth1: Failed to write reg index 0x0006: -32
[92472.463577] ax88179_178a 6-1.4:2.0 eth1: unregister 'ax88179_178a' usb-0000:09:00.3-1.4, ASIX AX88179 USB 3.0 Gigabit Ethernet
[92472.484717] ax88179_178a 6-1.4:2.0 eth1 (unregistered): Failed to write reg index 0x0002: -71
[92472.485017] ax88179_178a 6-1.4:2.0 eth1 (unregistered): Failed to write reg index 0x0001: -71
[92472.485326] ax88179_178a 6-1.4:2.0 eth1 (unregistered): Failed to write reg index 0x0002: -71
[92472.485368] ax88179_178a 6-1.4:2.1 eth2: unregister 'ax88179_178a' usb-0000:09:00.3-1.4, ASIX AX88179 USB 3.0 Gigabit Ethernet
[92472.512588] ax88179_178a 6-1.4:2.1 eth2 (unregistered): Failed to write reg index 0x0002: -71
[92472.512885] ax88179_178a 6-1.4:2.1 eth2 (unregistered): Failed to write reg index 0x0001: -71
[92472.513192] ax88179_178a 6-1.4:2.1 eth2 (unregistered): Failed to write reg index 0x0002: -71
[92473.092008] usb 6-1.4: reset SuperSpeed Gen 1 USB device number 4 using xhci_hcd

After disconnecting and connecting again, I get:

[92473.167127] usb 6-1.4: device firmware changed
[92473.167472] usb 6-1.4: USB disconnect, device number 4
[92473.357494] usb 6-1.4: new SuperSpeed Gen 1 USB device number 5 using xhci_hcd
[92473.530294] usb 6-1.4: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 2.00
[92473.530297] usb 6-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[92473.530299] usb 6-1.4: Product: AX88179A
[92473.530301] usb 6-1.4: Manufacturer: ASIX
[92473.530303] usb 6-1.4: SerialNumber: 00809D09
[92474.198847] ax88179_178a 6-1.4:1.0 (unnamed net_device) (uninitialized): Failed to read reg index 0x0040: -32
[92474.510695] ax88179_178a 6-1.4:1.0 eth1: register 'ax88179_178a' at usb-0000:09:00.3-1.4, ASIX AX88179 USB 3.0 Gigabit Ethernet, f8:e4:3b:80:9d:09
[92474.540353] ax88179_178a 6-1.4:1.0 eth2: renamed from eth1
[92541.999697] ax88179_178a 6-1.4:1.0 eth2: unregister 'ax88179_178a' usb-0000:09:00.3-1.4, ASIX AX88179 USB 3.0 Gigabit Ethernet
[92542.025541] ax88179_178a 6-1.4:1.0 eth2 (unregistered): Failed to write reg index 0x0002: -71
[92542.025838] ax88179_178a 6-1.4:1.0 eth2 (unregistered): Failed to write reg index 0x0001: -71
[92542.026144] ax88179_178a 6-1.4:1.0 eth2 (unregistered): Failed to write reg index 0x0002: -71
[92542.715747] usb 6-1.4: USB disconnect, device number 5

With the adapter connected:

:~> inxi -nx
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK PRIME B450M-A driver: r8169 v: kernel port: f000
    bus-ID: 07:00.0
  IF: eth0 state: up speed: 1000 Mbps duplex: full mac: d4:5d:64:34:92:dd
  Device-2: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a
    bus-ID: 6-2.4:7
  IF: eth2 state: down mac: f8:e4:3b:80:9d:09
:~>

Note: first time I connected it, it got named eth1, second time eth2 as above.

On manufacturer’s site https://www.asix.com.tw/en/support/download there is a source driver for:

Linux kernel 5.x/4.x/3.x/2.6.x Driver
For all Android systems, Linux kernel 2.6.14 and later
Version 1.20.0 Release Date 2020-04-27 File Size 16.0 KB KB

Driver readme file:

============================================================================
ASIX AX88179_178A USB 3.0/2.0 Gigabit Ethernet Network Adapter
Driver Compilation & Configuration on Linux

================
Prerequisites


Note: Please make sure the kernel is built with one of the “Support for
Host-side, EHCI, OHCI, or UHCI” option support.

================
File Description

README This file
ax88179_178a.c AX88179_178A Linux driver main file
ax88179_178a.h AX88179_178A Linux driver header file
Makefile AX88179_178A driver make file
COPYING GNU GERNERAL LICENSE

===========================
Conditional Compilation Flag

================
Getting Start

  1. Extract the compressed driver source file to your temporary directory by the
    following command:
[root@localhost template]# tar -xf DRIVER_SOURCE_PACKAGE.tar.bz2
  1. Now, the driver source files should be extracted under the current directory.
    Executing the following command to compile the driver:

    [root@localhost template]# make

  2. If the compilation is done, the ax88179_178a.ko will be created under the current
    directory.

  3. If you want to use modprobe command to mount the driver, executing the
    following command to install the driver into your Linux:

[root@localhost template]# make install

================
Usage

  1. If you want to load the driver manually, go to the driver directory and
    execute the following commands:
[root@localhost template]# modprobe usbnet
[root@localhost template]# insmod ax88179_178a.ko

If you want to unload the driver, just executing the following command:

[root@localhost anywhere]# rmmod axax88179_178a

===============
DRIVER PARAMETERS

The following parameters can be set when using insmod.

msg_enable=0xNNNNNNN
specifies the msg_enable of usbnet.

example: insmod ax88179_178a.ko msg_enable=0x00000000

bsize=xx (0~24)
specifies the the Rx Bulk In Queue size(KB).
The maximum value for this parameters is 24.
The default value is -1 that will use the driver default setting (18K for USB3.0).

example: insmod ax88179_178a.ko bsize=12

ifg=xxx (0~255)
specifies the the Rx Bulk In Queue Inter-Frame-Gap timer. (The timer’s unit is 0.25us)
The maximum value for this parameters is 255.
The default value is -1 that will use the driver default setting (255 for USB3.0).

bEEE=x (0 or 1)
Enable/Disable the Ethernet EEE function.
0: Disable the EEE
1: Enalbe the EEE
The default value is 0 that will disable the EEE function.

bGETH=x (0 or 1)
Enable/Disable the Green Ethernet function.
0: Disable the Green Ethernet
1: Enalbe the Green Ethernet
The default value is 0 that will disable the Green Ethernet function.

I couldn’t find any recent references to installing this, nor a pre-compiled driver in openSUSE software search.

Compiling seems to finish OK:

**:~/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source #** make 
make -C /lib/modules/5.3.18-150300.59.46-default/build M=/home/blimmer/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source modules 
make[1]: Entering directory '/usr/src/linux-5.3.18-150300.59.46-obj/x86_64/default' 
  CC [M]  /home/blimmer/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source/ax88179_178a.o 
  Building modules, stage 2. 
  MODPOST 1 modules 
  CC      /home/blimmer/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source/ax88179_178a.mod.o 
  LD [M]  /home/blimmer/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source/ax88179_178a.ko 
make[1]: Leaving directory '/usr/src/linux-5.3.18-150300.59.46-obj/x86_64/default' 
**:~/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source #** make install 
su -c "cp -v ax88179_178a.ko /lib/modules/5.3.18-150300.59.46-default/kernel/drivers/usb/net && /sbin/depmod -a" 
'ax88179_178a.ko' -> '/lib/modules/5.3.18-150300.59.46-default/kernel/drivers/usb/net' 
**:~/Downloads/AX88179_178A_Linux_Driver_v1.20.0_source #**

but the driver is misnamed as net, which should be the folder, instead of ax88179_178a.ko.

So I created the folder and moved the renamed module there. But:

**#** modprobe ax88179_178a.ko 
modprobe: FATAL: Module ax88179_178a.ko not found in directory /lib/modules/5.3.18-150300.59.46-default 
**#**

Probably because I used the .ko extension. Anyway, I copied the .ko file to the …59.46-default parent directory and:

**#** modprobe ax88179_178a 
**#
[FONT=monospace]**#** lsmod | grep ax 
**ax**88179_178a           28672  0 
usbnet                 53248  3 cdc_mbim,cdc_ncm,**ax**88179_178a 
mii                    16384  2 usbnet,**ax**88179_178a 
usbcore               311296  8 xhci_hcd,usbnet,usbhid,cdc_mbim,cdc_ncm,cdc_wdm,xhci_pci,**ax**88179_178a 
**#**
**[/FONT]

But upon inserting the adapter dmesg reports the same problem:

[96941.262324] usb 6-2.4: new SuperSpeed Gen 1 USB device number 9 using xhci_hcd 
[96941.433107] usb 6-2.4: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 2.00 
[96941.433111] usb 6-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
[96941.433113] usb 6-2.4: Product: AX88179A 
[96941.433114] usb 6-2.4: Manufacturer: ASIX 
[96941.433116] usb 6-2.4: SerialNumber: 00809D09 
[96942.103236] ax88179_178a 6-2.4:1.0 (unnamed net_device) (uninitialized)**: Failed to read reg index 0x0040: -32**
[96942.415378] ax88179_178a 6-2.4:1.0 eth1: register 'ax88179_178a' at usb-0000:09:00.3-2.4, ASIX AX88179 USB 3.0 Gigabit Ethernet, f8:e4:3b:80:9d:09 
[96942.440615] ax88179_178a 6-2.4:1.0 eth2: renamed from eth1

Configured it (renamed to eth2, see above) as DHCP in Yast network module (I use wicked), exited, and got:

[97447.410141] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97447.410153] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97447.410993] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97447.884533] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97447.884545] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97447.885352] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97505.028192] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97505.028203] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97505.029067] Lockdown: Zypp-main: /dev/mem,kmem,port is restricted; see man kernel_lockdown.7 
[97521.943662] ax88179_178a 6-2.4:1.0 eth3: renamed from eth2 
[97523.997467] r8169 0000:07:00.0 eth0: Link is Down 
[97525.513150] Generic FE-GE Realtek PHY r8169-700:00: attached PHY driver [Generic FE-GE Realtek PHY] (mii_bus:phy_addr=r8169-700:00, irq=IGNORE) 
[97525.721706] r8169 0000:07:00.0 eth0: Link is Down 
[97528.697603] r8169 0000:07:00.0 eth0: Link is Up - 1Gbps/Full - flow control rx/tx

Which seems good, but knemo says eth2 not connected. Got into Yast again, and eth2 is still there, but now there is a new device:

AX88179 Gigabit Ethernet
(Not connected)
MAC : f8:e4:3b:80:9d:09
BusID : 6-2.4:1.0
Device name: eth3

And now I don’t know what to do. Any help appreciated.

Thanks

Driver is in kernel since kernel 3.x…
https://cateee.net/lkddb/web-lkddb/USB_NET_AX88179_178A.html

https://github.com/FreddyXin/ax88179_178a/issues/6

Try an USB 2 port?

Hi
I have two of them connected here running without issues (I’m on Tumbleweed, put can plug them into Leap 15.3 and they work as well)…


inxi -Nxxz

Network:   Device-1: Intel Ethernet I218-LM vendor: Hewlett-Packard driver: e1000e v: kernel port: 6040 bus-ID: 00:19.0
           chip-ID: 8086:15a0
           Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 v: kernel port: 3000 bus-ID: 07:00.0
           chip-ID: 10ec:8168
           Device-3: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 v: kernel port: 2000 bus-ID: 08:00.0
           chip-ID: 10ec:8168
           Device-4: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a bus-ID: 2-3:2 chip-ID: 0b95:1790
           Device-5: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a bus-ID: 2-4:3 chip-ID: 0b95:1790

I only use them for virtual machines on my network, as well as two bridges.

Thank you guys for replying.

This is a puzzle. I’ve tried the adapter in 4 different openSUSE computers:

1 running 15.3 and the vendor driver;
2 running 15.3 with kernel driver
1 running 15.2 with kernel driver

None worked, all gave the same error.

I also tried USB3 and USB2 ports, both in the case front ports and in the back motherboard ports. Also a 2.0 hub that would take the adapter without complaining but was underpowered to run even one 2.0 pendrive.

On github issues linked by Sauerland (thanks!) this post https://github.com/FreddyXin/ax88179_178a/issues/6#issuecomment-255691448 seems to imply that the kernel driver may still be in use, that the compiled kernel should be referenced in /etc/modules-load.d/<driver name>.conf. I tried this, creating the (text) conf file listed below

:/etc/modules-load.d> ls -al 
total 8 
drwxr-xr-x 1 root root   58 fev 17 20:26 **.**
drwxr-xr-x 1 root root 5350 fev  8 20:30 **..**
-rw-r--r-- 1 root root   14 fev 17 20:26 **ax88179_178a.conf** 
-rw-r--r-- 1 root root    9 jul 11  2021 i2c-dev.conf 
:/etc/modules-load.d>

containing just the word ax88179_178a but no joy after modprobe and even a reboot.

Is it possible that this adapter is slightly different from Malcolm’s, enough not to function? But everything is the same.

Mine:


inxi -Nxxx 
**Network:**
 ... 
 **Device-2:** ASIX AX88179 Gigabit Ethernet **type:** USB **driver:** **ax88179_178a** 
    **bus-ID:** 1-8:5 **chip-ID:** **0b95:1790** **class-ID:** ff00 **serial:** 00809D09

Malcolm’s:

Device-4: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a bus-ID: 2-3:2 chip-ID: 0b95:1790
Device-5: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a bus-ID: 2-4:3 chip-ID: 0b95:1790

Oh, well. I think I’ll give it to my daughter (she has a windows laptop without ethernet) and research more next time. Or else wait for 15.4.

Thank you all very much.

Bruno

@ Malcolm: just noticed that in dmesg the product name has an A at the end.


[92468.690359] usb 6-1.4: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[92468.964425] usb 6-1.4: New USB device found, idVendor=**0b95**, idProduct=**1790**, bcdDevice= 2.00
[92468.964429] usb 6-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[92468.964431] usb 6-1.4: Product: AX88179**A**
[92468.964433] usb 6-1.4: Manufacturer: ASIX

Yours does too? AFAIK if the product ID is the same (1790) then the devices are the same.

Hi
Correct, I have no configuration, just plug and play here. I use them as passthough interfaces with static ip’s. Can you try setting a static ip address route etc and see if that helps. I will try some more tests here on a Leap system.

Hi
So doesn’t seem to like DHCP… static working fine on openSUSE Leap 15.3.


inxi -nx
Network:   Device-1: Intel 82579LM Gigabit Network driver: e1000e v: 3.2.6-k port: f080 bus ID: 00:19.0 
           IF: eth0 state: up speed: 1000 Mbps duplex: full mac: dc:fe:07:50:51:c1 
           Device-2: Intel 82574L Gigabit Network driver: e1000e v: 3.2.6-k port: c000 bus ID: 04:00.0 
           IF: eth1 state: down mac: dc:fe:07:50:51:c0 
           Device-3: ASIX AX88179 Gigabit Ethernet type: USB driver: ax88179_178a bus ID: 2-2:2 
           IF: eth2 state: up speed: 1000 Mbps duplex: full mac: 28:ee:52:01:68:2f 
           IF-ID-1: vlan5 state: down mac: dc:fe:07:50:51:c0 


ip addr show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 28:ee:52:01:68:2f brd ff:ff:ff:ff:ff:ff
    altname enp0s20u2
    inet xxx.xxx.xxx.xxx/24 brd xxx.xxx.xxx.xxx scope global eth2
       valid_lft forever preferred_lft forever

[QUOTE=malcolmlewis;3107920]Hi
So doesn’t seem to like DHCP… static working fine on openSUSE Leap 15.3.

Thanks, Malcolm. I’m pretty sure I tried a fixed IP at the beginning, but I’ll give it another go - and see if the configuration keeps when unplugging and plugging it back again.

[quote="“brunomcl,post:9,topic:149859”]

Hi
It should do, I’m using wicked not NetworkManager. Can you confirm what your using?

I’m using wicked, it’s a desktop.