I had some frustration with my iPod nano this week. I have been using it on Linux with Rhythmbox, which I find quite good for organising and playng my music, but it doesn’t have great iPod support. It can copy files to the iPod and it pretends to be able to delete them, but it just send them to a trash folder on the iPod so that the files are still using up memory, much like on a Mac except “empty trash” doesn’t work in this situation. So I have been manually deleting the files and then adding more through Rhythmbox. Somewhere along the lines my available memory (when there’s nothing on the iPod) went from about 880MB to 620MB. That a pretty big difference for someone who has 7GB of music in their library. It also shows there’s something wrong and I don’t like it when things are wrong.
First I tried to find any hidden files but there were none. Then I tried to reset the nano by holding down the menu and centre button for about 6 seconds. I did that a couple of times, rather than fixing any problems I managed to cause it to go into read-only mode so that I couldn’t do much at all with any of the files on it. So I decided to format it through iTunes on my husband’s MacBook.
Mounting in Linux
Formatting fixed the memory problem and I copied music from our library using his computer so that I could listen to it at work. I knew before I did it though that I would have to change my own computer settings to have the Mac-formatted iPod to mount properly in Linux. You see, iPods can be formatted for Windows or Mac, which for Linux means a different mount system. After a bit of googling I became aware that you can indeed use a Mac formatted iPod on Linux using an HFS+ mount. Now I don’t really know what all these different mounts mean, I just know I succeeded in implementing them.
When the nano was formatted for Linux it was using a vfat mount. In the fstab file (to access, in a terminal type
sudo gedit /etc/fstab or replace gedit with the name of your text editor) I used to have a line which said:
/dev/sdb2 /mnt/ipod vfat uid=1000,gid=1000,noauto,rw,user 0 0
which meant that device sdb2 (which my computer designated to my iPod) will automatically mount at /mnt/ipod. Now instead I have a line saying:
/dev/sdb3 /mnt/ipod hfsplus uid=1000,gid=1000,noauto,rw,user 0 0
because the designation of my iPod changed after the format to sdb3 and it’s mounting in the same place but using HFS+.
Trying to Add Music
Now that the iPod was mounting correctly I had to figure out gtkpod. In my travels I’d received the impression that this is one of the best programs on Linux for handling iPods so I thought I should give it a try. At first I made a boo boo and added all my music to the Podcasts library instead of the Local library (make sure you have the right one selected when you add directories). I tried to fix it several times but when I closed the program it didn’t keep the changes. Eventually it did, I’m not quite sure what I did but it kept the music in the right place and it remembers the playlist I made.
When I tried to read my nano from gtkpod it said it couldn’t read, or perhaps it couldn’t edit iTunes DB, which is essential for the program to do its thing. This was because I had journaling turned on (whatever that is – a record of the changes happening to the iPod to make it easier to fix if something goes wrong, formatting on the Mac turned it on) the HFS+ mount is read-only if journaling is enabled. So I plugged back into the Mac and in a terminal typed:
diskutil disableJournal /dev/diskXs3
where diskXs3 is the device name given to the iPod by the Mac. That was all fixed and the iPod was fully compatible with Linux and gtkpod.
Actually Adding Music
One of the good things about gtkpod is that you can change as many things as you like on the iPod but it doesn’t actually write the changes until you press the Sync button. Rhythmbox just copied files immediately, which slows down the program a lot. Usually I’d make a playlist and then transfer the whole lot at once but sometimes I forgot. You can delete files from the iPod and drag and drop other things to it and then sync it. It rewrites iTunesDB and it actually works! I’ve only done it once so I don’t know if something will go wrong after several uses but that one time seemed to go very smoothly – you know, after I ironed out all the other kinks.