USB Ethernet issues

Hi I just tried out a usb3.0 to Ethernet adaptor I’ve had for a while now on my ipfire machine and it looks like it doesn’t work well on this linux box, but works fine on the raspberry pi5.

This chip is one of the first ones they had put into Linux. Now I think someone needs to patch it like the Intel drivers need to be:

[root@blktower ~]# ethtool orange0p1
Settings for orange0p1:
	Supported ports: [  ]
	Supported link modes:   Not reported
	Supported pause frame use: No
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: 100Mb/s
	Duplex: Half
	Auto-negotiation: off
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: Unknown
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: yes

[root@blktower ~]# ethtool -i orange0p1
driver: cdc_ncm
version: 6.6.56-ipfire
firmware-version: CDC NCM (NO ZLP)
expansion-rom-version: 
bus-info: usb-0000:00:12.2-4
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

lsusb shows:

Bus 004 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet

a chip that has been around since 2013 and still sold today

The adaptor is a “Ugreen” brand I got off the Zon some time ago.

The driver in rasbain on the pi5 is ax_usb_nic

I find it interesting that the driver is broke in a different way in Ubuntu:

Settings for enxc8a3622b8b60:
	Supported ports: [  ]
	Supported link modes:   Not reported
	Supported pause frame use: No
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Half
	Auto-negotiation: off
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	MDI-X: Unknown
netlink error: Operation not permitted
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: yes
studio@studio-ubuntu:~$ ethtool -i enxc8a3622b8b60
driver: cdc_ncm
version: 6.8.0-48-generic
firmware-version: CDC NCM (NO ZLP)
expansion-rom-version: 
bus-info: usb-0000:00:14.0-3
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

According to this page…

AX88179 is the world’s first USB 3.0 to Gigabit Ethernet controller which integrates USB 3.0 PHY and 10/100/1000Mbps Gigabit Ethernet MAC/PHY in a single chip.

and

The AX88179 is a high performance and highly integrated ASIC which enables a low cost, small form factor, and simple plug-and-play Gigabit Ethernet network connection capability for desktops, notebook PCs, ultrabooks, cradles/port replicators/docking stations, game consoles, digital-home appliances, and any embedded system using a standard USB port.

IMO

  • while could possibily work as “server” level service NIC (IDK), this is designed to be a client class NIC
  • Asix delivered two revisions of this chip, then a another one (which actually is 2.5GBe), after 11 years, probably for a reason
  • USB is the middle man between PCIe and NIC, and for “server” level service NIC is not a good option, rather a bandaid due to hiccups on USB controllers and power settings. Any hiccup on the USB controller delivers erratic behaviour on the network card.
  • at the link source for compile driver is available, dated september 2024. However, due to be recognized, or the driver is part of the upstream kernel, or compile on IPfire is not a path for deliver the module

class of network cards is more of marketing than anything else.
There is nothing wrong with USB ports. especially if the computer is powered with a good supply. Beyond that, all network interfaces are not going to be optimised for this application by default. Neither is any OS of any kind.

I’ll have to update drivers apparently. No big deal, but this is a trend to look at when adding new hardware or setting up a system because the system may or may not set up drivers properly.

once I have eliminated all limiting states from hardware, then I look at network tuning.

another thing I found out looking at it in ubuntu, the driver is initialising at usb2 superspeed (480mbps) which I imagine why its in the mode its in, but the pi5 and the ipfire computer initializes at usb3 @ 5000 Mbps so there might be a usb port setting toggled in the ubuntu machine.

Unfortunately I disagree on both statements :slight_smile:
More capable NIC chips (SFP/SFP+ cage controllers included) have bigger computational power and can be used for offloading part of the network processes from the CPU of the system, starting from Receive-Side Scaling that can offloaded to NIC rather than the OS (the CPU).
While USB is a nice protocol, works fine, have plenty of bandwidth in recent interation, compared to PCIe in latency, bandwidth and CPU closeness is from 2 to 10 steps “worse”, most depending from… the computational power and design refinement of the USB controllers.
I’d use USB-to-NIC adapters only as temporary/emergency solution, considering PCI (not PCIe) a better option if the bandwidth allow it as temporary/emergency solution: while having worse peak performances, IMVHO they are much more reliable and constant compared to USB adapters. Obiviously depending from the chip of the network card (Davicom network adapters in my experience are simply trouble disguised as network card, no matter the interface)

