Updated: June 26, 2015
Believe it or not, Dedoimedo Ripley style, I actually wrote this article twice. The first time, with an intention to rant, the second time to show you that I'm never gonna give you up, and that difficult problems can be overcome. To wit, how to use iPhone 6 like any other smartphone in your preferable Linux distribution.
If you search online, many an article promises wonders. You will be able to sync your music and videos, you will be able to download your photos and such. Sounds cool, except things aren't sometimes in sync with hopes. This article is useful in that regard, as it shatters a whole bunch of them. We commence.
Let's begin first by seeing what different distributions on the market actually offer. In the recent few weeks, I have tested a variety of Linux systems, and there's little to no consistency in how they support iPhone.
On top of that, let's no forget that there is NOT going to be any real way you can sync your stuff onto an iPhone 6 without using iTunes. That's an illusion we must destroy right from the beginning. Regardless, I will show you several tools and programs that give you partial access to the phone's data structures, and allow you to do some basic rudimentary copy & paste, although you still need Apple's approved method of sharing to get anything meaningful done.
Linux Mint 17.1 Rebecca
This Ubuntu derivative is one of my favorites. Trying the KDE version, I did not accomplish much, unfortunately. The distro would not even see, let alone mount the device. Shame really, but that's how it is.
Netrunner 15 Prometheus
I have installed this operating system on my G50 laptop, twice actually, and it's one of the first tests that I've done on this hardware. Apart from the initial stumbles and hiccups that have been polished going from Prometheus to Ozymandias, the distro works quite well, it comes with a modern kernel and Plasma desktop, and we've seen how cool it is. Amarok let us sync music from Windows Phone and Samsung S4, so it will perhaps let us do the same thing using with iPhone? Well, nope. Much like Mint, the phone was not even recognized. There's nothing like failing when you expect to succeed.
Ubuntu 14.04 Trusty Tahr
This stalwart little beast continues to surprise, all the more so given the family relationship with the other two distributions. Here, things were decidedly better looking. Plugging in the phone, I got a prompt, asking me what to do. Sure, you will have trouble using iPhone while it's locked, but you won't get any questions on whether you trust the computer on iPhone itself. Then, you may see a double-mount kind of thing, with the second mount point being unusable, locked, inaccessible, and all in all, smelling like some sort of a bug in the AFS protocol. But at the very least, you can mount iPhone 6 in Ubuntu, and you can launch the file explorer or even Rhythmbox to try to fail to sync music, should you decide you're brave enough.
So it did work, and you can see a bunch of stuff. First, images are sorted inside a single DCIM folder, unlike on Windows, where they show inside pseudo-named libraries. You can copy stuff to and from the phone, whereas it's read-only for Windows. Second, you have access to a whole bunch of folders. But music and videos? Forget it.
Ubuntu 15.04 Vivid Vervet
This one behaves just like its trusty predecessor. Trusty, get it?
Kubuntu 15.04 Vivid Vervet
This distro decided not to behave, which is really annoying. But then, I am going to use this one particular distro as our test bed, and I will show you a near universal method for handling later versions of iPhone, with the stock and un-jailbroken version of iOS. This means the guide should work for most scenarios, and it's non-destructive.
Xubuntu 15.04 Vivid Vervet
Amazeballs. Works great. No disappointment there.
Before we move on, what you should not try
Several options will show up in your searches. First, aTunes. It's not a good tool, as it does nothing. Moreover, the quality of the Debian package is questionable. You can install it as a media player, but it won't do any good when it comes to accessing your iPhone.
The proper solution
It's a lengthy one, so bear with me. First, let's install several tools and programs, which we will require in a bit. Some of these utilities may already be installed, and in some distros they might not be available, and you will have to use unofficial repos and PPAs.
sudo apt-get install ideviceinstaller python-imobiledevice libimobiledevice-utils libimobiledevice4 libplist2 python-plist ifuse
Check device is recognized
Once you have the tools in place, connect your iPhone. Then, check the output of the dmesg command. This should give you an indication whether iPhone has been detected as a USB device, even though we cannot mount it just yet.
Pair the device
The next step is to pair iPhone with our Linux host. This is done using the idevice suite, which comes with several useful tools, including idevicepair. The utility can take three arguments, including pair, unpair and validate.
ERROR: Could not validate with device fbce270d9b12474235f91ca02523be8380af268b because a passcode is set. Please enter the passcode on the device and retry.
If you encounter the error above, you will need to unlock your iPhone first. This is a security feature to prevent rogue attempts to pair with your iPhone while it's connected or charging.
ERROR: Please accept the trust dialog on the screen of device fbce270d9b12474235f91ca02523be8380af268b, then attempt to pair again.
After you run the command again, you may see a different error, pointing at the fact you have not accepted the trust dialog popup on your iPhone screen. Again, a security feature. Accept the prompt, then try running idevicepair the third time lucky.
SUCCESS: Paired with device fbce270d9b12474235f91ca02523be8380af268b
Mount using iFuse
Now, we can mount iPhone using the iFuse tool. It's just like fuse, only for fancy filesystems like Apple's whatnot. You can run this tool as root (sudo) or as a regular user, depending if you want to allow ordinary users to be able to mount and unmount your iPhone devices.
If you do decide to run as root, then you will also need to invoke the file manager as root. On the other hand, if you go for the user space option, you will need to adjust the mount point permissions, as well as make the /etc/fuse.conf file accessible and readable to regular users, and tweak a single directive inside the file.
(sudo) ifuse /media/iPhone/ --root
Failed to start AFC service 'com.apple.afc2' on the device.
This service enables access to the root filesystem of your device.
Your device needs to be jailbroken and have the AFC2 service installed.
If you try to access the root filesystem of the iPhone device, you will fail unless your phone has been jailbroken. We do not want this. We just want to copy our photos and such.
(sudo) ifuse /media/iPhone/
fusermount: failed to open /etc/fuse.conf: Permission denied
fusermount: user has no write access to mountpoint /media/iPhone
Let's adjust the configuration file. You may also want to chmod and chown the mount point. I cannot suggest the most optimal solution, but if you're mounting under /media, which is owned by root, then your subdirectory, after being created should either be owned by the user or world-writable (777). You can also mount inside your home directory, but then, other users on your system may not be able to access mounted iPhone devices. This is assuming you have friends. Or friends who might have iPhones, but the first option is the most likely one.
# Allow non-root users to specify the allow_other or allow_root mount op$
Once you have adjusted the /etc/fuse.conf file, try again. The last error below will occur if your user permissions are insufficient to tinker with the mount point, as we've just explained above. Tweak, try, succeed.
fusermount: failed to chdir to mountpoint: Permission denied
Tweak the permissions:
(sudo) chmod 777 /media/iPhone
After the command returns without any errors, open your file manager. In Kubuntu, this is Dolphin. With root permissions, you will need kdesudo dolphin. Now, you will not see iPhone mounted in the sidebar, but you can just navigate to your mount point, like /media/iPhone. You will be able to see the contents of your device, and you can copy various relevant files. Just do not expect any miracles on the music and video sync front.
Once you're done with your work, you can unmount the device and unpair it. Best of all, since we have a set of commands in our hands, you can now write two scripts, one which pairs and mounts the phone and launches Dolphin open to the desired mount point location, and the second that does the opposite. Bob's your uncle. Anyhow, unmount:
(sudo) fusermount -u /media/iPhone/
Apple won't let you sync music unless you use iTunes. Probably for a good reason on their part, but that's something that I find very hard to accept, and it's largely why I don't seem to have great love for this freely given silver-clad gift. So, you should definitely do some thinking before buying your new gear, and for me, the ability to tinker to some small extent is quite important. Not Android important, but still.
Linux-wise, we have a success. It's a slightly bitter victory, but still. However, all combined, this ordeal reminded why I've so happily voted for Trusty as the top distro of 2014. It keeps proving its merit. We might never get iPhone 6 to work properly in Linux, but at least we know what our operating systems can or cannot do. A worthy lesson after all. To sum it up, grab a bunch of tools, then use idevicepair and ifuse from the command line to mount your iPhone. Hopefully, you will find this article immensely useful. Stay calm.
P.S. If you find this article useful, please support Dedoimedo.