How to move files by USB between a version 6.1 iPod Touch and a Linux machine

airplane-modefile-transferipod-touchunixusb

I've recently dug out my old 5th Gen (A1421) model iPod Touch and put it back to factory settings. It's currently running version 6.1 (10B141) of its OS. I don't want to find that a software update has broken it one day, so my goal is to keep it offline as much as possible (specifically, Airplane Mode) and have it only talk to my PC, a Xubuntu 20.04 Linux machine. In line with this goal, I've never linked it up with any sort of iTunes software or Apple account.

It was my hope that with the iPod set up as above, I would be able to connect it by USB to my PC and transfer files as I pleased. My goal is to use it to play mp3s. After all, Linux typically ignores whatever file system visibility restrictions that the connected device is trying to enforce. Now that I've tried that, my PC is only reporting that two devices exist: "iPod", contained only an empty DCIM folder, and "Documentes on iPod touch", containing nothing. When I try to move files to either of these, I either get an error message saying that a file doesn't exist or an error message saying that a directory doesn't exist. Unlocking the iPod does not change this, and the iPod does not seem to respond at all to anything that I'm doing on the PC, other than trying to charge its battery from my machine.

So, given my goals, what can I do to be able to move files between the two devices? Could anything that I've done, such as putting the iPod in Airplane Mode, be to blame for my difficulties? I have managed to use ifuse to get new files on to the iPod, but the iPod itself shows no signs of recognizing them.

Best Answer

TL;DR — Try GtkPod. If no luck, install the latest version of libimobiledevice and try Rhythmbox. You may need to bootstrap the process using iTunes. You may be completely out of luck with a 5th-generation iPod Touch.

iPods and iOS devices use a proprietary database-style design, with seemingly arbitrarily named files scattered around the filesystem; not a simple artist/album/track hierarchy of audio files like you probably have on your computer. You will not be able to achieve what you want just by using a file explorer. What you're looking for is a drop-in replacement for iTunes, software which understands how the iPod handles music files. Back in the the day, YamiPod was a very good option (I personally used it on Windows Me, since iTunes only supported XP onwards), and GtkPod is still a popular choice for Linux users of older devices, but both now appear to be unmaintained.

Most music library managers and players for Linux, such as Rhythmbox, have implemented iPod syncing (music only), so I'd try using that, but YMMV. For a larger list of such software, see Comparison of iPod file managers on Wikipedia (though do note that some of the info there about what supports what seems to be outdated).

Under the hood, most apps that support interacting with iPods and iOS devices, including Rhythmbox, use libimobiledevice, which is an impressively feature-rich API. Unfortunately, there is a clear lack of user-friendly software that takes full advantage of it (beyond music syncing). The library is probably available in your distro's repos, but they may not have the latest version; ensure you have the latest version installed if syncing in Rhythmbox doesn't appear to be working. It doesn't have support for the latest devices/iOS versions (indeed, their FAQ emphasises the lack of full support, but doesn't go into detail about what specifically is and isn't supported), but I believe there is good support at least up to iOS 6.1.2, so it's worth a shot.

If none of that works, or if you want to explore additional functionality, take a look at the Debian article on the subject.