Skip to content

Libcomposite USB Ethernet devices stopped working with 5.x kernels #3862

@hardillb

Description

@hardillb

Describe the bug
When using a Raspberry Pi (Pi Zero or Pi 4) as a USB ECM Ethernet device (a USB Gadget not a host) the Pi starts correctly and sets up usb0 device. The device enumerates correctly on the host device (testing with a Ubuntu 18.04 laptop) and passes enough data to do a DHCP handshake but then no other data is passed after the IP address is assigned

To reproduce

  • Build a SD card image using https://github.com/hardillb/rpi-gadget-image-creator (This script takes a standard raspbian image and boots it under qemu, installs dnsmasq and then adds some scripts and config files using expect). Easy enough to do the same by hand if needed.
  • connect Pi Zero or Pi4 to usb port on host machine (USB-C on the Pi 4 or the left most micro usb socket on Pi Zero)
  • Allow to boot and then try ssh pi@10.55.0.1 (pi should hand out addresses in the 10.55.0.1/255.255.255.248 range to the host)

Expected behaviour
Pi should enumerate as a Ethernet device and the link should be stable.

Actual behaviour
Pi enumerates but the Ethernet link but very little data is passed

System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:

  • Which model of Raspberry Pi? e.g. Pi3B+, PiZeroW
    PiZeroW (but also on Pi4 & PiZero)
  • Which OS and version (cat /etc/rpi-issue)?
    Raspberry Pi reference 2020-08-20
    Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 9a3a10bf1019ebb2d59053564dc6b90068bad27d, stage2
  • Which firmware version (vcgencmd version)?
    Aug 19 2020 17:40:15
    Copyright (c) 2012 Broadcom
    version e90cba19a98a0d1f2ef086b9cafcbca00778f094 (clean) (release) (start)
  • Which kernel version (uname -a)?
    Linux raspberrypi 5.4.51+ I2c1_baudrate being overridden by i2c.conf in 25-Feb-2016 distribution #1333 Mon Aug 10 16:38:02 BST 2020 armv6l GNU/Linux
    Logs
    If applicable, add the relevant output from dmesg or similar.

Additional context
I get same behaviour if I upgrade to the latest available kernel

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions