La manière de connecter un iPod Touch à un MIPSnetbook

Gazette Linux n°177 — août 2010

Mouna Brigui

Adaptation française  

Article paru dans le n°177 de la Gazette Linux d'août 2010.

Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières

Introduction
Connexion à iPod via les transports iTunnel
Conclusion
Références
À propos de l'auteur

Introduction

Il y a quelques années, j'ai eu la chance de travailler sur les cartes VME basées sur MIPS. C'etait très rare de voir que le monde moderne infaillible s'étend au-delà de l'architecture x86. Ces cartes VME tournaient sur une distribution Linux, donc aucune connaissance particulière n'était nécessaire pour se connecter et effectuer une tâche. Étant conçu à des fins industrielles, il ne serait pas logique de l'acheter pour un usage domestique — donc quand j'ai entendu parler d'une entreprise de matériel chinois nommée Lemote [1], qui a des produits basés sur MIPS dans son portefeuille, ma première pensée a été —« Ces gars ont ce dont j'ai besoin — MIPS netbooks. Je les veux ici, à mes côtés ». Voilà comment l'histoire a commencé.

Si vous êtes un utilisateur raisonnablement instruit du système GNU/Linux, alors votre expérience avec n'importe quel netbook devrait être assez lisse — tout comme elle l'a été pour moi. En fait, le netbook Yeeloong a Debian préinstallé, avec les dépôts prêts pour mettre à jour la version « lenny ». Ma première étape a été de mettre à niveau Debian avec les derniers paquets disponibles. Il est généralement agréable d'avoir les applications les plus récentes, les plus importantes, dans mon cas étant gcc et les outils de développement.

Connexion à iPod via les transports iTunnel

Les fans d'Apple devraient savoir que pour synchroniser/copier des fichiers d'un iPod ou d'un iPhone, un utilisateur moyen a besoin d'avoir iTunes installé sur un PC. C'est ridicule, mais iTunes n'est disponible que pour Mac OS/X et Windows — et la chose la plus ridicule sur iTunes est qu'elle est compilée pour l'architecture x86 seulement. Plus de PowerPC, seulement x86/x86_64. Ne devrais-je même pas mentionner Linux et MIPS ici ?

J'ai un iPod Touch de deuxième génération. Un appareil très pratique, avec multi-touch et mobile Safari pour surfer sur le net via le Wi-Fi. Cependant, j'ai fait face à un problème difficile — comment puis-je copier des fichiers audio et vidéo sur celui-ci sans Microsoft Windows et iTunes, c'est-à-dire, directement à partir de Linux ? Il y a une solution, en fait, vous pourriez souhaiter échapper à l'environnement restraint de votre iPod, afin d'installer un serveur SSH et établir une connexion directe au moyen de SSHFS [2].

Alors que l'écriture d'un débridage est abordée dans cet article, je peux vous dire volontier — c'était effrayant, mais à la fin, j'ai eu un sentiment merveilleux — ça marche!Et pour vous remonter encore plus, il n'y a aucune chance de transformer votre iPod en une brique. C'est un appareil absolument incroyable en terme de conception matérielle et de récupération.

Bon, de retour à l'essentiel. J'ai réussi à flasher une mise à jour, c'est-à-dire le firmware « JB » avec un serveur SSH activé. SSH activé. Maintenant, il était temps d'ouvrir une session dans le système d'exploitation de l'iPod. Vous pouvez le faire via le réseau Wi-Fi, ou alternativement, via le câble USB au moyen du paquet iTunnel [3]. Nous allons voir comment cela fonctionne en pratique.

J'ai récupéré le code source et j'ai fait une compilation. Aucune des dépendances externes ou des bibliothèques supplémentaires n'étaient nécessaires. Félicitations aux auteurs d'iTunnel et libiphone !

loongson@debian:~$ cd src/itunnel-0.0.9/

loongson@debian:~/src/itunnel-0.0.9$ make clean && make

Je suis un utilisateur non privilégié à Yeeloong netbook, alors j'ai décidé d'utiliser le port 12022.

loongson@debian:~/src/itunnel-0.0.9$ ./itunnel 12022
get_iPhone() success
- successfully got device
server waiting for ssh connection on port 12022

