Tethering an iPad / iPhone to a Raspberry Pi [duplicate]

Solution 1:

It's actual a very simple setup that is needed that doesn't involve "tethering" at all.

Basically what you need to do is to set up the Raspberry Pi for USB "gadget" - meaning that it makes an ethernet device available over USB. For the most easy setup, setup a DHCP server on the Raspberry Pi to automatically give out IPs.

On the iOS device - all you need to do to get it working is to plug it in, and then open a VNC app and enter the IP address and port number of the Raspberry Pi to open the connection.

If you do not install a DHCP server on the Raspberry Pi, but instead follow the instructions you've linked, then you need to set the IP address manually on the iOS device. You do that from Settings => Ethernet, and then set it manually to a not used address within the same subnet. If you follow the linked instructions the RPi will be available at 192.168.42.42, so set the IP address of the iOS device to 192.168.42.43 for example.

The tricky part in the above is not to do with the iOS device itself, but rather the configuration of the Raspberry Pi. There exists several types of USB "gadget" ethernet devices, and various variations of them. iOS does not support all of them (at all) - Android does not either. In addition there seem to be a difference between iOS devices, which I cannot comment on in your general case because you haven't said anything about which device you have. But for example the iPad Pro seems to be more forgiving than an iPhone in this respect.

You can get the exact same setup with having to configure the USB "gadget" interface by using a USB-ethernet dongle with the iOS device. If you plug that in to the iOS device and connect an ethernet cable from that to the ethernet port on the Raspberry Pi - you can achieve the same thing.

Update: I see in your update that you emphasized on the requirement to list experience with "USB-IP". I do have succesful experience with "USB-IP" as you call it (it's not really called that). However be wary that the hard part of the configuration is on the Linux side - not on the iOS side. Also note that even though your linked instructions detail a single method of enabling a usb0 interface - in reality it is quite complicated with two majorly different modes of configuration, and within each mode several different protocols, and for each protocol various setup options.