Table des matières

, , , , , ,

Comment synchroniser un iPhone 3g et 3gs sous ubuntu ?

Pour l'iPhone 3gs et l'iPhone 3g, fonctionnant avec le firmware 3.0 à 3.1.3, il est possible de synchroniser ses musiques, ses photos et ses vidéos sous ubuntu en se passant de iTunes. Cette methode est utile pour les iPhone jailbreaké ou non.

iPhoneOS 4.0 semble ne pas être pris en charge.

Depuis Ubuntu Natty 11.04, les iPhone, iPod Touch et iPad sont supportés en natif!

Pour utiliser un iPhone avec iOS 4, 5, 6 et iOS 7 sous Ubuntu Precise et version ultérieur, il faut utiliser Rhythmbox, inclus avec Ubuntu depuis Precise

Ces explications se rapportent aux versions précédentes (<10.04) d'Ubuntu, et servent d'archives pour les anciennes astuces qui pourront peut-être être réutilisées en cas de futurs problèmes d'incompatibilité.

La première méthode est fortement recommandée.

Marche également pour tous les iPod Touch et iPhones jusqu'au fw 3.1.3 inclus.

Première méthode

La méthode qui semble la plus simple pour le premier venu. En effet elle ne nécessite pas de compilation, ce qui est parfois problématique. En outre il semblerait que certaines personnes rencontrent des problèmes avec la deuxième méthode. De plus cette méthode ne requiert pas de montage manuel de l'iPhone, ce dernier étant fait automatiquement, contrairement à la deuxième méthode. Enfin cette dernière supporte les pochettes d'albums et utilise Rhythmbox, qui est installé par défaut avec Ubuntu.

La synchronisation de vidéos est1) possible avec gtkpod, que vous pouvez soit installer depuis la logithèque, soit compiler comme dans la deuxième méthode pour avoir les dernières mises à jour.

La méthode est disponible ici.

Voici sa traduction française :

Cela va installer la dernière version de fink fuse, “fusepod” et la rendre utilisable par les utilisateurs normaux2)

sudo adduser "$USER" fuse
echo -e "\n\nVeuillez entrer le nom de votre iPod:"
read iPod_name
mkdir -p "$HOME/.gvfs/$iPod_name/iTunes_Control/Device/"
ipod-read-sysinfo-extended `sudo lsusb -v | grep 'iSerial' | awk 'length($0)>=68' | awk '{print $3}'` "$HOME/.gvfs/$iPod_name/"

Il vous sera demandé le nom de votre iPod Touch/iPhone. Il faut mettre le même nom que l'icône sous lequel apparait votre iPhone sur le bureau.

Si votre iPhone n'apparait pas à gauche, essayez d'y accéder en cliquant sur son icône sur le Bureau, et en cliquant sur “Ouvrir Rhythmbox”.

Si vous avez des problèmes, essayez de redémarrer votre iPhone. Si cela ne suffit pas, regardez les commentaires sur ce blog en anglais.

Avec KDE, il est possible de rencontrer des problèmes, essayez cette méthode (en anglais aussi).

Deuxième Méthode

Les procédures qui suivent utilisent des logiciels en développement. Des bugs peuvent survenir.

ATTENTION : Ce tutoriel ne fonctionne plus vraiment depuis quelques temps, suite à des changements dans le git. (cf. Source - voir les dernières pages)

Installation de iFuse

Pour Ubuntu 9.10 et suivant

Il faut ajouter le dépôt ci-dessous, puis recharger la liste des paquets :

sudo add-apt-repository ppa:pmcenery/ppa

Pour Ubuntu 9.04 et antérieures

Ajouter le dépôt PPA de pmcenery via les deux commandes suivantes :

echo "deb http://ppa.launchpad.net/pmcenery/ppa/ubuntu `lsb_release -sc` main" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/pmcenery/ppa/ubuntu `lsb_release -sc` main" | sudo tee -a /etc/apt/sources.list

Puis mettre à jour la liste des clé fiables via la commande suivante3) :

sudo apt-get update 2>&1 > /dev/null | awk '/PUBKEY/{print $NF}' | xargs sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com

Maintenant, rechargez la liste des paquets.

Installez les paquets ifuse et libiphone-utils.

