Programs fail to sync, stating the device is not present
A "gotcha" currently exists if you accidentally "sudo" the iphone-mount or ipod-touch-mount step. Doing so will create a template file set at your mount location (eg. /media/ipod) and subsequent mount operations will fail uncleanly. If this occurs, verify the device is indeed not mounted, clean out /media/ipod, verify the permissions are correct, and mount again as your normal user.
Music appears in the Ubuntu media player, but is not playable or does not appear on the iPhone/iPod device
The most frustrating "gotcha" is failing to have a correct FirewireGuid written onto your device. This is normally generated when the device is attached for the first time, assuming you had the device plugged in via USB at the time. If this hash is incorrect or not present, iTunes will refuse to load the database.
If the music still doesn't appear on your iPhone/iPod, you might have to restart the music playing programme. Select music and hold down the main button for a few seconds. You'll be dumped back to the main screen.
Please see the section above on setting the Firewire GUID.
If you soft-upgraded to firmware version 1.1.3 with the Official iPhone Dev package (this does not seem to affect iPhones updated or restored firmware 1.1.3 iPhone jailbroken with ziPhone), there may be issues with getting in via SSH (Connection refused, timeout, etc). Uni
Alternative solution with MNPlight
Add the http://iphone.lefessant.net/iphone link to your Ipod Touch or Iphone installer.
- Install MNPlight.
For Ipod Touch you need to set the "FirewareGuid" of device (see previous section).
Set the Fireware GUID in MNPlight‚ÜíPreferences.
Warning: Without this step MNPlight will corrupt your music database!
Copy your music in to /var/root/Media/MNPlight/Music folder of your Iphone/Ipod Touch and import it by MNPlight‚ÜíPlaylists‚ÜíImport songs from directory
nstall the OpenSSH package, reinstall the BSD Subsystem package, then reinstall OpenSSH. Try logging back in as root, with the password as whatever you set it to in a previous firmware version, or the default, which is still 'alpine'.
Once you have logged in, changes need to be made before you can mount everything properly with the ipod-convenience script. User-run programs now run as user "mobile" instead of root, and media has been moved from /private/var/root/Media to /private/var/mobile/Media. The ipod-convenience script expects them to be in the former, so a link needs to be made to point to the new Media folder. Issue
$ ln -s /private/var/mobile/Media /private/var/root/Media
while logged into the iPhone or ipod touch via SSH.
An alternative solution is to modify the ipod-convenience script (no need to create the link on the iphone/ipod touch):
$ cd /usr/share/ipod-convenience/ $ sudo cp mount-umount mount-umount.bak $ sudo gedit mount-umount
...and at line 62 modify:
#Mount our Music Directory sshfs root@$IPADDRESS:/var/root/Media $MOUNTPOINT/ -o workaround=rename
#Mount our Music Directory sshfs root@$IPADDRESS:/var/mobile/Media $MOUNTPOINT/ -o workaround=rename
No Cover Art with Amarok
If you find that after syncing your iPhone with Amarok the coverart is missing it is very likely that you are using the wrong version of libgpod. Amarok depends on libgpod and the Ubuntu repositories version installs libgpod v2 instead of the needed libgpod v3. Workaround:
- Uninstall libgpod v2. This will also uninstall Amarok
Open Synaptic and uncheck all the repositories but http://ppa.launchpad.net/ipod-touch/ubuntu
- Install libgpod v3 and Amarok
- Re-check all the previously unchecked repositories
- Start Amarok and connect to your iPhone
- Make sure that the correct kind of iPod is selected in Amarok (under iPod ‚Üí iPod Models ‚Üí Mobile Phones)
- Click on Refresh Graphics and on Disconnect (this might take a while)
You should have your Coverart correctly loaded on the iPhone afterwards.
Device full, "how were I to know?"
If you have followed previous steps and set it up to mount your device to a directory on your local computer, there is no way for any program interacting with that directory to tell how much free space is left on the device. In essence, the directory exists on your harddrive, and any attempts to divine free space would simply return the free space of that harddrive. For the time being, you can query the device itself in an SSH session. See previous sections of this wiki for information on how to connect to it in such a way.
Log into the device via SSH, then enter this.
$ df -m
The output of that command will look something akin to the following:
Filesystem 1M-blocks Used Avail Capacity Mounted on /dev/disk0s1 300 277 19 94% / devfs 0 0 0 100% /dev /dev/disk0s2 7443 7395 48 99% /private/var
- The bottom-most line signifies the storage partition.
Filesystem is a denominator for the device node of that partition.
1M-blocks shows its capacity in megabytes. In this case, 7443 mb.
Used shows how many megabytes are used. In this case, 7395 mb.
Capacity shows how much space is currently used, in percent. In this case, 99%.
Mounted on shows where the partition is internally mounted on the device, much like you mount the device's SSH interface to a local directory for file transfers.
Likely, you will find only the third and fourth columns of interest.
Firmware 2.x will not sync
Syncing iPhones and iPods Touch w/ Firmware 2.x
Apple has encrypted the library database on the latest firmware, and as such the above approach will not work. Apparently using the above approach will transfer the music, but Apple's music player on the iPod will not recognize any of the transferred files. The solution, then, is to use another music player on the iPod. Use the steps below to wireless transfer music to your iPod.
Syncing with Firmware 2.x possible!
Actually, you can edit /System/Library/Lockdown/Checkpoint.xml, find the DBVersion key, and change its value from 4 to 2 (MAKE A BACKUP FIRST!!!). See http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-iphone-2x/. This allows you to sync with libgpod, as well as any apps that use libgpod (Tested with Amarok and gtkpod: it works fine, except that podcasts cannot be synced (sunk?). Music syncs just fine. Rhythmbox doesn't seem to recognize it though).
Use the guide above for further configuration.