0

Background:

Running ArchlinuxARM on an oDroid XU4 that uses both the built-in NIC as well as a USB Ethernet dongle (have tried a number of different manufacturers/ chipsets).

Issue:

When I disconnect the Ethernet cable from the USB dongle (ie. the USB dongle remains connected to the system but the carrier signal is lost), the Ethernet USB device drops from the system tree and does not reattach when replugging the Ethernet cable (though the USB port itself stays, the subsystem links back to a usb bus device instead of a net device). The ip link command also reflects the loss of the network interface until the USB dongle itself is unplugged from, then replugged to, the system (a generic udevadm —-trigger does not re-recognize the network device).

For instance,

# When the USB dongle is connected and there is a carrier…
> udevadm trigger —verbose —sysname-match=“eth1”
/sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/net/eth1
# Try to disable auto power control
> sudo echo -ne “on” | tee /sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/net/eth1/power/control
# Disconnect Ethernet cable from the USB dongle and check system tree (wait 30sec after disconnect) …
> ls /sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/net
ls: cannot access '/sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/net': No such file or directory
# Reattach Ethernet cable to the USB dongle and check system tree (wait 30sec after connect) …
> udevadm —-trigger
> ls /sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/net
ls: cannot access '/sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/net': No such file or directory
  • Note: /sys/devices/platform/soc/soc:usb3-0/12000000.usb/xhci-hcd.8.auto/usb4/4-1/4-1.2/4-1.2:2.0/ (the USB bus port itself) persists throughout.

Desired result:

The network interface (“eth1”) remains despite loss of carrier signal (though ip link should report the link as down).

Additional Information

# Kernel module signals deregistration…how to prevent?
> dmesg | tail | grep “eth1” -
cdc_ncm 4-1.2:2.0 eth1: unregister ‘cdc_ncm’ usb-xhci-hcd.8.auto-1.2, CDC NCM (NO ZLP)

System Environment:

uname -a
Linux x.y.z 6.2.10-1-ARCH #1 SMP PREEMPT Fri Apr  7 11:19:04 2023 armv7l GNU/Linux

Thank you in advance.

4
  • Do any of the parent devices of eth1 remain (specifically the 4-1.2:2.0 and the 4-1.2? Commented Apr 25 at 18:13
  • Sorry - will update to be more explicit, but all parent devices remain upon carrier loss.
    – Whee
    Commented Apr 25 at 18:16
  • 1
    Have you tried these adapters on a regular PC? This isn't expected behavior and could be a Pi-specific quirk.
    – Daniel B
    Commented Apr 25 at 19:27
  • Ran this on a laptop using a live image of Fedora 39 (Linux 6.5.6-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 6 19:57:21 UTC 2023 x86_64 GNU/Linux) that did not exhibit the above symptom. Perhaps the issue was addressed in the kernel between 6.2.10 and 6.5.6…will look into the quirks if unable to upgrade kernel in ArchLinuxARM.
    – Whee
    Commented Apr 25 at 21:01

1 Answer 1

0

Confirmed it was a kernel issue. Built Linux 6.5.10 for Archlinux ARM and system no longer demonstrates behavior.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .