USB tethering - issues with iPhone

Hey there!

What I did so far:
i followed the great USB tethering guide and had great success setting it up with my Android 14 based phone, works like a charm. However when using my iPhone I have a strange issue.

The issue:

The phone seems to connect fine, but I cannot see the network interface it should provide. As far as I have understood the USB tethering guide the iPhone will not show up as "usb0" (like my Android phone does) but should show up as ethX (with X beeing some number). But I have tried to assign wan and wan6 to eth0 and eth1 with no luck (when assigning wan to usb0 connectioon worked immediately, leading me to think that eth0 and eth1 are in this case the two NICs that are built into my router HW).

Background context:

  • I am running openWRT 23.05 on my GL-MT3000 HW.
  • I have installed all necessary packages and setup the watchdog script etc. according to the USB tethering guide on the wiki.
  • I am using an iPhone 11, running iOS 17.4.1, connected via a known good (charging and data) USB-A to lightning cable.

I gathered the following logs:

  • Running ifconfig gives 5 interfaces
    -> br-lan, eth0, eth1, lo, phy1-ap0

  • "lsmod | grep ipheth" ->

ipheth                 12288  0 
usbcore               180224 12 rndis_host,cdc_subset,cdc_ncm,cdc_ether,cdc_eem,usbnet,ipheth,xhci_plat_hcd,xhci_pci,xhci_mtk_hcd,xhci_hcd
  • "dmesg | grep ipheth" ->
[    7.958091] usbcore: registered new interface driver ipheth
[   15.299568] ipheth 1-1:4.2: Apple iPhone USB Ethernet device attached
  • system log excerpt:
Tue May 21 15:29:40 2024 kernel: [    4.473544] usb 1-1: new high-speed USB device number 2 using xhci-mtk
Tue May 21 15:29:44 2024 daemon.err usbmuxd[2163]: [15:29:44.590][3] Connecting to new device on location 0x10002 as ID 1
Tue May 21 15:29:44 2024 daemon.err usbmuxd[2163]: [15:29:44.591][3] Connected to v2.0 device 1 on location 0x10002 with serial number YYYYYYYY-XXXXXXXXXXXXXXXX
Tue May 21 15:29:44 2024 kernel: [   15.299568] ipheth 1-1:4.2: Apple iPhone USB Ethernet device attached

If further logs are needed, please say so, I will try to do my best to provide them!

After running ls /sys/class/net/ and discovering the "eth2" interface (which did not show up with ifconfig, I don't know why), I think this is the iPhone's ethernet interface, as running cat /sys/class/net/eth2/device/interface returns AppleUSBEthernet. However, when creating a new WAN interface via the web interface and assigning it to eth2, it does still not work (I did it the same way as I did with usb0 with the Android, which worked, so the config should be fine?). After setting it up, a few packets get sent, as below image shows image.
However an Internet connection / ping is still not working. Maybe this is a config problem afterall and I am just too foolish to see my error?

I also just saw that the iPhone says "1 Connection" below the icon of "Personal Hotspot" in the quick settings menu (swipe down from the right top corner). This indicates to me that the basic connection between openWRT and the iPhone works now, as I don't have any other devices connected. This leads me to think that this is a configuration issue of some sorts. I therefore created two new blank interfaces via the web GUI, one for my android, one for the iPhone. I set both up completely identical apart from the network interface referenced (usb0 for android, eth2 for iPhone). The android config works fine, iPhone still does not work (nslookup and ping not working).