- 1 Tethering with libimobiledevice and ipheth
- 1.1 Requirements
- 1.2 Trouble shooting
Tethering with libimobiledevice and ipheth
With the release of libimobiledevice it's now possible to natively tether the iPhone 3G and 3GS with firmware 3.0 or superior (Not tested with 4.0, now in developer release).
- Enable tethering in the iPhone
- Install usbmuxd
- Install libimobiledevice (previously libiphone)
- Install The iPhone Ethernet Driver (ipheth)
Though there are packages for all of these, the usbmuxd is the only requirement recommended to install from arch. Both libimobiledevice and ipheth are recommended to install from the git.
Enable tethering in the iPhone
If your carrier hasn't already enabled tethering you can do it by:
- Creating a profile in your iPhone
- Using blackra1n tu unlock your iPhone
- Installing a carrier update (a new .ipcc)
All of these methods are really easy to find in google. Notice that the 3rd method will just work in fw inferior to 3.1.2, following that you'll first need to use Blackra1n
As said before usbmuxd is available from AUR and you can install it trough yaourt
# yaourt -S usbmuxd
You can get libimobile device from MCoyler site at github http://github.com/mcolyer
To get the source and install run the following commands. This should be pretty much straight forward
# git clone git://github.com/mcolyer/libiphone.git # cd libiphone # ./autogen.sh # make
As always check there are no errors so far; if everything looks good you are ready to install
# sudo make install
The following section is based in the tutorial available here http://giagio.com/wiki/moin.cgi/iPhoneEthernetDriver
Again we will be getting a git repository, but this install is divided in two sections. Install the kernel module, and installing the pairing program.
Remember that this depends on libimobiledevice and usbmuxd, so install those first.
# git clone git://github.com/dgiagio/ipheth.git
Now we are good to install the Kernel Module.
# cd ipheth/ipheth-driver # make
If there are no errors you can load the module
# sudo insmod ipheth.ko
Now plug your iPhone and run dmesg. It should give you something like the following:
# ... # [ 8181.461000] ipheth 1-6:4.2: Apple iPhone USB Ethernet device attached # [ 8181.463067] usbcore: registered new interface driver ipheth # ...
If you have a hard time finding these lines run
# dmesg | grep ipheth
Now you should have a new network device, mine is called eth1 but it can be different. If you are ussing the NetworkManager Applet you should see a wired network device called Apple iPhone.
Just one step to go. Installing the pairing program. You will have to run this program every time you plug your iPhone, I really don't know why but otherwise it won't work.
# cd ipheth/ipheth-pair # make # sudo make install
This will install [b]ipheth-pair[/b] (the pairing program) in /lib/udev/ipheth-pair Not the most practical location since it's not in your PATH. With you iPhone plugged rud
If you don't get any errors you should now be able to connect to tether your iPhone with NetworkManager
iPhone not appearing in the devices list
If you can't see the device in dmesg or in the NetworkManager device list you probably didn't reload the module. Just run:
# sudo insmod ipheth.ko
You can also add the module to rc.conf just
# cd ipheth/ipheth-driver # make clean # make # sudo make install
and then edit the [b]rc.conf[/b] since it's still in a beta stage I don't recommend this, but if it works for you there shouldn't be trouble.
The iPhone appears in the device list but it doesn't connect
Did you pair the iPhone? run
Now you should be able to connect
You run ipheth-pair but it returns there's no libimobiledevice
If you get this error
# ./ipheth-pair: error while loading shared libraries: libimobiledevice.so.1: cannot open shared object file: No such file or directory
You can solve it by running
# sudo ln -s /usr/local/lib/libimobiledevice.so.1.0.0 /usr/lib/libimobiledevice.so.1