iPod Touch copies, but doesn't sync (gtkpod, libimobiledevice, amarok, ifuse)

Dear all,

(running openSUSE 11.1 with KDE 4.3)

I finally got my iPod Touch (2nd Gen) mounted using ifuse and libimobiledevice, using the following command:

ifuse ~/iPhone

And I was really pleased to finally copy some music files onto my iPod using gtkpod. I navigated to the ~/iPhone/iTunes_Control/Music folder and found the folders F00 to F49. Output of ls -l /:


-rw-r--r-- 1 sdods users  9833326 2010-04-02 20:07 F02/libgpod002545.mp3
-rw-r--r-- 1 sdods users  5911197 2010-04-02 20:06 F04/libgpod646189.mp3
-rw-r--r-- 1 sdods users  6160091 2010-04-02 20:06 F10/libgpod395378.mp3
-rw-r--r-- 1 sdods users 12753607 2010-04-02 20:05 F16/libgpod100847.mp3
-rw-r--r-- 1 sdods users  5815275 2010-04-02 20:06 F21/libgpod769014.mp3
-rw-r--r-- 1 sdods users  9859657 2010-04-02 20:06 F21/libgpod803494.mp3
-rw-r--r-- 1 sdods users  7254100 2010-04-02 20:06 F21/libgpod841431.mp3
-rw-r--r-- 1 sdods users 13246380 2010-04-02 20:07 F24/libgpod399253.mp3
-rw-r--r-- 1 sdods users 11185006 2010-04-02 20:06 F28/libgpod402592.mp3
-rw-r--r-- 1 sdods users 10135510 2010-04-02 20:06 F33/libgpod142097.mp3
-rw-r--r-- 1 sdods users  6227801 2010-04-02 20:07 F34/libgpod853372.mp3

I’m almost certain the files have been successfully copied to the device, because I’ve unmounted it, using:

fusermount -u ~/iPhone

and when I re-attached it, the files were still there.

So I just have a few problems:

  1. gtkpod won’t update the iPod database, even though a dialogue window opens and says it is doing just that. Does anyone know why this might be?

  2. Dolphin doesn’t recognise that the iPod is mounted? the command dmesg recognises it, but there’s no fstab for it. I wonder if anyone knows how I could create a udev rule to automatically mount the iPod when I plug it in. And how can I make dolphin recognise it?

  3. Amarok doesn’t recognise that it is mounted. I have both 1.4 and 2. I presume this is for the same reason that Dolphin doesn’t recognise it.

I’d be so grateful if someone could assist me.

Thanks in advance,
Sam

Sorry, I should have mentioned that because gtkpod doesn’t update the actual music database on the iPod, the device doesn’t recognise that there is any music on there. When I plug it in to my SUSE laptop again and use gtkpod, the files are not there, but then when I “Check iPod’s Files”, they show up as “Orphaned”.

Any assistance greatly appreciated.

Sam

Have you created the SysInfo and SysInfoExtended files in ~/iPhone/iTunes_Control/Device directory?

Hi, thanks for your reply.

I didn’t even have a “Device” directory. So… I created the SysInfo file as instructed here: http://gtkpod.wikispaces.com/Sysinfo+File#iPhoneiTouch

(I should say at this point that my iPod Touch is not jailbroken.)

So my SysInfo file looked like so:

FirewireGuid: 0x2230e72fdd13d62f

After running gtkpod, I got a HashInfo file in the same directory, and my SysInfo file changed to:

ModelNumStr: xB531
FirewireGuid: 0x2230e72fdd13d62f

But it still doesn’t properly sync! The “Sync in Progress” notice is never displayed on the iPod itself. And I can’t see the music tracks on the iPod.

Also, I can’t find anywhere any information about how to create a SysInfoExtended file. Do you have any info on this? And in gtkpod, it always warns me that “Extended info will not be used.” But I can’t find anywhere in the preferences to instruct it to write extended information.

One thing I’ve noticed is that gtkpod remembers that the tracks are “Orphaned”, although I don’t know if this is new. How does it remember that the tracks are orphaned after unmounting, disconnecting and then reconnecting? And yet it can’t update the DB!

Any more assistance will be greatly appreciated!

Sam

I think if you create SysInfo with FirewireGuid, it might not work when connected via USB.

Can you post the output of:

rpm -q libgpod4
ipod-read-sysinfo-extended

Hi, output as requested:

sdods@linux-dcng:~> rpm -q libgpod4
libgpod4-0.7.92-2.4
sdods@linux-dcng:~> ipod-read-sysinfo-extended
usage: ipod-read-sysinfo-extended <device> <mountpoint>

I removed the FirewireGuid from SysInfo, but still no joy. Do you have any suggestions on what the file should look like?

Thanks,
Sam

Your libgpod-tools are not the latest version. You need to install from the following repository:

http://download.opensuse.org/repositories/home:/FunkyM:/iphone/openSUSE_11.2/

To see that you have the latest version of libgpod-tools, try the following:

ipod-read-sysinfo-extended

You should get the following as output:

usage: ipod-read-sysinfo-extended <device|uuid|bus device> <mountpoint>

Once this is verified, delete the SysInfo and SysInfoExtended files you created earlier and create them again using the following command:

ipod-read-sysinfo-extended <UUID> <mountpoint>

