Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
IPHETH(4)	       FreeBSD Kernel Interfaces Manual		     IPHETH(4)

     ipheth -- USB Apple iPhone/iPad tethered Ethernet driver

     To	load the driver	as a module at boot time, place	the following line in


     Alternatively, to compile this driver into	the kernel, place the follow-
     ing lines in your kernel configuration file:

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

     The ipheth	driver provides	support	for network access through Apple
     iPhone and	iPad devices, often referred to	as USB tethering.

     ipheth should work	with any Apple iPhone or iPad device.  In most cases
     this must be explicitly enabled on	the device first.

     For more information on configuring this device, see ifconfig(8).	The
     device does not support different media types or options.

     The following devices are supported by the	ipheth driver:

     o	 Apple iPhone tethering	(all models)
     o	 Apple iPad tethering (all models)

     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").

       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

     arp(4), cdce(4), cdceem(4), intro(4), netintro(4),	urndis(4), usb(4),
     ifconfig(8), usbconfig(8)

     The ipheth	device driver first appeared in	FreeBSD	8.2.

     The ipheth	driver was written by Hans Petter Selasky

     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.

FreeBSD	13.0		       January 29, 2022			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help