Ceci installera usbmuxd, qui est nécessaire pour permettre à votre système de communiquer avec votre iPhone. Cela installera aussi ifuse qui vous permettra de monter votre iPhone.

Préparation du système

ps ax | grep usbmuxd

Si usbmuxd est actif, vous aurez la réponse suivante:

6822 ?        S<     0:00 /usr/sbin/usbmuxd -u -U
21571 pts/0    S+     0:00 grep usbmuxd

Les chiffres en début de ligne seront différents que ceux dans l'exemple ci-dessus.

sudo mkdir /media/iPhone
sudo chmod 777 /media/iPhone
#user_allow_other

en

user_allow_other

Sauvegardez et quittez.

usermod -aG fuse votre_login

Redémarrez votre machine. Ensuite, vérifiez que vous faites bien parti du groupe fuse en tapant dans un terminal:

id

Vous verrez alors les groupes auxquels vous appartenez, dont fuse.

Votre iPhone sera maintenant accessible en tapant dans un terminal: Pour le montage

ifuse /media/iPhone

Pour le démontage

fusermount -u /media/iPhone

Compilation de la librairie libgpod4 nécessaire à la synchronisation

git clone git://gtkpod.git.sourceforge.net/gitroot/gtkpod/libgpod
cd libgpod
git checkout
CFLAGS="-g -O0" sh autogen.sh --prefix=/usr
make
sudo checkinstall

A partir de là, le programme vous posera plusieurs questions:

Préparation de l'iPhone

ifuse /media/iPhone
mkdir -p /media/iPhone/iTunes_Control/Device/
lsusb -v | grep -i iSerial

La commande vous retournera plusieurs informations dont une du type :

iSerial                 3 fb9961044533cd317cb6f2bce3424c2771ae16d6

Le numéro de série qui nous intéresse est dans notre exemple: fb9961044533cd317cb6f2bce3424c2771ae16d6

ipod-read-sysinfo-extended votre_numéro_de_série /media/iPhone

Ceci va créer le fichier /media/iPhone/iTunes_Control/Device/SysInfoExtended contenant des informations au format XML.

Installation de gtkpod

git clone git://gtkpod.git.sourceforge.net/gitroot/gtkpod/gtkpod
cd gtkpod
git checkout
CFLAGS="-g -O0" sh autogen.sh --prefix=/usr
make
sudo checkinstall

Synchronisation

A la première utilisation, gtkpod vous demandera le modèle de votre appareil. il apparaitra ensuite dans l'arborescence, dans la fenêtre de gauche. A partir de là vous pourrez transférer votre musique, vos photos et vidéos sur l'iPhone. Une fois l'opération effectuée, enregistrez les modification. N'oubliez pas d'éjecter votre iPhone de gtkpod, puis de votre système en tapant dans un terminal :

fusermount -u /media/iPhone

Troisième méthode

Cette méthode, assez ancienne et non-vérifiée récemment FIXME à l'avantage de fonctionner sans cable USB, grâce au SSH, mais requiert un iPhone jailbreaké ainsi qu'un firmware <3.0

La structure de la base de données de musique du firmware 3.0 ayant changé, il n'est pas possible de transférer sa musique à partir d'ubuntu et de l'écouter avec l'iPod. La solution VirtualBox 2.x + iTunes fonctionne.

Update 15 Décembre 2009 : Il est désormais possible de synchroniser sa musique pour les firmware 3.x jailbreaké ou non !!! C'est encore en version alpha mais ca fonctionne : voir ce message dans le forum et Comment synchroniser un iPhone 3g et 3gs sous ubuntu ? FIXME c'est cette page de doc ??!!

.

Le problème des firmware 2.X consiste en l'utilisation par l'iTunes de l'iPhone d'une base de données spécifique pour gérer la bibliothèque des musiques et vidéos de l'appareil. Selon que vous souhaitez ou non utiliser l'iPod de l'iPhone, deux solutions s'offrent à vous.

Les manipulations suivantes on été testées sur iphone et ipod-touch jailbreakés pour tous les firmwares jusqu'au 2.2.1

Synchronisation avec l'iPod de l'iPhone

