Step by step guide to sync your iPhone in Linux
Since iPhone was originally designed to be synced with iTunes in both Mac and Windows platforms, the Linux users found it hard to sync this device with Linux boxes. Although the iPhone and Linux relationship was bit shaky at the beginning, things started getting smoother later on.
Although Apple provided iTunes for Windows platform, it never talked about providing one for Linux users. Therefore, the Linux community had to find a way of syncing and making iPhone compatible with Linux platform. This tutorial allows you to sync iPhone and iPod devices in your Linux box.
The following steps work for both jail-broken and non-jail-broken iPhones. I will take Ubuntu as my example Linux distribution for this tutorial as it is one of the main stream Linux distributions in use.
In order to make iPhone work with Linux, we need to install a lot of packages. Some are binary packages and others are libraries. Therefore, you must configure the package repository first in order to download and install the required packages. Please add the repository as below.
# sudo add-apt-repository ppa:pmcenery/ppa
Now issue the following command to update the source list.
# sudo apt-get update
You can now install all required packages by issuing the following command. As an alternative, you can install them one-by-one if you have time and willing to learn about each.
# sudo apt-get install gvfs gvfs-backends gvfs-bin gvfs-fuse libgvfscommon0 ifuse libgpod-dev libgpod-common libiphone-utils libiphone0 python-iphone libplist++1 libplist-utils python-plist libusb-1.0-0 libusb-1.0-0-dev libusbmuxd1 usbmuxd
All the above packages are required in order to establish the connection between your Linux box and the iPhone. In case if you miss one of these packages, you may experience difficulties in successfully syncing the devices.
In step two, we install ‘Fuse’ and it functions as the interfacing component between the iPhone and the Linux box. In this step, we will configure Fuse for proper functioning.
Use your favourite editor to edit Fuse configuration file. I use my favourite ‘nano’.
#sudo nano /etc/fuse.conf
Now uncomment #user_allow_other by removing the hash symbol at the beginning.
Save the configuration file and exit from the editor.
In this step, we complete the configuration process. At this point, we need to modify our user account to make Fuse auto-mount the iPhone when it is connected. Otherwise, you will have to manually connect the iPhone every time you plug-in mobile device.
You can navigate to System -> Administration -> Users and Groups and then click the small key at the bottom in order to make the panel editable. Then, select your user name from the user list and click on ‘Manage Groups’.
Now look for ‘fuse’ group and add your user account to the ‘fuse’ group.
Now you need to re-login in order to make the change effect. To be sure, you can reboot the computer as well.
Once you are back in your Linux box, mount your iPhone as;
# ifuse /mnt/iphone/
In this step, we prepare the iTunes directory of iPhone. Issue the following command for getting that done.
# mkdir /mnt/iphone/iTunes_control/Device
Now you need to fetch the UUID number by issue the following.
# lsusb v | grep i iSerial
The above command should generate a file named ‘SysInfoExtended’ in iTunes_Control/Device. This file should have a lot of XML information in it.
Now you can unmount iPhone and reboot the Linux box by issuing the following commands.
# fusermount u /mnt/iphone
Once you reboot the Linux box, plug-in your iPhone. The iPhone should automatically appear on your desktop. Then, it should be automatically added to Rhythmbox (or the media player you use in your Linux box).