IPHETH(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1

okay bestie, this is ipheth(4) β€” the USB Apple iPhone/iPad tethered Ethernet driver page πŸ’…

🌸 NAME 🌸

ipheth β€” USB Apple iPhone/iPad tethered Ethernet driver πŸ“

✨ SYNOPSIS ✨

To load the driver as a module at boot time, drop this line in loader.conf(5):

if_ipheth_load="YES"

Alternatively, to compile this driver into the kernel, put these lines in your kernel configuration file:

device uhci
device ohci
device usb
device miibus
device uether
device ipheth

πŸ’œ DESCRIPTION πŸ’œ

okay so the ipheth driver gives you network access through Apple iPhone and iPad devices β€” the thing everyone calls USB tethering. iconic behavior, honestly 🫢

ipheth should work with any Apple iPhone or iPad device. In most cases this must be explicitly enabled on the device first β€” no cap, you gotta flip that switch on the phone/iPad side first πŸ’…

For more info on configuring this device, see ifconfig(8). Heads up: the device does not support different media types or options. periodt.

🌈 HARDWARE 🌈

The following devices are supported by the ipheth driver:

  • Apple iPhone tethering (all models) 🍎
  • Apple iPad tethering (all models) 🍎

🧚 EXAMPLES 🧚

πŸ¦‹ Example 1: Manual Configuration πŸ¦‹

The following example shows how to manually configure network access on a device that is not automatically recognized.

First, load the driver and find out the unit and the address of the USB Apple device:

# kldload ipheth
# usbconfig | grep Apple
ugen0.2: <Apple Inc. iPhone> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

In this example, the unit and the address of the device is 0.2 (β€œugen0.2”), and its configuration index is 0 (β€œcfg=0”). slay, now we know where it lives πŸ’–

Secondly, check what other configurations are available for the device:

# usbconfig -d 0.2 dump_all_config_desc | grep -E '(^ Conf|iConf)'
 Configuration index 0
    iConfiguration = 0x0005  <PTP>
 Configuration index 1
    iConfiguration = 0x0006  <iPod USB Interface>
 Configuration index 2
    iConfiguration = 0x0007  <PTP + Apple Mobile Device>
 Configuration index 3
    iConfiguration = 0x0008  <PTP + Apple Mobile Device + Apple USB Ethernet>

In this example, there are 4 different configurations available. The configuration with index 3 seems to be related to Ethernet. It is time to configure the device:

# usbconfig -d 0.2 set_config 3
# usbconfig | grep 'Apple.*cfg=3'
ugen0.2: <Apple Inc. iPhone> at usbus0, cfg=3 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

At this point the Apple device should ask whether the FreeBSD machine can be trusted (β€œMobile Data” has to be on). πŸ‘€

A new ue USB Ethernet interface should become available:

# dmesg | grep 'ue[0-9]'
ue0: <USB Ethernet> on ipheth0
ue0: bpf attached
ue0: Ethernet address: 4e:7c:5f:2c:5f:7a

At this point it might be necessary to run usbmuxd(1) (available in ports(7) at comms/usbmuxd):

# usbmuxd --enable-exit --foreground --user root --verbose

Now it is time to configure the network interface:

# sysrc ifconfig_ue0="SYNCDHCP"
ifconfig_ue0:  -> SYNCDHCP
# service netif restart ue0

That is it. The machine should now be connected to the network via USB tethering. we love to see it πŸ˜­πŸ’–

πŸŽ€ SEE ALSO πŸŽ€

⭐ HISTORY ⭐

The ipheth device driver first appeared in FreeBSD 8.2. vintage but still serving πŸ’…

πŸ‘‘ AUTHORS πŸ‘‘

The ipheth driver was written by Hans Petter Selasky <hselasky@FreeBSD.org>. king behavior πŸ‘‘

πŸ’€ BUGS πŸ’€

Some devices are not recognized automatically and may need to be manually configured to use an alternative configuration with the usbconfig(8) utility. See β€œEXAMPLES” for workarounds. annoying but solvable, bestie 🫢


πŸ’– this cutie is the Debian edition of the IPHETH(4) page, dated January 29, 2022 β€” mwah πŸ’–

πŸ“¦ where this page comes from