USB Gigabit ethernet dongles not working with dhclient

Kernels & Hardware, configuring network, installing services

USB Gigabit ethernet dongles not working with dhclient

Postby dwks » 2015-09-12 21:23

My laptop only has a 100Mbit ethernet port, so I bought two external USB gigabit ethernet dongles in the hope of getting faster ethernet speeds. I have never had trouble with Linux supporting ethernet before, but neither of these devices are working. One is an ASIX AX88179 (by TrendNet) and the other is a Realtek RT8153 (by Anker). When I plug these devices in, I get network devices called enx00e04ca82300 or enxd8eb97b61e4d (instead of eth0/eth1 as I would expect). I can manually set an IP address with "ifconfig enx00e04ca82300 x.x.x.x up" and manually add a route and my network connection works at gigabit speeds. However, the long enx... network device name does not appear to be valid in some sense: tools like dhclient or iptraf or network-manager fail with messages like "no such device" (well, network-manager just hangs). I don't know if it's because the name is so long or because they are not fully registered inside the kernel.

I have vmware workstation installed, and it does some strange things with network devices (setting up bridges for everything). I have disabled its services and see the same behaviour. This looks like a kernel bug to me but it's possible it is a vmware issue. vmware works fine with my wireless and 100Mbit ethernet (eth0 and wlan0).

Realtek device
Some dmesg for the Realtek device:
Code: Select all
[10264.619420] usb 4-3.1.1: reset SuperSpeed USB device number 4 using xhci_hcd
[10264.634651] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8800c4221a00
[10264.634653] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8800c4221a48
[10264.634655] xhci_hcd 0000:00:14.0: xHCI xhci_drop_endpoint called with disabled ep ffff8800c4221a90
[10264.647842] r8152 4-3.1.1:1.0 eth0: v1.06.0 (2014/03/03)
[10264.647902] usbcore: registered new interface driver r8152
[10271.452198] IPv6: ADDRCONF(NETDEV_UP): enx00e04ca82300: link is not ready
[10275.094334] IPv6: ADDRCONF(NETDEV_CHANGE): enx00e04ca82300: link becomes ready


The Realtek device often crashes after just a few gigabytes have been transferred, with dmesg like this:
Code: Select all
[10485.761603] net_ratelimit: 10 callbacks suppressed
[10485.761618] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10488.694340] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10488.711352] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10488.714851] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10489.032867] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10489.616610] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10489.833041] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10490.050052] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10490.484323] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71
[10491.353073] r8152 4-3.1.1:1.0 enx00e04ca82300: Tx status -71

Usually removing and modprobing r8152 resets it, but once it crashed my whole USB subsystem -- every usb device plugged in stopped working, with the exception of my usb keyboard, and rmmod r8152 (even ifconfig down) hung. Support for the USB 3.0 gigabit 8153 Realtek devices (as opposed to the earlier USB 2.0 8152 devices) appears to have been added in Linux 3.14. However, my 3.16 kernel still has r8152 version v1.06.0, while the Realtek website has version v2.x. So I downloaded and built that module, but I see the same behavior:

http://www.realtek.com.tw/downloads/dow ... se#RTL8153
Code: Select all
# ethtool -i enx00e04ca82300
driver: r8152
version: v1.06.0 (2014/03/03)
firmware-version:
bus-info: usb-0000:00:14.0-3.1.4
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
# rmmod r8152 ; insmod ./r8152.ko
# ethtool -i enx00e04ca82300
driver: r8152
version: v2.05.0 (2015/06/09)
firmware-version:
bus-info: usb-0000:00:14.0-3.1.4
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

Several people are having trouble with this device, but I tried all of their suggestions (new module, disconnect at boot):
https://bbs.archlinux.org/viewtopic.php?id=193238
https://bugs.launchpad.net/ubuntu/+sour ... ug/1439361
https://bbs.archlinux.org/viewtopic.php?id=193139


ASIX device
Some dmesg:
Code: Select all
[12588.114774] usb 4-3.1.1: new SuperSpeed USB device number 8 using xhci_hcd
[12588.136268] usb 4-3.1.1: New USB device found, idVendor=0b95, idProduct=1790
[12588.136276] usb 4-3.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12588.136281] usb 4-3.1.1: Product: AX88179
[12588.136285] usb 4-3.1.1: Manufacturer: ASIX Elec. Corp.
[12588.136289] usb 4-3.1.1: SerialNumber: 0000000000073E
[12588.456075] ax88179_178a 4-3.1.1:1.0 eth0: register 'ax88179_178a' at usb-0000:00:14.0-3.1.1, ASIX AX88179 USB 3.0 Gigabit Ethernet, d8:eb:97:b6:1e:4d
[12607.583859] IPv6: ADDRCONF(NETDEV_UP): enxd8eb97b61e4d: link is not ready
[12610.680070] ax88179_178a 4-3.1.1:1.0 enxd8eb97b61e4d: ax88179 - Link status is: 1
[12610.681790] IPv6: ADDRCONF(NETDEV_CHANGE): enxd8eb97b61e4d: link becomes ready
[12610.682522] /dev/vmnet: open called by PID 4743 (vmnet-bridge)
[12610.682541] /dev/vmnet: hub 0 does not exist, allocating memory.
[12610.682574] /dev/vmnet: port on hub 0 successfully opened
[12610.682589] bridge-enxd8eb97b61e4d: up
[12610.682593] bridge-enxd8eb97b61e4d: attached
[12610.882855] userif-3: sent link down event.
[12610.882863] userif-3: sent link up event.
[12645.529291] usb 4-3.1.1: USB disconnect, device number 8
[12645.529634] ax88179_178a 4-3.1.1:1.0 enxd8eb97b61e4d: unregister 'ax88179_178a' usb-0000:00:14.0-3.1.1, ASIX AX88179 USB 3.0 Gigabit Ethernet
[12645.529659] ax88179_178a 4-3.1.1:1.0 enxd8eb97b61e4d: Failed to read reg index 0x0002: -19
[12645.529665] ax88179_178a 4-3.1.1:1.0 enxd8eb97b61e4d: Failed to write reg index 0x0002: -19
[12645.531650] bridge-enxd8eb97b61e4d: disabling the bridge
[12645.545525] bridge-enxd8eb97b61e4d: down
[12645.545540] bridge-enxd8eb97b61e4d: detached
[12645.545887] ax88179_178a 4-3.1.1:1.0 (unregistered net_device): Failed to write reg index 0x0002: -19
[12645.545897] ax88179_178a 4-3.1.1:1.0 (unregistered net_device): Failed to write reg index 0x0001: -19
[12645.545903] ax88179_178a 4-3.1.1:1.0 (unregistered net_device): Failed to write reg index 0x0002: -19


I have not investigated the ASIX device as much. However, my original 100Mbit ethernet has an ASIX chipset (AX88772) and that works perfectly. I have not observed the ASIX device crashing yet so I am using that for now (haven't used it for long yet though). But as before the device name appears to be invalid and I cannot run tools like dhclient.

So... any ideas why two gigabit adapters with completely different chipsets would show up with long device names and support low-level stuff like ARP, ping, and static IPs, but fail with dhclient & network-manager? And the Realtek device seems to like crashing too.
dwk

Seek and ye shall find. quaere et invenies. (Latin by dwks.)

"Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
dwks
 
Posts: 36
Joined: 2007-07-14 03:33
Location: Canada

Return to System configuration

Who is online

Users browsing this forum: No registered users and 8 guests

fashionable