One step forward, two steps back. If there was every something to frustrate Ubuntu users, it’s got to be the way Apple keeps updating the way music is synced making it incredibly difficult for developers to reverse engineer their latest “updates.” What’s comical is you can take any older iPod, no problem. I can sync it with half a dozen software titles all day. But the latest iOS? Works one day, update it, back to failing. Worse is the idiots who claim this is the fault of the Linux desktop. No folks, this is Apple playing cat and mouse, keep up. Moving on.

To better highlight why I do not recommend folks using their newer iOS devices with desktop Linux distros like Ubuntu, allow me to share a recent experience as to why it appears. Apple has worked overtime to make sure iTunes is the only option available.

Just to be clear, iOS 4.2.1 is a complete failure with the latest PPA repository added for obtaining the latest libimobiledevice, ifuse, usbmuxd. Because I did the update from 10.04 to 10.10, I am apparently still using the following – at the same time. Now this was my own fault. Not the fault of Ubuntu or Apple, as I allowed the old files to remain. Despite being asked if I’d like to remove them, I opted not to. Those files are dupes as:

libimobiledevice0
and
libimobiledevice1

As it turns out, Ubuntu allows me to remove the older libimobiledevice0, which also removed Rhythmbox and Banshee -- or so I thought. Even thought I explicitly removed Rhythmbox and Banshee, only Banshee was removed according to Synaptic and my programs list. Also, ability to mount is now dead giving me an error of

"Failed to execute child process "/usr/lib/gvfs/gvfsd-afc" (No such file or directory)"

Apparently removing libimobiledevice0, also ditched ifuse. So I had to reinstall it. Hence my “Failed to execute” error above I suspect.

So now I just did following:

idevicepair unpair
idevicepair pair
idevicepair validate
Each command indicated success, did with device plugged in of course. Disconnected Iphone 4, reconnected -

Failed to execute child process "/usr/lib/gvfs/gvfsd-afc

Rebooted, plugging in iPhone now brings no error, no mount, nothing.

lsusb shows device as

"Bus 001 Device 009: ID 05ac:1297 Apple, Inc."

And finally, dmesg shows this as I disconnect, then reconnect:

[ 817.696985] usb 1-4.3: USB disconnect, address 9
[ 820.200087] usb 1-4.3: new high speed USB device using ehci_hcd and address 10

Did some checking, found gvfs-backends missing, so I reinstalled it. So then I ran:

/usr/lib/gvfs/gvfs-afc-volume-monitor

I got this as I expected to when I connected the iPhone for the 50th time today:

Volume monitor alive
creating volume for device uuid 'my uuid which I am not sharing'

And of course, the iPhone 4 still wasn’t mounting.

Getting The iPhone 4 Working With Ubuntu
Photo by Yutaka Tsutano

Because I never did know when to quit, I rebooted the computer yet again. This time, my iPhone 4 did mount. So clearly, having gvfs-backends piece figured out helped. But the PC had to be rebooted again to matter. So I can open things in F-Spot. Yes, you still have to browse to the DCIM/100APPLE directory manually though. That is working – getting images and videos is possible! One down, one to go.

Now Rhythmbox is no longer seeing my iPhone. Yes, the iPhone 4 mounted to my desktop, F-Spot sees it. But no love from Rhythmbox. Why? Remember earlier when I removed Rhythmbox? Yeah, guess what else went with it? The rhythmbox-plugins package. you know, the one that also installs libgpod-common and ligpod4?

So back at Synaptic. I install:

rhythmbox-plugins

which also “automagically” gives me libgpod-common and ligpod4 as well. Cool. But before I do this, I am unmounting my iPhone…just to be safe.

Results?

Rhythmbox is now showing my iPhone when I plugged the iPhone back in…because it asks, I say yes, you get the idea. Ah, great…but will it actually allow music appearing to be transfered to it to STAY on the device this time? This was the problem in the first place. I do a sync, music appears to be transferring… I unmount, no music on iPhone. So let’s see if after all of this, I can finally stop screaming at my computer.

Right click iPhone in app, “sync with library” option selected.

Activity below as it did from the beginning of this post, shows a sync. iPhone also shows this, but this happened before…meant nothing after unmount. So let’s see if it bothers to work this time. What bothered me the most was how the iPhone like before, would go in and out of sync mode on the phone screen, indicating this was another waste of time.

So what was the end result? Drum roll please…. NOTHING. Nope, does not work. Encourage you to try this with GTKpod too, so you can watch the error codes fly by. I did everything under the sun, but it’s clear as day that if you’re expecting success with Apple products in Ubuntu, despite Ubuntu’s claims, your miliage will vary. Too bad their marketing team didn’t get the memo. Worse, I love the distro….just hate how they neglect to tell users everything they need to know. Supports iPhones now my eye. Supports older devices from Apple is more accurate; until they break it with Apple updates.

So what appears to be going wrong?

I can browse into the iPhone via Nautilus, visit the /iTunes_Control/Music directory and sure enough, there are lots of numbered directories all starting with the letter F. Clicking into one, there is some of my music — it was indeed, transfered over to the iPhone 4. So the error is the database isn’t recording the change. The music is there, but the database isn’t recording like it does on older iPhones with older versions of the iOS.

So what are the alternatives then?

For myself, I happen to own an older iPod nano that works just great. Remember, this is not the Ubuntu team nor the folks that helped build the backend goodies to make this work in older releases of iOS. See, every time someone comes up with a work-around that makes this a seamless process, Apple offers and update and breaks all of that hard work. It’s just stupid to use an iPod on Linux because of this. And for myself, I choose not to use my phone as a music player anyway. I rather wear down the battery on something else.

My recommendations are generally going to be devices like the Sandisk Sansa Fuze products, or other similar MP3 devices that are not being hosed with problems. Another common alternative are MP3 players like the Archos 1. Note how BOTH devices explicitly express Linux compatibly in their recommended requirements? It’s because they work, unlike Apple products.

My advice is this. If you want to use your iPhone 4 with your Linux computer, become comfortable with using VirtualBox running Windows then using it’s USB functionality. Because otherwise, you are in for a lot of it working and then failing with every Apple update. If however, you want to support companies that support your OS, stop using Apple products in Linux. It’s really that simple.