wiki:FreeBSD Apple Iphone Setup

Version 1 (modified by Paul Kulda, 12 months ago) ( diff )

--

FreeBSD Apple Iphone Setup

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  de-
vice:

# 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.
Note: See TracWiki for help on using the wiki.