Ce site est artisanal, veuillez ne pas m'en vouloir. Je m'en sers comme cobaye pour des expériences.
Apple a pour politique de verrouiller son iPhone et d'imposer l'utilisation d'iTunes pour le gérer. Et par conséquence, l'iPhone ne prend pas en charge le driver universel de stockage de masse qui permet de connecter n'importe quelle clé USB ou disque dur externe à n'importe quel ordinateur. Or, comme nous le savons, iTunes n'existe que pour Windows ou Mac OS... pas pour Linux.
Divers moyens existent pour contourner ce problème et gérer l'iPhone via Linux ; le plus connu de ces moyens est certainement d'installer un serveur SSH dessus puis de s'y connecter depuis l'ordinateur sous Linux au moyen de ce protocole sécurisé. Le principal problème de cette méthode étant qu'il faut recourir au Jailbreak, ce que tout le monde ne veut pas faire.
Heureusement, ces derniers temps, le système FUSE permet enfin de se connecter à l'iPhone et de le monter comme un matériel de stockage de masse classique, malgré quelques limitations sur lesquelles nous allons revenir.
Quelques infos tout d'abord sur le système utilisé à l'origine et sur les versions des programmes que je vais installer :
Tout ce qui suit est valide pour Gentoo Linux. Les connaisseurs pourront probablement adapter ceci, s'ils le souhaitent, pour leur propre distribution. Et je suppose ici que vous savez utiliser Portage et que vous avez un minimum de connaissance du système Gentoo (ce qui est vraiment l'euphémisme de l'année puisque pour utiliser Gentoo... il faut savoir comment ça marche, Gentoo n'étant pas précisément un système grand-public).
Les prérequis : il faut que vous disposiez des paquets suivants :
et vous devez avoir activé le support de FUSE dans votre noyau. Il se trouve dans « File systems ».
Installer FUSE : il suffit d'exécuter la commande habituelle de Portage pour installer le programme (attention, un autre paquet s'appelant « fuse », spécifiez bien sa catégorie :
# emerge sys-fs/fuse
Ça, c'était la partie facile. La suite l'est un peu moins.
L'idée, c'est qu'un programme appelé iFuse va interagir avec une bibliothèque appelée libiphone et utiliser l'interface usbmux pour communiquer avec l'iPhone.
Il y a aussi une bonne nouvelle : Gnome a annoncé que la dernière version de GVFS prendrait FUSE en charge, et que par conséquent, une fois les bons programmes installés, celui-ci serait capable de monter automatiquement l'iPhone de la même façon qu'il monte automatiquement un CD-rom ou une clé USB.
Cependant, les outils dont nous avons besoin ne sont pas encore dans l'arbre de Portage et il faut donc aller les chercher sur un overlay appelé rion. Il faut donc ajouter cet overlay par layman (ou playman pour les utilisateurs de Paludis).
Il fallait jusqu'ici aller chercher les paquets sur l'overlay rion mais depuis la mi-décembre 2009, ils sont passés dans l'arbre officiel de Portage. Cependant, libiphone, libplist et ifuse ne fonctionnent que pour l'architecture ~amd64. On ne peut donc plus les installer aussi simplement sur un système ~x86.
Je laisse pour le moment le vieux guide, en attendant de faire d'autres essais. Il devrait fonctionner pour ~amd64 sans problème.
Installons nos outils : il y a quatre paquets à installer qu'il faut d'abord démasquer, en ajoutant ces lignes au fichier /etc/portage/package.keywords (et en remplaçant ~x86 par la bonne architecture le cas échéant) :
app-pda/usbmuxd ~x86
Puis lancez l'installation :
app-pda/ifuse ~x86
app-pda/libplist ~x86
app-pda/libiphone ~x86# emerge usbmuxd ifuse libplist libiphone
La théorie est toute belle mais... voilà, la dernière version de GVFS disponible pour Gentoo n'est pas la dernière existante, donc il va falloir faire sans.
Monter un disque ne présente à priori pas de difficulté. Une règle pour udev indique que si un iPhone se connecte, udev devrait démarrer le démon usbmuxd par lequel le système va communiquer avec le téléphone. Une simple commande de montage devrait ensuite suffire.
Mais ce n'est pas si simple : pour une raison quelconque, cette règle ne fonctionne pas pour moi, si bien que quand je branche mon iPhone, rien ne se passe. L'idée est donc de lancer usbmuxd à la main, puis de monter le système de fichiers de l'iPhone dans un dossier préalablement créé pour l'accueillir.
Ce qui suit est donc une méthode bancale, temporaire (j'espère) et qui nécessite que vous ayiez les droits d'administration (utilisateur root) :
Créez le point de montage si nécessaire :
# mkdir /media/iPhone
Lancez usbmuxd en mode « no-daemon » et verbeux (pour qu'il affiche son activité) :
# usbmuxd -v -f --udev
Si usbmuxd ne tourne pas dans un terminal à part, ifuse se plaindra qu'aucun iPhone n'est connecté ; laissez-le donc tourner et prenez un autre terminal pour la suite.
Montez l'iPhone au moyen du petit programme iFuse :
# ifuse /media/iPhone
Note : la plupart des sites que j'ai consultés indiquent d'ajouter --root à la fin de cette commande pour accéder au système de fichier de l'iPhone dans son ensemble, ce qui ici génère une erreur.
Pour démonter l'iPhone il suffit d'utiliser la commande habituelle :
# umount /media/iPhone
Vu la nature du téléphone, il est fortement recommandé de ne pas écrire dessus mais de se contenter de récupérer des données, par exemple des photos.
Par ailleurs, il est inutile de vouloir utiliser cette méthode pour placer de la musique dans l'iPod : la base de données de l'iPod est en effet cryptée, donc non seulement ça ne fonctionnera pas, mais en plus si vous reconnectiez l'iPhone à iTunes, celui-ci remettrait cette base de données à zéro, entrainant la perte de toute la musique qu'elle contiendrait déjà.
En tous cas, c'est efficace pour une chose : récupérer ses photos quand F-Spot vous laisse tomber !
Le contenu et les photos de cette partie du blog
Les articles antérieurs à mai 2007 ont émigré, vous les retrouverez peut-être, en 2012...
Dessin de Clem par Chantelune • Dessin « anti-Sarko » basé sur une image appartenant à Canal+, merci à eux.
Site : Copyright © 1995-2010 Syntax Web Interactions - Tous droits réservés sauf mentions contraires sur certaines pages.