Expériences avec un iPod®

Gazette Linux n°120 — Novembre 2005

Awasthi Nirendra

Article paru dans le n°120 de la Gazette Linux de novembre 2005.

Traduction française par Deny .

Relecture de la traduction française par Joëlle Cornavin .

Article publié sous 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
1. Qu'est-ce qu'un iPod® ?
2. Connexion et localisation de votre iPod®
3. Montage et démontage de votre iPod®
4. Copie et lecture de la musique
5. Les fichiers balados (podcasts)
6. Installation de Linux sur l'iPod®
7. Programmation de votre iPod®

1. Qu'est-ce qu'un iPod® ?

Un iPod® est une marque de lecteur audio numérique portable conçu par Apple Computer®. Les trois premières générations d'iPod® utilisent deux processeurs dérivés du ARM 7TDMI cadencés à 90 MHz, alors que les modèles plus récents sont dotés de puces à vitesse variable avec une fréquence maximale de 80 MHz pour ménager la batterie.

Cet article est destiné à ceux qui souhaitent utiliser leur iPod® sous Linux ou utiliser Linux sur leur iPod®.


2. Connexion et localisation de votre iPod®

La première étape consiste à connecter l'iPod® à votre port USB, puis à déterminer sous quel périphérique Linux l'iPod® est connecté :



# cat /proc/scsi/scsi


Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: Apple Model: iPod Rev: 1.50
Type: Direct-Access ANSI SCSI revision: 02

scsi0 signifie que l'iPod® est connecté à /dev/sda, scsi1 spécifie que l'iPod® est connecté à /dev/sdb, et ainsi de suite. Dans cet article, j'utilise /dev/sda par défaut ; évidemment, vous devrez changer ce réglage au cas où votre iPod® utilise un périphérique différent.


3. Montage et démontage de votre iPod®

À présent nous pouvons explorer notre iPod®. Pour cela, nous devons le monter :



# mkdir /mnt/myiPodSongs
# mount -t vfat /dev/sda2 /mnt/myiPodSongs

Une fois le montage effectué, le contenu de l'iPod® peut être parcouru comme s'il s'agissait d'un système de fichiers normal.

Après l'avoir exploré, nous devons démonter l'iPod® :



# umount /dev/sda2


4. Copie et lecture de la musique

Qu'en est-il de la lecture d'un morceau de musique ? Sous Linux, gtkpod peut servir à copier et organiser vos fichiers musicaux en listes d'écoute. Après avoir installé gtkpod, le point de montage de l'iPod® peut être spécifié depuis Edit->Edit Preferences. Une fois le point de montage ajouté, gtkpod vous permet de créer et modifier des listes d'écoute, ajouter ou supprimer des morceaux, voire exporter vos données Thunderbird ou Evolution vers l'iPod®


5. Les fichiers balados (podcasts)

Les fichiers balados (Podcasts) sont des émissions de radio destinées à l'iPod®. Au lieu du flux audio en lecture continue qui exige que vous écoutiez en temps réel, la « baladodiffusion » vous permet de contrôler comment et quand écouter vos émissions favorites. Parmi les clients de « baladodiffusion » disponibles pour Linux, on trouve amaroK et BashPodder, un utilitaire en ligne de commande pour télécharger des fichiers balados.


6. Installation de Linux sur l'iPod®

Maintenant que nous savons comment utiliser iPod® sous Linux, il est temps d'employer Linux sur un iPod®. Pourquoi prendre la peine d'installer Linux sur un iPod® ? Parce que cela comprend le chargement de nouveaux jeux, un lecteur de films, un enregistreur vocal, sans oublier la liberté de créer de nouvelles applications. Pour ceux qui sont assez courageux pour approfondir cette option passionnante, iPodLinux offre une distribution dont vous pouvez disposer ; les première, deuxième et troisième générations d'iPod® sont officiellement maintenues.

Après avoir procédé à quelques réglages avec l'installateur, j'étais en mesure d'installer iPodLinux sur mon iPod Photo® de 60 Mo. Le port utilise uClinux, aux accents de Linux conçu pour les périphériques qui manquent d'une unité de gestion de mémoire (MMU, Memory Management Unit). Bien que l'iPod® ait quelques possibilités de type MMU, elles ne sont pas suffisantes pour prendre en charge le noyau Linux.

Avant d'installer Linux, il est judicieux de faire une sauvegarde du chargeur d'amorçage de l'iPod® et du système d'exploitation, de façon à ce qu'ils puissent être restaurés en cas de problème :



# dd if=/dev/sda of=ipod_boot_sector_backup count=1
# dd if=/dev/sda1 of=ipod_os_partition_backup

Une fois la sauvegarde effectuée, la prochaine étape consiste à créer une nouvelle partition sur l'iPod® qui contiendra le système de fichiers racine de Linux.