server accepted connection, clientfd:5
client thread fd(5) running, server port 12022 , peer port 45964
tunnel now running.
SSH to localhost port 12022 to get to iPhone.
 (use ssh -D  to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).

Eh bien, tout est prêt pour se connecter à iPhoneOS. Faisons-le.N'oubliez pas cependant le mot de passe par défaut : tous les appareils Apple semblent avoir un utilisateur mobile intégré avec mot de passe défini à « alpine ».

loongson@debian:~/src/itunnel-0.0.9$ ssh -l mobile -p 12022 localhost
mobile@localhost's password:
localhost:~ mobile$ uname -a
Darwin localhost 9.4.1 Darwin Kernel Version 9.4.1: Mon Dec  8 21:02:57 PST 2008; root:xnu-1228.7.37~4/RELEASE_ARM_S5L8720X iPod2,1 arm N72AP Darwin

Tout l'environnement habituel de Linux, presque tous les utilitaires de l'espace utilisateur ont été portés depuis le plus grand des PCs:

temps de fonctionnement...

localhost:~ mobile$ uptime
 23:14pm  up 17 days 22:28,  1 user,  load average: 0.10, 0.11, 0.08

df...

localhost:~ mobile$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/disk0s1          750M  475M  268M  64% /
devfs                  17K   17K     0 100% /dev
/dev/disk0s2           15G   15G  250M  99% /private/var

top, et bien d'autres...

Processes:  23 total, 1 running, 22 sleeping... 81 threads
Load Avg:  0.05,  0.09,  0.08    CPU usage:  3.70% user,  5.56% sys, 90.74% idle
SharedLibs: num =    0, resident =     0 code,     0 data,     0 linkedit.
MemRegions: num =  3000, resident =   40M +     0 private,   32M shared.
PhysMem:   26M wired,   16M active, 8448K inactive,  114M used, 1704K free.
VM: 583M + 0   251397(0) pageins, 2080(0) pageouts

  PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS  RPRVT  RSHRD  RSIZE  VSIZE
 1599 top          7.4%  0:00.62   1    17     50   580K   848K  1348K    12M
 1592 bash         0.0%  0:00.12   1    13     42   340K   480K  1120K    13M
 1591 sshd         0.0%  0:00.50   1    14     37   368K   260K  1324K    13M
 1583 ptpd         0.0%  0:00.30   2    48     75   544K  1472K  1372K    14M
 1540 MobileSafa   0.0%  1:31.78   5   170    428 15832K    17M    37M    97M
   43 locationd    0.0%  0:56.46   9   100    141  1272K  1908K  1908K    29M
   32 fairplayd    0.0%  0:00.28   1    31     64   512K  1372K   512K    15M
   31 iapd         0.0%  0:40.24   9   116    156  1248K  2760K  1568K    30M
   30 mediaserve   0.0% 31:38.90   9   153    245  1820K  1944K  2292K    39M
   29 lockdownd    0.0%  0:03.25   3    62     99   876K  1792K   960K    26M
   28 update       0.0%  0:15.56   1    13     41   216K   624K   228K    11M
   26 sbsettings   0.0%  0:00.19   1    27    107   868K  2592K   856K    25M
   25 Navizon      0.0%  0:11.34   1    38    162  1280K  2924K  1396K    26M
   24 msd          0.0%  0:38.88   1    32     95  1192K  1656K  1240K    15M
   23 mslocd       0.0%  0:26.59   1    32     97   632K  1880K   788K    23M
   19 CommCenter   0.0%  0:04.97   4    83     90   848K  1764K   940K    25M
   17 BTServer     0.0%  0:01.18   2    66     93   636K  1556K   668K    17M
   16 SpringBoar   1.8% 59:16.65  13   325    689  9060K    17M    20M    86M
   15 configd      0.0%  6:28.52   5   160    127  1020K  1580K  1488K    16M
   14 syslogd      0.0%  1:17.33   4    37     35   320K   248K   444K    13M
   13 notifyd      0.0%  0:35.43   2   247     27   232K   248K   260K    12M
   12 mDNSRespon   0.0%  2:00.59   2    46     65   616K  1360K   912K    14M
    1 launchd      0.0%  0:40.65   3    78     35   284K   248K   396K    12M

