Sponsored Link
This tutorial is written for those who are not familiar with Ubuntu/Linux and is very detailed. If you are experienced feel free to just grab what you need from it.
Update: I've updated the tutorial to fix some errors that came up due to a change in the libiphone package.
Update (1/27/10): I've updated the tutorial with a new PPA and set of packages needed for tethering via USB to work. This should iron out all other problems with the tutorial.
Tethering the iPhone via Bluetooth is as simple as pairing the two devices and ensuring that Internet Tethering is turned on on your iPhone. To pair the devices you will need to install a new Bluetooth manager aptly named "blueman" from the Blueman Project PPA repository. To do this you will need to execute the following commands in a new Terminal window:
sudo add-apt-repository ppa:blueman/ppa
sudo apt-get update
After it finishes updating your repositories you can install Blueman by executing
sudo apt-get install blueman
Once everything stops working and you're back at a blank command prompt you can then close Terminal and open the "Bluetooth Manager" which can be found in the "System>Preferences" menu. (Note: A reboot may be needed for it to open) To pair the devices you will need to turn on Bluetooh on your iPhone and computer. To turn it on on your iPhone open the Settings application from your springboard, when the settings screen appears press the "General" button near the bottom, from here press the "Bluetooth" button, and then press the switch to turn it on. Once on you should see a list of devices as well as a message near the bottom saying that it is "Now Discoverable". In the "Bluetooth Manager" program press the "search" button and the list should be populated with nearby discoverable Bluetooth devices. Locate your iPhone 3G(S) from the list, select it, and press the "Keys" (pair) button above it. At this time Bluetooth Manager will attempt to pair the two devices. On both the iPhone and your computer you should see a prompt asking you if you want to pair the two. Press "Pair" on your iPhone and "Yes" on your computer. Once paired, press the diamond on Bluetooth Manager to trust your iPhone.
Now that everything is set up, you can go back into the "General" tab on your iPhone's settings and select "Network" near the bottom you should see "Internet Tethering" (if you don't then you need to install the proper carrier profile to enable it) press on it and turn it on. Lastly, go back to the Bluetooth Manager program on your computer, right click on your iPhone and select "Network Access Point" from the option "Connect to:" it will work and hopefully give you a "Connection Established" message. Your iPhone should now have a blue banner with "Internet Tethering" on it. If all went well, you should now be able to access the internet through your iPhone's data connection.
Thanks to Sergey Stadnik Bluetooth tethering on 10.4 (Lucid) now works. According to him: "... right-click on the Blueman icon, select Plugins. Enable NMPANSupport plugin, press Ok."
Tether via USB:
Tethering your iPhone via USB uses a iPhone Ethernet driver written by Diego Giagio. Paul McEnery has set up a PPA repository with the driver and it's dependencies so there is no longer the need to compile both ‘libiphone' and ‘ipheth'. The first step is to add the PPA repository to your Synaptic repositories. To do so, open a new Terminal window and execute the following command:
sudo add-apt-repository ppa:pmcenery/ppa
sudo apt-get update
Once it finishes updating you can continue by downloading and installing the driver and the needed dependency:
sudo apt-get install gvfs ipheth-utils
When it finishes plug in your iPhone via USB, if internet tethering is enabled you should see a new interface pop up and a blue banner on your iPhone along with a dialog on your computer notifying you about a new ethernet connect. If not, check to see if tethering is enabled by opening the Settings application on your iPhone and navigating to "General>Network", near the bottom you should see "Internet Tethering" (if you don't then you will need to download and install the proper carrier profile) press on it and turn it on. Open up a browser and enjoy your mobile internet.
Hopefully, you ran into no errors with this tutorial. If you did let me know, or let me know if you ran into any error with anything else pertaining to it.


For bluetooth tethering, all I did was install blueman. After the install is completem reboot and all you need to do is turn on tethering on your iphone, and go into your bluetooth preferences and connect to your computer (same manner as posted above). In blueman make sure you set your iphone as trusted device (you don’t have to). After the iphone is connected simply right click on your iphone in blueman, and pick connect to: network access point. You should see the iphone tell your its sharing its internet. You should also see network manager tell you the same thing.
I am not sure if the script prevents this, but the next time you connect you need to go to bluetooth on your iphone, and click your computer. If you set your iphone as a trusted device, then you wont get a prompt but if you dont blueman will tell your that device would like to connect to your computer, do you wish to proceed. After you do just open blueman, right click and choose network access point on your iphone and presto you are tethering again.
Hello!
Thanks for this tutorial! I could get the Bluetooth side of it working in no time. However, even after adding the
sudo add-apt-repository ppa:jonabeck/ppa
repository, I still don’t have the lib-usbmux-dev package to install. Googling it returns only this page.
Did I do something wrong?
Thanks!
Any idea how I can exchange contacts between my iPhone and Ubuntu Evolution using USB cable?
First I would like to say that I have been waiting for this for along time. Second I can’t get it to work. I ran into my first problem when i went looking for lib-usbmux-dev, so I did a google and found out it should be libusbmux-dev. The second problem, when I did the ./configure I had an error at the end “Could not link test program to Python. Maybe the main Python library has been installed in some non-standard library path.” (how do I find this information out?). Also I noticed that there is an autogen.sh, could you not just type “sh autogen.sh” in the terminal instead of ./configure, now that i typed it it would be the long way huh?
LoneSt4r: You did nothing wrong, I made the mistake when I typed in the package name. The correct name is “libusbmux-dev” I added in a hyphen. I’ll see if I can get the tutorial edited.
Tareeq Ali: I never had much luck with just using blueman, however I also didn’t try hard enough. I found the UIT script and stuck with it. Your method is much easier. I’ll see if I can get it working and fix the tutorial. Thanks!
HaD3Z: Thanks for pointing out my mistake with the package name. I typed up the tutorial quickly and thought I proof read it before submission. I don’t quite know a solution for the python error. However, I’ll look into it tomorrow and see if I can come up with a solution.
@LoneSt4r,LonelyTV
I have edited the article now
HaD3z: Actually, now that I think about it if you added the PPA repository you should be able to install it via apt-get with no problem.
I am trying to set up the usb tethering. It goes smooth, until I am asked to compile the libraries.
“./configure”
returns
“bash: ./configure: No such file or directory”
I am with sudo su, and when I make ls-a on the directory the only configure file or -sub directory is configure.ac and its a file.
Curious. I recently did a fresh Karmic install with WUBI to play around, and found that simply pairing my iPhone and my computer in bluetooth settings, then enabling tethering made a bluetooth personal area network available in the network manager.
That was a fresh install, without any of the updates (I actually used the tether to download the initial updates).
I should note that this does work (at least for me) in regular Ubuntu Karmic, but it does NOT work with Kubuntu Karmic.
Dimitar: Did you download the iPhone libraries from the git repository? It SHOULD have a configure file in there for you to use. If it’s not there, I suggest you re-download the file and try again.
LonelyTV, Dimitar: The configure file is not there. I ran into the same problem. Reading the README file from the git repository, it says that you have to run autogen.sh (after installing a bunch of dependencies specified the the README file) in order to create the configure file.
I hope this helps!
Okay, I have setup bluetooth and successfully connected to my iPhone. However, I get “Network Manager did not support the connection” when I try to setup a network access port. Any ideas?
I have iPhone 3G with iPhone OS 3.1 without jailbreak! And my Internet Thetering is workign great via bluetooth with blue man… It is far more easy to setup it via bluetooth instead this steps that you write…
Hi, I’m using Karmic, after download the libiphone from Matt Colyer’s GIT repository I try to execute “./congfigure” from “libiphone” folder but there is no “configure” file. After read the README file I try to run ./autogen.sh, now I have:
./autogen.sh: 2: aclocal: not found
./autogen.sh: 3: libtoolize: not found
./autogen.sh: 4: autoheader: not found
./autogen.sh: 5: automake: not found
./autogen.sh: 6: autoconf: not found
./autogen.sh: 10: ./configure: not found
Any idea ??
Thx!
Hi… I’m using Kubuntu (KDE 4.3). I have blueman installed, everything works OK, I was able to pair, connection works good, blueman says succes after click on network access, there’s blue banner on iPhone, but kubuntu is not connected to internet… Network manager shows nothing, I have also tried nm-applet, but still nothing…
For those with python problems, i had the same problem, but installing python2.6-dev fixed it for me.
aasp76, Dimitar, HaD3z, & Anyone else having issues with libiphone: It appears that downloading the libraries from the git repository isn’t complete. I updated the tutorial with the URL to the archive that is complete. Hope this helps!
Thanks to a few devoted individuals tethering the iPhone to Ubuntu is simple… Ha simple my ass….
BlueTooth works great, thanks! Via usb, I get this:
checking for libgnutls… configure: error: Package requirements (gnutls >= 1.6.3 ) were not met:
No package ‘gnutls’ found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables libgnutls_CFLAGS
and libgnutls_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Bluetooth tethering works for me using the standard ubuntu bluetooth and network-manager app. What functionality does blueman add?
I just paired my phone and network-manager pops up and asks if i want to connect using this device!
Doug Saylor: Try installing “libgnutls-dev”. That SHOULD fix it.
Ander Westrup: Blueman offers a traffic monitoring plugin that keeps track of the data you have used while tethered. It also has various other plugins that can be found useful. I also like the visuals that it offers over the default bluetooth manager.
For those with libplist problems, installing libplist-dev would be helpful.
after installing the dev libraries, had to install SWIG. and when I ‘make’ this is what I get
yayam@MarianHPLaptop:~/libiphone-0.9.5/ipheth/ipheth-pair$ make
gcc -Wall -O2 ipheth-pair.c -o ipheth-pair -liphone
ipheth-pair.c: In function ‘main’:
ipheth-pair.c:115: error: too few arguments to function ‘lockdownd_pair’
ipheth-pair.c:123: warning: implicit declaration of function ‘lockdownd_validate_pair’
make: *** [all] Error 1
yayam@MarianHPLaptop:~/libiphone-0.9.5/ipheth/ipheth-pair$ make
gcc -Wall -O2 ipheth-pair.c -o ipheth-pair -liphone
ipheth-pair.c: In function ‘main’:
ipheth-pair.c:115: error: too few arguments to function ‘lockdownd_pair’
ipheth-pair.c:123: warning: implicit declaration of function ‘lockdownd_validate_pair’
make: *** [all] Error 1
yayam@MarianHPLaptop:~/libiphone-0.9.5/ipheth/ipheth-pair$ sudo make install
install -m 0755 ipheth-pair /lib/udev/
install: cannot stat `ipheth-pair’: No such file or directory
make: *** [install] Error 1
yayam@MarianHPLaptop:~/libiphone-0.9.5/ipheth/ipheth-pair$
Yep, me too:
absdoug@AcerAspireOne:~/ipheth/ipheth-pair$ make
gcc -Wall -O2 ipheth-pair.c -o ipheth-pair -liphone
ipheth-pair.c: In function ‘main’:
ipheth-pair.c:115: error: too few arguments to function ‘lockdownd_pair’
ipheth-pair.c:123: warning: implicit declaration of function ‘lockdownd_validate_pair’
make: *** [all] Error 1
dpwaters72: i have the same issue. After install Blueman on Ubuntu 9.10 i have no “Network Access Point” when right clicking iphone icon in Blueman.
Anyone solved this?
Doug Saylor, Robert Lozano: I’ve updated the tutorial with the correct packages needed to compile everything. The original libiphone’s package had changed which ultimately broke the rest of the tutorial. Sorry for the trouble. I would recommend opening synaptic and searching for ‘iphone’ and remove all that is installed there before you install the new packages.
Oy…
absdoug@AcerAspireOne:~/libiphone$ ./configure
bash: ./configure: No such file or directory
Double Oy… I got a bit further, then:
absdoug@AcerAspireOne:~/ipheth/ipheth-pair$ make
gcc -Wall -O2 ipheth-pair.c -o ipheth-pair -liphone
ipheth-pair.c: In function ‘main’:
ipheth-pair.c:115: error: too few arguments to function ‘lockdownd_pair’
ipheth-pair.c:123: warning: implicit declaration of function ‘lockdownd_validate_pair’
make: *** [all] Error 1
@LonelyTV, I cant seem to find your new tutorial? I checked this one, its not edited. So, where is that new tutorial? Thanks 🙂
It will significantly increase my battery life since I wont be using MyWy all the time 🙂