This is similar to the command you used earlier but UUID is the full 40 character long serial number you got from the output of:

lsusb -v | grep -i iSerial

(Full 40 characters and not just the first 16 characters as mentioned in the document you read earlier).

After this is done, try gtkpod again :slight_smile:

Thank you, thank you, thank you.

It works - from gtkpod, that is. This is fantastic, thank you!

So now is there any way of getting it to mount with ifuse automatically when I plug it in? And is there any way of getting Amarok to recognise it?

Thanks again in advance,
Sam

Good to hear that it worked.

3 days back, I came across a this post iPod Touch in Linux - Mac Forums. Even though it was a bit old, I didn’t like the way they were talking about Linux users.

So, I decided to see the Linux situation. Actually, I don’t have an iTouch to test. Fortunately, my daughter has one. So, I borrowed it from her and tried out these things.

I haven’t done anything further like testing it under Amarok, automatic mounting etc. Anyway, I will try it out during the next weekend (I won’t get her iTouch during this weekend) and post it over here.

Yeah, some people on that thread don’t know what they’re talking about!! I find Linux frustrating at the best of times, but I always seem to get there in the end. And after I have my iPod syncing, I’ll be a very happy man!

Well, thank you for looking into it. I don’t know where you found that info about the latest version of libgpod-tools (?), but it certainly did the trick. Even the artwork is copied.

In fact, where did you find this information? I tried searching everywhere, and only posted to the forum as a last resort.

I look forward to hearing more from you after you’ve had another chance to test it further. And I’ll keep you posted if I figure it out.

I was desperately trying the ipod-read-sysinfo-extended command without any success. Then, in some forum thread (I think it was some Ubuntu forum) I found a patch that was submitted by someone. The patch code was printing a usage message that was different from the one I was getting when I run it without parameters. Then, I realized that a different version exists. After that I searched for that and went through the source to verify.

Just so everyone knows. The main issue here, aswell as for a lot of people, is a bug in libgpod that was now fixed which did not auto-create the Device folder and the SysInfoExtended file. Without it updating the database using the “Sync in Progress” screen does not happen or fails. Fix is in libgpod >= 0.7.93

Thanks. I was using version 0.7.92-2.3. Will switch to 0.7.93-2.1 from the FunkyM repo.

I’m having almost exactly the same troubles as the OP was having, except that I already have the latest version of libgpod-tools (and I have a first gen touch, not second). I also get two errors after mounting with ifuse and then opening gtkpod:

"<mountpoint>/iTunes_Control/iTunesDB (or similar) does not exist.  Import aborted"

and the not-so-helpful

"Newly mounted iPod at <mountpoint> could not be loaded into gtkpod."

The second error message only appears upon initially opening gtkpod. Once I get into the program, I can try to load the iPod, and I only get the first error message. Just for kicks, I’ve tried to delete the iTunes_Control/Device folder and re-creating them, but no luck. I’ve also tried adding one song to the pod using iTunes, hoping it would create the iTunesDB file, but it didn’t.

Being able to manage my iPod Touch is the last reason that I still have to keep Windows around. I’ve been waiting for a linux solution for the Touch for a while, and I’m close now. I just need some help to get this last step. Any suggestions? Thanks to all.

You seem to have installed the wrong packages. Make sure to have libgpod4 >= 0.7.92 installed from the following repository:
Index of /repositories/home:/FunkyM:/iphone/openSUSE_11.2

Yep, I’ve got it. libgpod-tools 0.7.93 and libgpod4 0.7.93. Am I not supposed to have both? I’ve actually got all the packages from that repo installed, except the devel and debug packages.

Are you able to run “ideviceinfo”? Then you have the base around libimobiledevice correctly setup.

Which desktop do you use (KDE/GNOME/…)?

How do you mount with iFuse (exact command line)?

Did you try Rhythmbox?

Well, I’ve got it working now. I don’t know exactly why, but it is working. After fiddling with it all weekend, and faced with the prospect of not having my iPod available during my work week, I decided just to put everything back on to the pod using iTunes in Windows. So after updating iTunes to version 9.1, which was newly available, I tried to fire up iTunes. It crashed immediately. I was unable to get 9.1 working after several attempts. Finally I uninstalled and started fresh with iTunes 9.0.0, which I still had a local copy of. That worked, so I re-built my library and synced my pod. Then I tried it again with gtkpod because I’m a glutton for punishment. But this time everything went smoothly. The iTunesDB file had been written by the older version of iTunes, but not by the newer version.

So for the moment things are working as I expected them to. Thank you for your help. If you’re still interested in the answers to your questions, they are below.

Thanks again.

–chriscrutch

All good there, then. ideviceinfo works as expected.

Which desktop do you use (KDE/GNOME/…)?

KDE 4.3.5

How do you mount with iFuse (exact command line)?

ifuse ~/iphone

Did you try Rhythmbox?

Yes. The iPod shows up three times in the “Devices” section. Each one of them shows that the pod is empty, although it isn’t. Trying to copy a file from the Library to two of the three iPods produces the error :

PTP Layer error 02ff: get_storage_freespace(): could not get storage info.

.
Copying a file to the third of the three iPods initially seems to work, but eventually fails with the error:

PTP Layer error 02ff: LIBMTP_Send_File_From_File_Descriptor(): Could not send object.

The situation with Rhythmbox persists even after gtkpod began to work.