Nous expliquons ici comment synchroniser avec Amarok ou gtkPod. Ces deux logiciels permettent de synchroniser musiques, playlistes et vidéos entre votre PC et votre iPhone. Ils transfèrent tous les deux les jaquettes des albums et chansons déjà présents dans votre collection, mais ne gèrent pas les aperçus des vidéos (la faute en incomberait à l'iPod de l'iPhone).

Préparation de l'iPhone

Pré-requis

Lorsque l'iPhone passe en veille, le wifi est automatiquement désactivé, excepté lorsqu'il est relié en USB à l'ordinateur. Pensez toujours à connecter votre iPhone en USB lors des transferts wifi pour éviter une coupure réseau. Vous pouvez également installer l'application “Insomniak” disponible dans Cydia qui permettra que votre iPhone soit toujours opérationnel même lorsque son écran est en veille.

Se connecter en ssh sur l'iphone via la commande (mot de passe : alpine):

ssh root@adresse_ip_de_l'iphone

Il est possible que la clé SSH ne soit plus valide (mise à jour du firmware, …), il vous faudra donc régénérer celle-ci pour que la connexion puisse être faite :

ssh-keygen -R adresse_ip_de_l'iphone

Effacez l'ancienne base de donnée de l'iPhone :

rm /private/var/mobile/Media/iTunes_Control/iTunes/iTunesDB
rm /private/var/mobile/Media/iTunes_Control/iTunes/iTunesDB.ext

Changez la base de donnée pour une version compatible Linux en éditant le fichier /System/Library/Lockdown/Checkpoint.xml de l'iphone

 pico /System/Library/Lockdown/Checkpoint.xml

ou

 nano /System/Library/Lockdown/Checkpoint.xml

selon l'éditeur texte installé sur l'iPhone.

Trouvez la clé “DBVersion” et changez sa valeur de 4 à 2.

Déconnectez le ssh.

Vous disposez maintenant d'un iPhone sans contenu multimédia et dont la base de donnée est synchronisable avec des logiciels Linux.

Préparation de Ubuntu

Dès lors que votre iPhone dispose d'un serveur SSH, vous pouvez vous y connecter de manière transparente sous Ubuntu. Nous vous proposons ici d'utiliser ipod-convenience qui permet de monter et démonter le contenu de votre iPhone dans un répertoire média de votre installation Ubuntu.

Pour ubuntu 7.10, il faut rajouter le dépôt suivant dans synaptic pour pouvoir installer ipod-convenience :

deb http://ppa.launchpad.net/ipod-touch/ubuntu gutsy main

Pensez à mettre à jour la liste des logiciels pour pouvoir installer ipod-convenience.

Installez le paquet ipod-convenience. Pendant l'installation l'assistant de configuration va demander de renseigner les paramètres de montage :

  1. l'adresse IP de l'iphone (ou l'alias que l'on a configuré précédemment),
  2. le point de montage : celui-ci est un dossier qui va être créé pour recevoir l'iPhone. Indiquez par exemple /media/iphone

configuration de ipod-convenience

Branchez votre iphone sur une prise USB, ceci est nécéssaire pour générer le hash (ou firewireGUID) utilisé par la base de données iTunes. Si nécessaire, ajoutez vous au groupe fuse, déconnectez vous, puis reconnectez vous.

Vous pouvez désormais connecter et déconnecter votre iphone depuis un terminal avec les commandes suivantes (mot de passe : alpine ):

iphone-mount
iphone-umount

Votre iphone est alors monté sur /media/iphone

Problème éventuel

la commande 'iphone-mount' affiche une erreur et rien ne se produit :

 ssh: : Name or service not known

Ceci est un bug connu sur la dernière version de ipod-convenience.

En attendant le patch il suffit d'éditer le script :

 sudo gedit /usr/bin/iphone-mount

Puis remplacer la ligne 66 :

if ssh root@192.168.6.136 test -d /var/mobile; then

Par :

if ssh root@$IPADDRESS test -d /var/mobile; then

Eviter que l'iPhone ne demande un mot de passe à chaque connexion

Se connecter en ssh à l'iPhone :

ssh root@<device ip>

Entrer le mots de passe dottie si il est en version 1.1.0 et alpine si il est en version 1.1.1 ou supérieur

