HOWTO iPod

De Gentoo Linux Wiki

Este tutorial te enseña cómo conectar un iPod a tu sistema Gentoo Linux. Da igual si tu iPod está formateado para Windows o para Mac, funcionará muy bien con Linux.

Si tienes un iPod formateado para Mac, el kernel 2.6.8 en adelante funcionará bien con el sistema de archivos HFS+.

Si tienes un iPod formateado para Windows, sólo tienes que activar el soporte para vfat (fat32).

Básicamente, no te preocupes en cómo viene tu iPod de fábrica, funcionará con Linux. ¡No necesitarás hacer demasiados cambios!.

Tabla de contenidos

[editar] Compilando los Módulos del Kernel apropiados

Nota: Todo el documento está basado en un kernel 2.6, si tienes un kernel menor, como 2.4 tendrás que ingeniártelas sólo.

  • Aquí están los módulos del kernel que necesitarás para cualquier iPod sin importar el método de conexión o su formato:
Configuración del Kernel: Módulos necesarios para cualquier iPod
  Device Drivers --->
    SCSI Support --->
      <*> SCSI device support
      <M> SCSI disk support
      <M> SCSI generic support
      [*] Probe all LUNs on each SCSI device
    Input device support --->
      <*> Event interface
  • Lo primero que necesitarás saber es qué conexión usa el iPod. Si no lo reconoces inmediatamente (supongo que la mayoría de los usuarios de Gentoo lo harán) la manera más fácil de saberlo es consultar el Manual de Usuario que viene con tu iPod.

Si el iPod usa firewire, necesitarás éstos módulos:

Configuración del Kernel: Módulos para un iPod Firewire
Device Drivers --->
  IEEE 1394 (FireWire) support  --->
    <*> IEEE 1394 (FireWire) support
    <*> OHCI-1394 support
    <*> SBP-2 support (Harddisks etc.)

Si es USB, necesitarás:

Configuración del Kernel: Módulos para un iPod USB
Device Drivers --->
  USB support  --->
    <M> Support for Host-side USB
    [*]   USB device filesystem
    <M> UHCI HCD (most Intel and VIA) support
    <M> EHCI HCD (USB 2.0) support
    <M> USB Mass Storage support
  • Lo segundo que necesitarás saber es qué formato tiene tu iPod: Formateado para Apple (lo cual significa que usa el sistema de archivos HfS+) o formateado para Windows (entonces usará FAT32).
    • Para la gente que simplemente quiere tener su iPod funcionando rápidamente: Simplemente añade los módulos para ambos: HFS+ y FAT32. Como módulos, así no crecerá el tamaño del kernel.
    • Para la gente que simplemente quiera dejarlo más ajustado, consulta las siguientes sub-secciones.

Para los iPods formateados para Apple necesitas:

Configuración del Kernel: Módulos para los iPods formateados para Apple
  File systems
    Partition Types
      [*] Advanced partition selection (PARTITION_ADVANCED [=y])
        [*] Macintosh partition map support 
  Miscellaneous Filesystems --->
    <M> Apple Extended HFS file system support

Nota: Si no lo tienes igualmente, te recomiendo que compiles los módulos para vfat (a continuación), ya que la mayoría de los dispositivos USB vienen formateados con éste sistema.

Y finalmente, para los iPods formateados para Windows:

Configuración del Kernel: Módulos para un iPod formateado para Windows
  File systems --->
    DOS/FAT/NT Filesystems --->
      <M> MSDOS fs support
      <M> VFAT (Windows-95) fs support
      (437) Default codepage for FAT
      (iso8859-1) Default iocharset for FAT

[editar] Esquema de Particiones

Para continuar, necesitas tener algunos conocimientos sobre el esquema de particiones de tu iPod. Ésto sólo se puede hacer cuando los módulos que mencionamos antes están correctamente (USB/Firewire).

Conectando el iPod obtendremos dos cosas:

  1. El mensaje de "No desconectar" en la pantalla del iPod.
  2. Uno de las siguientes salidas en el dmesg, dependiendo de la elección de USB/Firewire.

Con Firewire obtendrás una salida similar a ésta:

Código: dmesg en iPods Firewire
scsi1 : SCSI emulation for IEEE-1394 SBP-2 Devices
ieee1394: sbp2: Logged into SBP-2 device
ieee1394: Node 0-00:1023: Max speed [S400] - Max payload [2048]
  Vendor: Apple     Model: iPod              Rev: 1.63
  Type:   Direct-Access                      ANSI SCSI revision: 02