Bien sûr, passer à un niveau supérieur par l'intermédiaire de la commande su permet de voir encore plus d'informations. Par exemple, toutes les informations de journalisation sur l'iPod du réseau Wi-Fi a réussi à se connecter est disponible via la sortie de dmesg:

AppleBCM4325::setASSOCIATE() [configd]:  lowerAuth = AUTHTYPE_OPEN, upperAuth = AUTHTYPE_NONE, key = CIPHER_NONE, flags = 0x2
AppleBCM4325 Joined BSS:     BSSID = 00:14:d1:4b:e6:f7, adjRssi =  44, rssi = -46, rate = 54 (100%), channel =  1, encryption = 0x1, ap = 1, hidden = 0, directed = 0, failures =   0, age = 1, ssid = "my_net"
AirPort: Link Up on en0

Ayant un serveur SSH installé et opérationnel sur l'iPod Touch nous donne la possibilité de s'y connecter via SSHFS-connexion. Nous allons monter le stockage iPod' dès maintenant !

loongson@debian:~$ sudo sshfs -p 12022 -o allow_other mobile@localhost:/private/var /media/usb
mobile@localhost's password:
loongson@debian:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1             57685532  46146588   8608692  85% /
tmpfs                   514464         0    514464   0% /lib/init/rw
udev                     10240      3552      6688  35% /dev
tmpfs                   514464         0    514464   0% /dev/shm
mobile@localhost:/private/var
                     15324954624 15062839296 262115328  99% /media/usb

Maintenant, nous allons faire une simple analyse comparative — copier un seul fichier de l'iPod Touch dans le système de fichiers local d'un netbook :

loongson@debian:~$ rsync -v /media/usb/mobile/Media/mp3/Madonna/greatest_hits/106\ Crazy\ For\ You.mp3 .
106 Crazy For You.mp3

sent 5859015 bytes  received 31 bytes  1065281.09 bytes/sec
total size is 5858218  speedup is 1.00

Environ 1MiB/s — c'est assez rapide.

Et nous allons effectuer l'opération inverse, c'est-à-dire copier un seul fichier du netbook vers l'iPod :

loongson@debian:~$ rsync -v --progress ./wine-1.1.23.tar.bz2 /media/usb/mobile/Media/
wine-1.1.23.tar.bz2
    11075584  71%  140.08kB/s    0:00:30

Frustrant, n'est-ce pas ? Quelle explication raisonnable pourrait-il y avoir ? Eh bien, je suppose que le goulot d'étranglement est que la performance du CPU — iPod ; processeur ARM cadencé à 533 MHz pourrait être trop lent pour traiter les paquets SSH cryptés. Que dois-je faire ? Il vous suffit de vous connecter à l'iPod et copier de façon sécurisée un fichier nécessaire d'une machine hôte (c'est-à-dire Yeeloong). Comme ceci:

localhost:~ mobile$ scp loongson@10.10.1.1:/home/loongson/Kylie* .
loongson@10.10.1.1's password:
Kylie Minogue - Je Ne Sais Pas Pourquoi.mp3             100% 5655KB   1.1MB/s   00:05

Voila — ça marche ! La même bande passante dans les deux sens !

Conclusion

L'approche qui consiste à effectuer un débridage tout d'abord et puis d'attacher l'iPod au PC via SSHFS est un long chemin à parcourir pour quelque chose de si simple.Mais — et c'est essentiel — les utilisateurs de Linux n'ont aucun autre moyen de transfert de fichiers vers l'iPod, dû au fait que a) iTunes étant disponible pour Mac et les plateformes Windows seulement ; b) iTunes étant compilé avec le CPU x86 seulement (les utilisateurs de Linux PowerPC/SPARC/MIPS/ARM devraient faire "bye-bye"!) et c) il n'y a aucun moyen de connecter un iPod sans le serveur SSH est pré-installé. En revanche, une fois que vous l'avez fait, vous avez un contrôle total sur votre bel iPod Touch.

Références

À propos de l'auteur

Anton a sauté dans le monde Linux en 1997, lorsqu'il a d'abord essayé une distribution muLinux minuscule, s'exécutant sur une seule disquette. Plus tard, Red Hat et Slackware devint son choix favori. De nos jours, Anton conçoit des intergiciels et des applications orientées Linux et préfère travailler avec du matériel étiqueté « Powered by Linux ».

Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.