Tapez ensuite les commandes suivantes

chmod 0755 ~ ~/.ssh
chmod 0644 ~/.ssh/*
nano /etc/ssh/sshd_config

Cherchez la partie commençant par #RSAAuthentication et modifiez la en enlevant tout les « # ».

Code :

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

Faites CTRL+O pour sauvegarder puis CTRL+X pour quitter.

Pour ceux qui n'ont pas d'éditeur de texte convivial, sed suffira pour enlever ce « # ». Exécutez les commandes suivantes (sans oublier le “.” juste avant “&&”):

cp /etc/ssh/sshd_config sshd_config.bak
cp /etc/ssh/sshd_config . && sed "s/#RSAAut/RSAAut/g" sshd_config > /etc/ssh/sshd_config
cp /etc/ssh/sshd_config . && sed "s/#PubkeyAut/PubkeyAut/g" sshd_config > /etc/ssh/sshd_config
cp /etc/ssh/sshd_config . && sed "s/#Authorized/Authorized/g" sshd_config > /etc/ssh/sshd_config

Tapez ensuite :

reboot

Votre iPhone redémarre tout seul.

Maintenant quand vous tapez :

ssh root@<device ip>

la connexion doit se faire sans demander de mot de passe.

Avec Amarok

Ouvrez Amarok, cliquez sur le menu “Configuration > Configurer Amarok”.

La liste de lecture de votre iPhone doit maintenant apparaître dans l'onglet “Périphérique” de Amarok. Si vous avez utilisé la méthode avec ipod-convenience (FIXME Lien à mettre à jour) vous pouvez ajouter “iphone-mount” à la commande de pré-montage et “iphone-umount” à la commande de pré-déconnexion. Précisez le modèle de l'appareil : toujours dans l'onglet “Périphériques”, cliquez sur le menu “iPod > Définition du modèle de l'iPod > Mobile Phones > iPhone”.

Vous pouvez maintenant monter votre iPhone directement sous Amarok dans l'onglet Périphériques, puis synchroniser vos médias.

Iphone en cours de synchronisation sous Amarok

Comme Amarok ne permet pas l'édition des tags des vidéos mp4, les vidéos apparaitront toutes sous l'intitulé “untitled” dans l'iPod de l'iPhone. Afin de modifier les tags auteur, titre et album des fichiers vidéos, vous pouvez par exemple utiliser easytag avant le transfert vers l'iPhone.

N'oubliez pas de redémarrer l'iPod de l'iPhone pour voir les changements dans la bibliothèque musicale (lancez iPod et appuyez environs 12 secondes sur le bouton home).

Avec gtkPod

Montez l'iPhone dans un terminal avec la commande iphone-mount (voir précédemment FIXME Lien à mettre à jour) puis ouvrez gtkPod. Lors du premier lancement, celui-ci génére automatiquement une nouvelle base de données sur votre iPhone.

Vous pouvez maintenant synchroniser vos médias avec gtkPod. À la différence d'Amarok, gtkPod permet non seulement la synchronisation des photos mais aussi l'édition des tags mp4 videos qui apparaitront sous l'iPod de l'iPhone,

Gestion de l'iPhone sour gtkPod

Maintenant vous pouvez utiliser votre iPhone sous Ubuntu avec gtkPod et Amarok mais ne réutiliser pas iTunes après sous peine de devoir recommencer la manipulation.

Synchronisation manuelle de l'iPhone

Avec cette méthode, vous déposez vos fichiers multimédias par ssh dans l'arborescence de l'iPhone. Votre musique et vos vidéos ne sont plus accessibles par l'iPod de l'iPhone et vous devez utiliser d'autres logiciels iPhone pour les lire.

Si vous avez suivi la méthode ipod-convenience (voir ci-dessus), l'arborescence de votre iPhone est accessible par votre navigateur de fichier dans /media/ipod/.

Navigation dans l'arborescence de l'iPhone sous Nautilus

dTunes

dTunes est disponible via Cydia. Il permet de lire musiques et vidéos qui sont stockées dans le répertoire /var/mobile/Library/Downloads de l'iPhone.

pwnPlayer

pwnPlayer ne permet que de lire la musique pour le moment. La marche à suivre est similaire à celle de dTunes.

Attention : pwnPlayer n'est plus maintenu.

Mplayer

MPlayer est disponible via Cydia. Il supporte les formats mpeg4, h.264, wmv, mp3, aac, wma et real media et s'installe de façon similaire aux deux logiciels précédents. Les fichiers doivent être stockés dans le répertoire /private/var/media.

Je n'ai pas de son sur les fichiers .MOV avec MPlayer sur IPhone 3GS iOS 3.1.3 :-(

Tethering USB

Partage de la connexion Internet du téléphone portable avec un PC (sans connexion Internet) via son cordon USB.

Installation de ipheth-utils (jusqu'à Ubuntu Lucid)

Il faut ajouter le dépôt PPA de Paul McEnery 5), puis recharger la liste des paquets ou copier/coller la ligne de commande suivante dans une fenêtre de Terminal :

sudo add-apt-repository ppa:pmcenery/ppa && sudo apt-get update -qq

Puis installez le paquet apt://ipheth-utils

Installation de ipheth-utils (a partir de Ubuntu Maverick)

Ce paquet est déjà présent dans le dépôt Universe, il suffit d'activer ce dépôt et d'installez le paquet apt://ipheth-utils.

Mise en oeuvre

Brancher votre iPhone en ayant activé avant le partage de connexion sur l'iPhone.

Pour vérifier que le module est charge, tapez :

lsmod | grep ipheth

Normalement, une nouvelle interface réseau est créée.

ifconfig

Puis sur vôtre iPhone, aller dans “Paramètres⇒Général⇒Réseau⇒Partage de connexion” et l'activer.

Si “Partage de connexion” n'apparait pas, se rendre sur http://help.benm.at avec vôtre iPhone et cliquer sur “Tethering”, et sélectionner vôtre pays et la porteuse de vôtre mobile.

Ne pas oublier d'installer User Agent Switcher pour firefox, puis redémarrer Firefox et choisir iPhone 3.0 dans l'onglet Outils de “User Agent Switcher”.

Pour que le “User Agent” soit positionné dès l'ouverture de Firefox, plusieurs solutions:

echo 'user_pref("general.appname.override", "Netscape");' >> user.js
echo 'user_pref("general.appversion.override", "5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16");' >> user.js
echo 'user_pref("general.platform.override", "iPhone");' >> user.js
echo 'user_pref("general.useragent.appName", "Mozilla");' >> user.js
echo 'user_pref("general.useragent.override", "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16");' >> user.js
echo 'user_pref("general.useragent.vendor", "Apple Computer, Inc.");' >> user.js
echo 'user_pref("general.useragent.vendorSub", "");' >> user.js

iPhone OS 4.0

Il semblerait que ces méthodes ne fonctionnent pas avec l'iPhoneOS 4.0. Ce dernier est encore en phase de test, mais il sera bientôt disponible pour le public. Apple aurait en fait changé le hash de la base de données. Évitez par conséquent l'installation de l'iPhoneOS 4.0 si vous tenez absolument à utiliser ces alternatives à iTunes.

L' iOS 4 est sorti, la technique fonctionne toujours ! (Testé avec iOS 4.01, iPhone 3Gs)

Ça ne marche pas avec la dernière version de IOS 4

La dernière version d'ipheth inclue le support de l'iPhone 4 et ça fonctionne parfaite avec iOS 4.2.1 (dernière version).

Il est également possible de lire la musique avec Amarok (du moins sous KDE) moyennant quelques subtilités donné dans ce sujet du forum.

Solution ?

Avec un iPhone jailbreaké : Par SSH, modifier le fichier /System/Library/Lockdown/Checkpoint.xml, y trouver la clef DBVersion, et la ramener à 4, utilisant ainsi la version de base de donnée compatible avec Rhythmbox & co, utilisée par l'iPhoneOS 3.1.2.

Liens


Page créée par emris, mise à jour par JeanMat ( première méthode), retravaillée par TheCameleon

Mise en forme : draco31.fr

1) peut-être - je n'ai pas re-testé récemment
2) non-root
3) trouvée par Sébastien MANSFELD :-)
4) Vous pourrez le désinstaller plus tard en faisant dpkg -r libgpod4