Dernière mise à jour : 12/02/2003
J'ai eu l'occasion de jouer avec l'IPod d'un ami qui m'a défié de le faire marcher sous Linux (un pur Windowsien s'il en est). J'ai donc utilisé mon portable Sony qui dispose d'un port Firewire (mini) et recompilé mon petit kernel pour faire marcher l'affaire, suivez le guide. Ce test a été réalisé sur un kernel 2.4.20 sous Debian sid avec le strict minimum de paquets installés.
Un petit passage par le kernel sera necessaire si vous ne l'avez pas encore paramétré. Commencez donc par les paramètres du Firewire. Bien que marqué expérimental, il marche très bien :
-
IEEE 1394 (FireWire) support (EXPERIMENTAL)
--- Device Drivers
--- Texas Instruments PCILynx requires I2C bit-banging
'M' OHCI-1394 support
--- Protocol Drivers
'M' OHCI-1394 Video support
'M' SBP-2 support (Harddisks etc.)
[ ] Enable Phys DMA support for SBP2 (Debug)
'M' Ethernet over 1394
'M' OHCI-DV I/O support
'M' Raw IEEE1394 I/O support
'M' IEC61883-1 Plug support
'M' IEC61883-6 (Audio transmission) support
[ ] Excessive debugging output
Dans la section SCSI, activez le support sd_mod (SCSI disk), des systèmes de fichiers (FileSystem), n'oubliez pas le support Apple. Il n'est pas obligatoire (vu que la plupart des projets utilisent FAT32 tout comme le lecteur sous Windows). Recompilez ensuite le kernel et installez le (suivez le guide dans la section système pour plus d'infos sur le kernel 2.4).
-
'M' SCSI disk support
'M' Apple Macintosh file system support (EXPERIMENTAL)
Après redémarrage, vous avez un kernel près à l'emploi. J'ai donc connecté la bête sur la machine. Si vous avez automatisé le chargement des modules, rien à faire, sinon, vous devez les charger manuellement :
-
modprobe ieee1394
modprobe ohci1394
modprobe sbp2
modprobe sd_mod
Et ceci doit apparaître dans votre /var/log/messages :
-
Feb 12 11:41:55 tux3 kernel: ohci1394: $Rev: 693 $ Ben Collins
Feb 12 11:41:55 tux3 kernel: ohci1394_0: OHCI-1394 1.0 (PCI): IRQ=[9] MMIO=[d0205000-d02057ff] Max Packet=[2048]
Feb 12 11:41:55 tux3 kernel: ieee1394: SelfID completion called outside of bus reset!
Feb 12 11:41:55 tux3 kernel: ieee1394: sbp2: Logged into SBP-2 device
Feb 12 11:41:55 tux3 kernel: scsi1 : IEEE-1394 SBP-2 protocol driver (host: ohci1394)
Feb 12 11:41:55 tux3 kernel: $Rev: 707 $ James Goodwin
Feb 12 11:41:55 tux3 kernel: SBP-2 module load options:
Feb 12 11:41:55 tux3 kernel: - Max speed supported: S400
Feb 12 11:41:55 tux3 kernel: - Max sectors per I/O supported: 255
Feb 12 11:41:55 tux3 kernel: - Max outstanding commands supported: 8
Feb 12 11:41:55 tux3 kernel: - Max outstanding commands per lun supported: 1
Feb 12 11:41:55 tux3 kernel: - Serialized I/O (debug): no
Feb 12 11:41:55 tux3 kernel: - Exclusive login: yes
Feb 12 11:41:55 tux3 kernel: Vendor: Apple Model: iPod Rev: 1.21
Feb 12 11:41:55 tux3 kernel: Type: Direct-Access ANSI SCSI revision: 02
Feb 12 11:41:55 tux3 kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Feb 12 11:41:55 tux3 kernel: SCSI device sda: 19531260 512-byte hdwr sectors (10000 MB)
Feb 12 11:41:55 tux3 kernel: sda: test WP failed, assume Write Enabled
Feb 12 11:41:58 tux3 kernel: /dev/scsi/host1/bus0/target0/lun0: p1 p2
Tout se passe bien dans le meilleur des mondes, en vérifiant le contenue de la dernière ligne des logs, je constate que plusieurs devices ont été générés par devfs comme : disc, generic, part1, part2. Part1 et 2 sont ceux qui nous intérèssent ici car ce sont eux qui contiennent les données. J'ai donc monté le second disque (celui contenant les mp3) par la commande : mount -t vfat /dev/scsi/host1/bus0/target0/lun0/part2 /mnt/disk/. Le contenu des mp3s se trouve là : ls /mnt/disk/iPod_Control/Music/.
Vous avez à présent un IPod fonctionnel au niveau matériel, il ne reste plus qu'à s'occuper de la partie logicielle. Vous pouvez allez visiter les pages suivantes :
- http://ipodlinux.sourceforge.net/ - Linux sur IPod, Ă vos risques ...
- http://www.gnu.org/software/gnupod/ - GNUPod
- http://gtkpod.sourceforge.net/ - GTKPod, celui testé ci-dessous
J'ai donc installé gtkpod en prenant le package Debian (pour une fois que je me fait pas les sources ;), autant dire que cela marche tout de suite. Comme le montre la capture ci-dessous, vous aurez besoin d'indiquer le bon point de montage (il utilise /mnt/ipod à la base mais facilement modifiable dans Edit/Preferences.
Après avoir paramétré vos préférences, une petite impulsion sur 'Import' devrait vous amener le bel écran ci-dessous. A partir de celui-ci, vous pouvez donc en toute tranquilité indexer vos mp3 et en ajouter/retirer. Cette interface peut sembler simple au commun des mortels mais je trouve le projet très bon.
Enfin, une fois que vous avez modifié la playlist de votre IPod, rappellez vous qu'il ne faut pas le débrancher sans avoir fait :
-
umount /mnt/disk/
modprobe -r sbp2
modprobe -r ohci1394
modprobe -r ieee1394
Et voilà comment on fait les bébés ;) Donc plus sérieusement, vous avez tout le nécessaire pour utiliser votre IPod sur Linux, plus d'excuses pour utiliser Windows. Envoyez un email à l'adresse habituelle si vous avez des questions. Dans le top des trucs qui marchent pas, assurez vous que les modules sont chargés dans le bon ordre, que le cable de l'IPod est correctement connecté et enfin que le point de montage est le bon.