I have an OTG device that exposes a network interface over USB-C, providing a DHCP server (think a raspberry pi or similar). When I plug it into my Linux computer (USB-A on the computer, USB-C in the device), then Linux shows a new interface with an IP, and I can SSH into the device.
On a Macbook (where the Macbook also has USB-C connectors), it does not always work:
- If I take a usb-c to usb-c cable and use it to connect the Macbook to the device, it does not seem to get recognized (the network interface is not appearing in
ifconfig
). - If I connect a USB adapter to the Macbook (one of those USB hubs exposing 3 USB-A sockets), and then I connect a usb-a to usb-c cable between the hub and the device (so it's usb-c <--> usb-a <--> usb hub <--> usb-c), then it is recognized.
My first thought was that the hub was definitely a USB device/gadget, and maybe that helped because both the Macbook and the device were USB hosts. But I am pretty sure that the device is OTG, and the fact that the device can connect directly to the Linux shows that it can run as a gadget (and for sure the Macbook can run as a host).
What could be the reason for that issue? And optionally: is it correct to think that the Macbook USB ports are not OTG but always host (I have never heard of an OTG port in a computer, not sure if that's a thing)?
Note: it seems similiar to this old unanswered question.
EDIT: as required, the System Report
when it works. When it doesn't (i.e. with the usb-c-only cable), then the line just does not appear in "USB 3.0 Bus"...
System Report
already, I need to check which module is used on the device. The device is a custom embedded hardware running Linux.