Anyone got the Apalis TK1 USB OTG gadget for ethernet working on an iPad?


I have an Apalis TK1 on an Ixora carrier with the latest L4T Linux from the EasyInstaller installed.

I got the default USB OTG gadget setup working with a Windows laptop. Connecting it to the OTG port on the Ixora board enables the setup of a “virtual” ethernet device.

However, OTG ethernet gadgets comes in various forms that have different levels of support on various operating systems. I need to be able to plugin an iPad to the OTG port and have the iPad be able to make use of this “virtual” ethernet device. It is not working with the default setup. The problem is not related to power, as I have made sure that sufficient power is available and that the iPad does not complain about insufficient power on the USB OTG port.

I have tried various forms without luck, so I’m wondering if anyone got this working? (on any board)

I have the setup working with a board from a different manufacturer where the iPad recognizes the virtual ethernet device just fine and enables it to use it for networking. Unfortunately I haven’t got access to inner workings of that board, so I don’t know which kind of OTG setup was used.

Thanks for any hints you can offer!

Hi Jens,

We don’t have any experience using Apalis TK1 or any other module as an OTG gadget for an iPad. What board is it that you got working when connected to Windows? What is the difference between the working board and the Apalis TK1?

Could you please provide some more details?

As I wrote above, the board that works with Windows is the Toradex Ixora board with the Apalis TK1 module.

Hi Jens
As you already said, the USB OTG gadget is working for Windows and we also have tested this on linux. For the iPad, maybe there is need of some licensed drivers. Is the working board from a different manufacturer official supported by iPad.

Further you can try to get the USB OTG Gadet on Apalis imx6 with mainline kernel und mainline drivers.

As I wrote, there exists multiple different versions of the USB OTG gadgets for ethernet. Some configurations will work with Windows 7, some will work with Android, some will work with Windows 10, and so on.

I’m was checking to see if anyone got it working with the iPad (iOS).

The pain with the Toradex setup compared to others is that the kernel module for the other types of ethernet gadgets are not included in the standard setup, so I have had to recompile the kernel a number of times to test various configurations. I.e. if someone could say that they used kernel module X in combination with Y and Z, and it worked - it would help tremendously in reducing the number of alternatives to test.

There shouldn’t be any need for licensed drivers. You can use ordinary USB ethernet dongles with the iPad (i.e. also cheap “china” dongles) - so there’s no special “Apple license” involved. And no, the working board is not from a specific “supported by the iPad manufacturer” - I don’t think Apple endorses any specific SBC’s or ARM module boards.

Regarding the iMX6 - is there a specific reason you recommend this module? (i.e. is its software support different or?)

I have got the TK1 as this is the module I need to use in order to have sufficient speed (raw performance). The iMX6 isn’t powerful enough for the application I want to run. However, if there’s something on the iMX6 software setup that is better suited for this, I could download the software for it and try to dig out how the kernel is configured there.

Toradex did not test iPad or other apple products internally, so we cannot make any definite statement.

For Toradex Easy Installer we use libusbgx to load USB Gadget configurations which only works using configfs. The configuration file system configfs has been added to Linux 3.11 (TK1 uses 3.10). So at that point, iMX6 (which comes with 4.1/4.9) really has more advanced USB Gadget support.

Furthermore Toradex improved upstream libusbgx to support USB OS Descriptors, which makes RNDIS work well with newer Windows operating systems (particularly, it allows to use the RNDIS 6.0 driver). OS Descriptors are only supported with Linux 3.16 and newer.

Our BSP for iMX6/iMX7/VFxx uses configfs and libusbgx too, our stock BSP ships with schema files which create a RNDIS configuration with OS Descriptors.

Some hints for OS X I came across that development was in the ev3dev setup script. The comment suggests that a CDC ECM configuration only should actually work with OS X.

I think the most portable solution which should work with Windows 7/10/Linux/MacOS X is using CDC ECM as first configuration and RNDIS with OS Descriptors as second configuration. I have a portable.schema (untested!) configuration which should exactly do that.

Thanks a lot for all the information!

I’ll try to do some testing with an iMX6 Apalis module and its accompanying BSPs. If I can get it working there, we might be able to port it over to the TK1 somehow.

It will probably be a while to get all the suggestions tried out, but I’ll return here with my findings later!

There is also a Apalis TK1 mainline BSP which comes with a newer BSP. However, there is no OTG driver currently, you would have to fix the OTG port to peripheral mode…

Also, there is no CUDA support with upstream…