sda: Spinning up disk........ready
SCSI device sda: 39063024 512-byte hdwr sectors (20000 MB)
sda: Write Protect is off
sda: Mode Sense: 04 00 00 00
SCSI device sda: drive cache: write through
 /dev/scsi/host1/bus0/target0/lun0: [mac] p1 p2 p3
Attached scsi removable disk <font color=red>sda</font> at scsi1, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0,  type 0

Un iPod por USB obtendrá algo como:

Código: dmesg en iPods USB
usb 1-3: new high speed USB device using ehci_hcd and address 3
usb 1-3: configuration #1 chosen from 2 choices
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
  Vendor: Apple     Model: iPod              Rev: 1.62
  Type:   Direct-Access                      ANSI SCSI revision: 00
usb-storage: device scan complete
SCSI device sda: 3999744 512-byte hdwr sectors (2048 MB)
sda: Write Protect is off
sda: Mode Sense: 68 00 00 08
sda: assuming drive cache: write through
SCSI device sda: 3999744 512-byte hdwr sectors (2048 MB)
sda: Write Protect is off
sda: Mode Sense: 68 00 00 08
sda: assuming drive cache: write through
 sda: sda1 sda2
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0

[editar] Montando tu iPod

Para ésto necesitarás saber el nombre de dispositivo de tu iPod. Una vez más, el comando dmesg te ayudará. Si no tienes otro dispositivo SCSI, SATA o USB/Firewire, el dispositivo será seguramente "sda", en otro caso, probablemente será "sdc" o "sde". Deberías mirar de cualquier manera las entradas correspondientes en /dev (p.e. /dev/sda1).

Sigamos, si tienes un iPod formateado para Windows, tendrás 2 particiones. Deberías montar la segunda particion ("sda2"). En caso de que estuviera formateado para Mac, serían 3 particiones, en cuyo caso tendrás que montar la tercera ("sda3").

  • Para un iPod formateado para Apple haz ésto:
mkdir /mnt/ipod
mount -t hfsplus /dev/sda3 /mnt/ipod
  • Para un iPod formateado para Windows usa:
mkdir /mnt/ipod
mount -t vfat /dev/sda2 /mnt/ipod

Para un iPod formateado en fat32, la siguiente linea en /etc/fstab hará que el ordenador monte /dev/ipod en /mnt/ipod:

Archivo: /etc/fstab
# para iPods formateados para Apple cambia vfat con hfsplus.
/dev/ipod  /mnt/ipod  vfat  async,nodev,nosuid,user,rw,noauto 0 0

Para permitir que el ipod sea escrito por otros usuarios, necesitarás ajustar la siguiente linea: /dev/ipod /mnt/ipod vfat async,nodev,nosuid,user,rw,noauto,umask=0000,noexec 0 0

Atención: La opción sugerida anteriormente sync, es una opción muy lenta (actualmente es potencialmente peligrosa, ya que puede destruir una memoria flash si no está formateada en vfat), async es mucho más rápida (200KB/s contra 5-10MB/s.). Si originalmente usabas sync, cámbialo a async y notarás un incremento de velocidad impresionante. De cualquier manera, con async, el iPod debe ser desmontado antes de desenchufarlo de tu ordenador o perderá los datos.
Atención: Es esecial que no formatees tu iPod con el sistema de archivos hfs+ con journal! Ésto pasará si la primera vez usaste tu iPod en OSX, el cuál tiene siporte para HFS+ con Journal. Para acceder con seguridad la primera vez, usa Amarok o GTKpod.

[editar] Usando udev con el iPod

La ventaja de ésto es que tu iPod siempre será /dev/ipod, sea cual sea el orden en el que enchufaste tus dispositivos. Ésto ayuda para las referencias a /dev/sd* o /dev/ub* en /etc/fstab -- el cuál permite que montes tu iPod en /mnt/ipod sin consultar si el iPod fue asignado al mismo dispositivo (archivo en /dev). Ésto te da un aire más "plug-n-play", y limita los conflictos con otros dispositivos.

[editar] Usando FireWire (IEEE-1394) con el iPod

Para usar udev, primero crea un archivo llamado /etc/udev/rules.d/60-ipod.rules y añade ésta linea:

Archivo: /etc/udev/rules.d/60-ipod.rules
  BUS=="scsi", SYSFS{vendor}=="Apple*", SYSFS{model}=="iPod*", SYMLINK+="ipod"

[editar] Usando USB con el iPod

