[Mise à jour]
Pratiquement tout ce que j’indique plus bas est obsolète. La seule chose à faire est de brancher l’iBidule et de répondre oui à sa question concernant l’autorisation de connecter !Plus rien à installer ça l’est déjà par défaut, plus de montage de dossiers de l’iPhone à démonter avant d’accéder aux photos dans Shotwell, les fichiers sont accessibles directement dans le gestionnaire de fichiers de Linux comme si l’iBidule était un disque externe.
Seule condition, être en Ubuntu 20.04 ou ultérieur. Ou toute distribution Linux de niveau équivalent, évidemment. Et toujours penser à déverrouiller l’iBidule avant de tenter d’accéder a son contenu, bien entendu.
Testé sur iPhone 6s mais je pense que c’est valable pour d’autres téléphones/tablettes, etc..
Je laisse les autres messages de ce fil pour Ubuntu de versions antérieures ayant encore cours.- - - - - - - - - - - - - - - - - - - -
Pour les très rares (s’il en reste) utilisateurs de Windows
il est possible d’utiliser un iPhone presque aussi facilement qu’avec un Mac puisqu’il existe une version iTunes pour Windows.
Pour Linux, plus précisément Ubuntu dans mon cas, jusqu’à cette nuit je trouvais que les choses n’étaient vraiment pas faciles.
En connectant l’iPhone, on voyait monter un volume appelé Documents contenant les dossiers des applis non Apple et rien d’autre. Je voyais chez moi un dossier Firefox qui contenant les éventuels fichiers téléchargés et un dossier VLC avec les vidéos ajoutées par iTunes mais ne provenant pas de l’appstore. Ni les photos ni les fichiers audio, ni les notes, rien de plus.
La solution désolante qu’on trouve proposée un peu partout consiste à installer iTunes dans un émulateur Windows (Wine généralement). Ça non, ce n’est pas pour moi !
J’ai donc lu des kilomètres de docs incomplètes, mal fagotées, avec parfois des erreurs, souvent pas à jour et j’ai passé des heures à faire des essais pour raccrocher ces bouts d’infos. J’ai fini par trouver une manière de faire donnant un résultat satisfaisant bien qu’imparfait.
Édition — voir le message plus bas sur ce fil au sujet de l’intégration avec Shotwell
La seule chose un peu bête est que, dans l’état actuel des choses, la prise en compte interne à Shotwell (le
iPhoto ou
Photo de Linux) pour importer les photos prises avec l’iPhone fonctionne
une fois sur cinq.
Par contre l’importation dans Shotwell à partir du dossier des photos de l’iPhone est parfaite.
Je ne parlerai que d’iPhone dans la suite mais le principe est probablement applicable à n’importe quel iBidule, iPad certainement mais iPod peut-être aussi. Je n’ai essayé que sur iPhone n’ayant rien d’autre sous la main.
Pour résumer, je vous explique ici la marche à suivre pour avoir une connexion du PC vers l’iPhone permettant de configurer de façon permanente un accès simple en lecture/écriture sur tous les fichiers de données habituellement planqués par IOS.
C’est simple, peu geekesque et, surtout, ce n’est pas du tout bidouilleux pour le système : propre et fonctionnel et qui devrait avoir une bonne pérennité, sans manœuvre à refaire lors des mises à niveaux du système à venir.
Cette configuration a été appliquée, testée et utilisée chez moi avec les versions 18.04 et 19.10 d’Ubuntu et un iPhone 6S en IOS 13.2.3.
La configuration en 10 points① créer en root un dossier
/home/iPhone qui sera le point de montage de l’iPhone et lui donner les droits en lecture et écriture pour tous les utilisateurs.
② Installer les paquets :
libimobiledevice6 libimobiledevice-utils ifuse③ Déverrouiller l’iPhone.
④ Connecter l’iPhone au PC en USB.
⑤ Dans un terminal du PC, lancer une première fois la commande d’appairage entre le PC et l’iPhone :
- Code:
-
idevicepair pair
qui renvoie ce message d’erreur :
ERROR: Please accept the trust dialog on the screen of device [UDID]
then attempt to pair again.où UDID est l’identifiant de l’iPhone composé d’une suite de 40 caractères hexadécimaux.
⑥ Répondre, dans le dialogue qui s’est affiché sur l’iPhone, qu’on accepte de « faire confiance » au PC.
⑦ Relancer la même commande d’appairage :
- Code:
-
idevicepair pair
qui cette fois devrait répondre
SUCCESS: Paired with device [UDID]
⑧ Copier l’UDID affichée pour faire un test de vérification de la connexion par la commande :
- Code:
-
ifuse /home/iPhone -u [UDID]
le contenu des fichiers de l’iPhone devrait être accessible au point de montage prévu :
/home/iPhone⑨ Démonter l’iPhone par la commande :
- Code:
-
fusermount -u /home/iPhone
⑩ Coller l’UDID de l’iPhone dans le scripts plus bas pour l’adapter à cet iPhone particulier, surtout s’il est amené à être connecté régulièrement à ce PC.
Préciser l’UDID dans la commande permet d’éviter de devoir, à chaque connexion, déverrouiller l’iPhone et répondre au dialogue d’autorisation.
C’est la configuration que j’ai trouvée pratique mais des variantes sont faciles à faire : on pourra choisir un autre dossier comme point de montage de l’iPhone ou encore prévoir des configurations pour plusieurs iPhones, un par compte utilisateur par exemple.
Script de connexion / déconnexionOn peut faire deux scripts différents, l’un pour monter, l’autre pour démonter l’iPhone. J’ai préféré garder l’idée trouvée dans une doc consistant à basculer l’état par le même script.
C’est bête mais efficace : on teste l’existence d’un dossier (ici DCIM qui contient les photos prises avec l’appareil mais un autre aurait fait l’affaire) dans le dossier de montage. Ce dossier est vide si l’iPhone n’est pas monté et si c’est le cas, on lance la commande de montage. À l’inverse, kilukru, s’il est là c’est que l’iPhone est déjà monté et on le démonte…
En début de script, on entre la valeur des variables contenant l’UDID et le point de montage pour faciliter l’adaptation du script.
Dans cet exemple, la valeur de la variable udid est évidemment bidon et doit être remplacée par l’UDID de l’iPhone indiquée par la commande idevicepair au point ⑦.
- Code:
-
#!/bin/bash
# identifiant de l’iPhone
udid="a2950b444034c40d702d30a68578ca95d73d8136"
# point de montage du contenu de l’iPhone
point="/home/iPhone"
# on teste l’existence du dossier DCIM dans /home/iPhone
# s’il est présent alors l’iPhone est monté et on le démonte
if [ -d "$point/DCIM" ];then
fusermount -u $point
# s’il n’existe pas alors l’iPhone n’est pas monté
# et on le monte sur /home/iPhone
else
ifuse $point -u $udid
fi
exit
Lanceur pour utiliser le script en mode graphiqueJe reste dans le cas d’Ubuntu et dérivés qui utilisent des lanceurs au format
.desktopCet exemple suppose que le nom du script est iphone (en minuscules) et qu’il est placé dans un dossier mentionné dans $PATH, classiquement ~/.local/bin, faute de quoi la ligne Exec= devra préciser le chemin d’accès complet.
La ligne Icon= est facultative mais permet d’attribuer une icône au lanceur par commodité.
- Code:
-
[Desktop Entry]
Name=iPhone
Comment=Montage et démontage de l’iPhone sur /home/iPhone
Icon=chemin-d-accès-à-l-icône-d-iPhone.png
Terminal=false
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;
Exec=iphone