If it’s the goal of this project, fine.
However in my experience by market target network interfaces/chips are designed for a specific purpouse by chip maker/designer.
Also OS/distro have some sort of “address” for the scope of the project: a desktop Linux distro is more oriented to have a “working” condition for the broadest catalog of devices; a server/firewall Linux (and BSD) distro are fare more concentrated on Server/workstation grade hardware about performance, power consumption and stability of performance into base tuning/optimization. This is interest both the hardware company and the server-corporate grade distro team/company.

Moving out from this massive OT… according to your output, your hardware should be orange0p1 and the adapter has this VID/PID 0b95:1790

If the product is correct, it’s stated that USB is 2.0, 100mbit ethernet ad the SoC is an AllWinner H3. It’s a 2014 SoC, 2011 architecture.
If this is correct, in my opinion this hardware is far from ideal as a router on a x86-roots firewall distro.

Compared with a Raspberry Pi4…

ratio is 1:4 as performances, more or less.

I know, this do not solve your issue.

Do you want to tinker on your board, or you’re trying to build a really efficient firewall box?

Its how the interface is named: orange0 is the orange network bridge, and P1 is port 1.

I’ll just compile new drivers since that fixed it in the Ubuntu machine. Since I already went through the trouble of loading build-essentials in ipfire so I can compile my 4 port intel card drivers.

This is a recycled PC and I have no slots left but a PCI slot so I rather temporarily use a usb3 for that extra port on a computer I’m going to replace eventually instead of trying to find a dinosaur pCI nic card.

Btw, I left it in my msi n200 machine overnight with windows running and now windows update is changing the driver. So there is something up with the older drivers everywhere and its not linux specific.

IPFire does not work on AllWinner H3 anymore because this is a Armv7 (32bit).
You need at least an AllWinner H5: www.ipfire.org - ARM

I use a OrangePi R1 Plus which has two Gigabit Interfaces (one native and one USB3) But the Rockchip RK3328 is also not powerfull enough for full gigabit firewalling.

Which IPFire version have you installed. There was a known Problem in some Asix drivers before kernel 6.6.32

1 Like

Well Arne, I’m on the current version:

[root@blktower ~]# uname -srm
Linux 6.6.56-ipfire x86_64

IPFire 2.29 (x86_64) - core189

I know its the growing pains of the Kernel evolving. In a ubunu12.04 machine I have that I never updated it because its a code machine only not connected to a network, recognises and connects at 1000 full duplex. So it has to be drivers and I’m sure I’m not the only one. But this is temporary until I build up the next machine.

I have to test this asix crap again which is a pain because there are multiple AX88179* chips that even use different kernel modules.

I had tested the module with the reset problems again and it works with the current nightly build kernel (6.6.62-ipfire)

Bus 004 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
DRIVER=ax88179_178a
MODALIAS=usb:v0B95p1790d0100dcFFdscFFdp00icFFiscFFip00in00
Settings for green0:
	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
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: Yes
	Link partner advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Auto-negotiation: on
	Port: MII
	PHYAD: 3
	Transceiver: internal
	Supports Wake-on: pg
	Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: yes

also the ethtools output looks correct.

1 Like

Out of curiosity and because I need to purchase a new USB-to-Ethernet adapter…

What is a better chip for the adapter? (or a better brand of USB-to-Ethernet adapter?)

USB dongles are often problematic. (or often the usb root on some boards)
I use an older asix 100Mbit USB2 and some Realtek based 1GBit and 2,5Gbit USB3 adaptes.

1 Like

Its only temporary anyways for me.

But that chip is in things currently sold, so you are kind of forced in a way to support it.

Btw, I found out why my cpu chart don’t work. I have a dead core in my cpu, so I bought a used supermicro server for $160 from one of the server recyclers,