Firstly, I posted the same question on stackexchange and did not know about this community.

I'm busy with a USB ethernet implementation to provide an ethernet connection to an iPhone over USB.

I'd prefer to use CDC ECM but it seems like iOS does not support this. It does however work with CDC NCM.

Does anyone know or know where I can read on what USB ethernet classes are supported by iOS.

1 Answer 1


I don't think Apple has published a publicly available list. However, some manufacturers do seem to have a collaboration with Apple on USB-ethernet devices, so they probably have received documentation from Apple on what's recommended.

I'm currently working on the exact same as you, and have found that CDC ECM does not work, nor does RNDIS over ACM work. And as you describe, it seems devices using CDC NCM can be made to work. I have also tried EEM, but couldn't get it to work - that might be due to errors on my part however.

I haven't got any further information than that at the moment. If you figure out more, please update this space!

  • CDC NCM does work. I'm able to hand out an IP from my DHCP to the phone and host a web page over NCM to the phone. Although NCM can handle mucher higher data rates when compared to ECM, it has much more overheads (a protococol). I do not need high throughput or the additional overhead. I will post again once I have more info. Although I've been working on this for a while
    – bluscape
    Dec 11, 2019 at 22:00
  • It is strange though. When I use CDC ECM, the phone does detect the ethernet connection and creates a ethernet connection, but that is where it stops. I'm quite certian that my CDC ECM implementation is correct since I've been following the CDC ECM 1.2 specification and it is working fine on Ubuntu.
    – bluscape
    Dec 11, 2019 at 22:03
  • Yes, NCM does work - also what I wrote. It is just more complicated than ECM, obviously as ECM is almost as simple as can be. I have tried CDC ECM using the Linux implementation with iPads (non-Pro) - can't get it working. The same setup works fine when connected to a Linux workstation.
    – jksoegaard
    Dec 11, 2019 at 22:13

You must log in to answer this question.

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