Using Ethernet over USB-C for Raspberry Pi 4B

I have a Raspberry Pi 4B which I am trying to install OpenWRT on. I was able to use the OpenWRT image for Raspberry Pi 4B, however I am not able to get the Ethernet over USB-C to work, and I cannot get the device to recognise the USB-C port as a network interface.

Could someone advise how to set up the router to use ethernet over USB?

The USB-C port on the Pi is for power only.

You can use the USB 3 (type A) ports to add a USB ethernet adapter.


I am actually a bit curious, how did you power up the Pi to begin with while at the same time trying to get ethernet on the USB-C connector?

There are usb-c "hubs" with power pass through, most have an ethernet port integrated into them too.

1 Like

This is surprising, but the Pi's USB-C port actually does take data. I've literally been using one as a device attached to my iPad for a different project running Ubuntu.

The problem seems to be that the g_ether module doesn't seem to be loading on startup. I am able to manually load it and then connect via the usb0 interface, but the interface gets disabled on reboot.

I connected a USB-C data cable to my computer. The Pi drew power from the USB-C, and when the Ethernet-over-USB worked I was able to ssh into it as well.

1 Like

Interesting, well the usb-c has in the schematics uusb_d_n and uusb_d_p connected to somewhere so it seems that it is a doable solution.

They have written (usb2) in the connector so wonder if that means they run it as a camouflaged usb2 data standard rate on a usb3 usb-c connector?

This is certainly new to me.... I didn't realize that the Pi4 supported data over the USB port. That said, the linked article describes using this interface in gadget mode.

I've never used gadget mode, so I can't give any specific advice. But, there is an article about this:

and that seems to suggest that you need to install kmod-usb-gadget-eth (Kernel support for USB Ethernet Gadget)

Have you done that?

1 Like

Well it isn’t a official approved way of doing it by Raspberry, probably for some reason…

The biggest reason I can think of is the stable 15W that is needed to power the 4B isn’t easily found outside a dumb formal 15W PSU.

There isn’t really any official doc where those connections actually go.

The schematic shows that the port is USB-C (USB2 only). It shows that only Dp1/Dp2./Dn1/Dn2 are connected so it only runs with USB-2 and you will be limited to 480Mbps. Perhaps your dongle is connected over the SuperSpeed wires and thus only work with USB-4 or perhaps USB3x.

1 Like