Apple ha quitado el componente FireWire de los modelos más nuevos de iPod, así que estás forzado a usar USB para sincronizar tu iPod. La siguiente regla para udev, será usada para crear el acceso directo dinámico /dev/ipod:

Archivo: /etc/udev/rules.d/60-ipod.rules
  BUS=="usb", SYSFS{manufacturer}=="Apple*", SYSFS{product}=="iPod*", SYMLINK+="ipod"

Nota: Por supuesto, tienes que ajustar la linea en /etc/fstab para que concuerde (mira arriba).

Nota: Si udev linka incorrectamente tu ipod a /dev/sd*1 en lugar de /dev/sd*2, añade KERNEL=="sd*2" antes del parámetro SYMLNK.

[editar] Reiniciar udev

Para activar los cambios y sean efectivos, debes reiniciar udev. Para hacerlo, ejecuta el siguiente comando, como root:

# udevstart

[editar] Desconectar tu iPod

Finalmente, para desconectar tu iPod con seguridad ejecuta éstos comandos:

 umount /dev/ipod (opcional, eject también desmontará el iPod)
 [sudo] eject /dev/ipod

[editar] Problemática

[editar] Problemas con los Tags UTF8/Unicode de las canciones

Aglunas personas encontraron que tus canciones con unicode se muestran bien en amaroK y otros programas, pero pueden tener problemas con konqueror y gtkpod sobreescribiéndolos. El problema es normalmente causado para el sistema de caracteres que usas, el cual no se especifica cuando se escribe el tag id3, pero hay un script para solucionar éste problema. Lo puedes encontrar here.

Éste requiere una librería especial llamada MP3::Mplib la cual no compila en el momento en que estás leyendo éste artículo. Aquí tienes una solución para que compile.

  1. Descarga el MP3::Mplib código fuente
  2. Descomprime el archivo, y cambia el directorio a él.
  3. `cp t/test.mp3 t/test_cp.mp3`
  4. Abre `t/t2.t` y comenta (poniendo # al principio de la linea) las líneas 25 y 26 que contienen el 5º test. Entonces cambia el número '5' en la linea 8 a '4' y salva y cierra el archivo.
  5. `perl Makefile.PL`
  6. `make`
  7. `make test`
  8. Cambia a root, y `make install`

¡Hecho! Ahora ya puedes usar el script. Siomplemente ejecútalo con `perl foobar.pl archivo.mp3` y listo, el archivo ya se monstrará en el ipod =)


Nota: Alternativa para los aventureros:

(como root) perl -MCPAN -e "install MP3::Mplib"

[editar] Problemas con los iPods de 5ª Generación

[editar] Problemas con HFS+

Si tienesproblemas motnando el iPod en modo de lectura-escritura (read-write), comprueba:

  • Si el iPod tiene un sistema de archivos con Journal
Así viene de fábrica, desactívalo a través del disco de utilidades de MacOS X (desde línea de comandos)
  • Si el árbol de directorios del iPod tiene diferente usuario / grupo que tu usuario
Normalmente si empezaste usándolo con MacOS X. Soluciónalo cambiando tu userID al mismo número, o a través de chgrp y chown.
  • Si ves constantemente una linea como ésta en dmesg:
hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.  mounting read-only.
Encontré que ésto se soluciona con fsck.hfsplus antes de montarlo haz el truco. Ésto no te salvará de que tengas el mismo problema montándolo las siguientes veces. Asi que moficia la siguiente linea para que se haga automáticamnete:
Archivo: /etc/udev/rules.d/10-local.rules
BUS=="usb", SYSFS{manufacturer}=="Apple*", SYSFS{product}=="iPod*", ACTION=="add", SYMLINK+="ipod", RUN+="/sbin/fsck.hfsplus -r /dev/ipod"
¡Ahra funciona perfectamente! ;-)

[editar] Usando Windows y iTunes

Ésto no es simepre el caso, pero se incrementa en los últimos tiempos. Si compraste un nuevo iPod y ejecutaste un restore completo desde la instalación de iTunes para Windows, ésto lo montará y lo hará limpiamente en linux. Lo único que necesitarás para que funciona con ésto son los módulos del kernel para vfat y los code pages, y el soporte apropiado para USB o FireWire en los discos duros externos.

Esto obviamente no es un método perfecto para su naturaleza, pero es bastante más seguro, así no romperás tu iPod, con el consiguiente cambio de firmware o similares.

[editar] Enlaces de Interés

[editar] Créditos

Artículo original en Gentoo-WIKI: HARDWARE iPod (Inglés)

Traducido por Geko