Para eu não me esquecer mais: tentei de todas as formas possíveis sincronizar iPhone e iPod Touch pelo Linux, usando GtkPod, Ubuntu mais novo, iFuse, libgpod, usando softwares de terceiros, iTunes emulado pelo Wine, etc. A única forma que funcionou foi a seguinte:

1) Jailbreak no iPhone ou iPod
2) Instalar o SSH no iPhone ou iPod (ou um terminal)
3) Instalar o nano ou algum outro editor
4) Abrir o arquivo: /System/Library/Lockdown/Checkpoint.xml
5) Mudar o número do DBVersion de 4 para 2. Nesse ponto, abrir as músicas no iPhone ou iPod vai dar erro
6) Instalar, no Linux, a versão do libgpod mais atualizada de todas
7) Instalar o gtkpod
8) Instalar o ifuse
9) Criar um diretório no linux: /mnt/ipod. Se quiser deixar com permissão 777, para qualquer usuário montar o iPod, melhor

A partir daí, sempre que for montar o iPod ou o iPhone, basta conectá-lo na USB e rodar o comando:
ifuse /mnt/ipod

E sincronizar pelo GtkPod, Amarok, etc. Depois da primeira vez que sincronizar, abrir as músicas no iPod ou iPhone já volta a funcionar corretamente. Me revolta saber que praticamente todo o resto (RingTones, o formato da base de dados da maior parte dos aplicativos) são formatos abertos, apenas os álbuns de fotos e as músicas são esse banco de dados maluco que eles inventaram….

Tirado daqui: https://help.ubuntu.com/community/PortableDevices/iPhone