Apple has made it as difficult as they could to sync the iPod Touch and iPhone to any application other than iTunes. As a result, syncing an iPod Touch or iPhone in Linux is still no easy task.
The way it works right now, Linux needs to get access to the iPod’s iTunes database via an SSH server over a wireless connection. The USB protocol is encrypted and has not yet been hacked.
For this guide, I’d recommend some experience with the command line, SSH, and your jailbroken iPod.
Setting up the iPod
- Your iPod must be jailbroken and running an SSH server. Use Installer.app to install OpenSSH and the BSD Subsystem.
- You don’t want your iPod go to sleep while it is connected. You can prevent this by turning auto-lock to never in the settings application.
- Find your iPod’s IP address. Connect to your wireless network, open
Settings->Wi-Fi, and tap the blue arrow to open the network details. Note the IP address field.
- If your IP changes a lot, you’ll want to set up a static one because you need the iPod’s IP to sync with Linux.
Installing Software on Ubuntu
All of the software you need is in the Ubuntu 8.04 repositories. If you’re using 7.10, there’s a repository available with the software:
http://ppa.launchpad.net/ipod-touch/ubuntu gutsy main
Install gtkpod from the gtkpod-aac package, which is compiled with support for AAC audio.
sudo apt-get install gtkpod-aac
Install iPod Convenience, a script that automates mounting and unmounting the newest iPods:
sudo apt-get install ipod-convenience
During the install of iPod Convenience, you will be prompted for your device’s IP address and a mount point. Use the iPod’s IP address you noted earlier, and use the default mount point.
The first time you sync, you need to have the iPod plugged in via USB to get around some of Apple’s protections on the iTunes database.
Use iPod Convenience to mount the iPod by running the command below appropriate for your device:
Hopefully, you will be prompted twice for your iPod’s password. (The default is “alpine”.) Then Ubuntu should recognize the iPod. If this fails, check that you can ping and SSH to your iPod’s IP address.
Now you can start gtkpod, which should see that there is an iPod plugged in and prompt you for the model. If gtkpod asks to create the directory structure, the iPod is likely to be not properly mounted.
You should now be able to sync using gtkpod!
When you are finished, close gtkpod. Use iPod convenience to unmount the iPod by running the command below appropriate for your device:
You will be prompted for your iPod’s password again. The iPod should then be unmounted.
If your changes are not showing on the iPod, SpringBoard needs to be restarted. You can do this using the SMBPrefs (SummerBoard) application’s restart SpringBoard button, or by rebooting.
- Music: You should have no trouble syncing music with gtkpod. However, encrypted files such as those from the iTunes Music Store will not work. Cover art works fine.
- Podcasts: gtkpod does not have a built-in podcatcher like iTunes does, but you can use an external program instead. However, I’d recommend the excellent and open source MobileCast application which runs on the iPod itself.
- Video: gtkpod will sync video as long as it is in the right format. Video
needs to be encoded in H.264 with AAC audio and some special settings.
I’ve already written a post about ripping DVDs to this format with HandBrakeGTK, which doesn’t work in Ubuntu 8.04. So, I’m still working on a way for converting video. (Anyone have a method not requiring ffmpeg to be recompiled?)[update] I’m now using WinFF and FFmpeg to encode video, and HandBrakeCLI to rip DVDs.
- Photos: gtkpod has an interface for managing photos, which I have not tested.
Noticed that this involves a lot of typing your iPod’s password? You can use SSH public keys for a passwordless login. I’ve written a post about this before, and there’s more information on the Community Ubuntu Documentation page. I haven’t tried this with my iPod yet.
If you’re stuck, there’s more documentation available. Leave a comment if you get your iPod working or have a problem.