Copyright © 2010 Anton Borisov
Copyright © 2013 Mouna Brigui
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
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.
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 !
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.
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.