Vous pouvez créer une partition à l'aide de la commande suivante :



# fdisk /dev/sda

J'ai créé les partitions suivantes sur mon iPod® de 60 Go :



Device Boot Start End Blocks Id System
/dev/sda1 * 1 1 8001 0 Empty
/dev/sda2 * 6 7296 58564957+ b W95 FAT32
/dev/sda3 2 5 32130 83 Linux

Après le partitionnement, créez un système de fichiers avec un journal ext3 :



# mke2fs -j /dev/sda3

et placez la valeur maximale du délai d'attente de montage entre deux contrôles du système de fichiers à zéro pour empêcher le lancement de fsck sur ce système de fichiers :



# tune2fs -c 0 /dev/sda3

Pour installer le noyau Linux et le chargeur d'amorçage, téléchargez soit le chargeur d'amorçage officiel (pour les iPod® de première, deuxième et troisième génération), soit la version photo iPod pour la quatrième génération. Téléchargez en outre le dernier noyau depuis la nightly build (littéralement, une version compilée toutes les nuits). Extrayez le noyau et le chargeur d'amorçage dans un dossier qui leur est propre. Extrayez ensuite l'image d'Apple® depuis le chargeur d'amorçage et créez une nouvelle image comprenant les systèmes d'exploitation Linux et d'Apple® (ici, le noyau est appelé uclinux-2.4.24-ipod2.bin) :



# ./make_fw -3 -o apple_os.bin -e 0 ipod_os_partition_backup
# ./make_fw -3 -o my_sw.bin -i apple_os.bin -l uclinux-2.4.24-ipod2.bin loader.bin

Note

-3 n'est requis dans make_fw que pour les iPod® de quatrième génération.

Ceci fait, nous pouvons copier la nouvelle image et les modules de noyau dans l'iPod® :



# dd if=my_sw.bin of=/dev/sda1
# mkdir /mnt/ipod
# mount -t ext3 /dev/sda3 /mnt/ipod
# cp -r lib /mnt/ipod
# umount /mnt/ipod

Pour une installation dans un environnement utilisateur, j'ai téléchargé l'iPodLinux FS et exécuté les étapes suivantes pour installer le système de fichiers :

Montez la partition racine de l'iPod® :



# mount -t ext3 /dev/sda3 /mnt/ipod

Extrayez le système de fichiers :



# mkdir /mnt/linuxos
# mount -o loop floydzilla-2005-08-28-ipod+iboy+doom.img /mnt/linuxos
# cp /mnt/linuxos /mnt/ipod

et pour finir, démontez la partition due l'iPod® :



# umount /mnt/ipod
# umount /mnt/linuxos
# eject /dev/sda

Et nous avons terminé ! Mais avant que vous commenciez à jouer à Doom sur iPod®, il faut le redémarrer.

Pour redémarrer, déconnectez votre iPod® du port USB. S'il ne redémarre pas automatiquement, gardez appuyés les boutons de menu et de lecture pendant 3 secondes pour le redémarrer. Après redémarrage, gardez appuyé le bouton retour pour amorcer Linux, sinon l'interface par défaut se charge.


7. Programmation de votre iPod®

La première chose nécessaire pour compiler « bonjour monde » sur un iPod® serait, naturellement, un nouveau compilateur. Mais pourquoi un nouveau compilateur ? Parce que l'iPod® dispose de processeurs ARM et qu'un compilateur croisé est requis pour compiler des programmes pour cette architecture. Téléchargez le compilateur pour uclinux sur http://www.uclinux.org/pub/uClinux/arm-elf-tools/.

Après avoir installé le compilateur croisé, la prochaine étape consistera à écrire un programme bonjour iPod (enregistrez le code suivant sous bonjour.c) :


#include <stdio.h>
int main(void){ puts("Bonjour, iPod!"); return(0); }

Ensuite compilez le programme :



# arm-elf-gcc -o bonjour bonjour.c -elf2flt

Copiez le programme sur l'iPod® :



# mount -t vfat /dev/sda2 /mnt/mesChansonsiPod
# mkdir /mnt/mesChansonsiPod/mesprogs
# cp bonjour /mnt/mesChansonsiPod/mesprogs

et redémarrez l'iPod® après le démontage de la partition :



# cd $HOME
# eject /dev/sda

Après avoir redémarré dans floydzilla, allez dans File browser/mnt/mesprogs et cliquez sur « bonjour » pour découvrir la sortie du programme sur iPod®.

Travaillant actuellement en Inde pour Induslogic, je suis titulaire d'une licence d'informatique.

Je suis un fervent défenseur du Logiciel libre. Pendant mes loisirs, j'écris des programmes ou je lis des livres. Mes centres d'intérêt se portent sur les pilotes de périphériques, le P2P et les systèmes d'exploitation. Je maintiens mon blogue à l'adresse http://www.nirendra.net.