Escrito por Mario Alberto Medina Nussbaum Viernes, 10 de Diciembre de 2010 17:46
Laboratorio - Instalación: ¿Imposible?
He estado algo ocupado en estos días.... eh... semanas... bueno, meses. Entre el trabajo y un nuevo hobby no me ha quedado mucho tiempo, pero dado que uno de estos hobbies dio como fruto un regalito nuevo, aprovecho para escribir acerca de el.
El regalito: un iPod Touch 4G con iOS 4.1.
El problema: no hay sincronización con Linux... bueno, no de entrada.
Después de algo de tiempo de batallar y de tener que lanzar iTunes de manera virtualizada, llegó la gota que derramó el vaso: un cable para video que me vendieron según compatible y que resultó que no era compatible, por lo menos no por software. Eso me animó a hacerle el proceso de jailbreak, que ahora ya es legal, y bueno, animado con el éxito de poder usar mi cable nuevo para ver las películas que he rentado (pagando por supuesto, para que no digan nada al respecto los de las agencias anti piratería) me animé a echarle un ojo de nuevo a la sincronización con Linux.
Personalmente yo uso Banshee, pero puedes usar Rhythmbox o Gtkpod, Amarok o cualquier otro para administrar tu música. En realidad el software de Capa 7 no es lo mas importante, sino otro, llamado usbmuxd. Este hace la magia, y el tenerlo actualizado lo hace todo.
Bueno, rápidamente, lo primero que debes hacer para poder sincronizar tu iPod en Linux es instalar una serie de paquetes. Dado que yo soy usuario de Ubuntu, estos comandos son para Ubuntu, pero seguramente vas a encontrar los mismos paquetes en otras distribuciones.
Necesitamos entonces instalar un repositorio nuevo, esto se hace con este comando:
1 2 3 4 |
sudo add-apt-repository ppa:pmcenery/ppa sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install gvfs gvfs-backends gvfs-bin gvfs-fuse libgvfscommon0 ifuse libgpod-dev libgpod-common \ libimobiledevice-utils libimobiledevice0 libimobiledevice-dev python-libimobiledevice libplist++1 \
libplist-utils python-plist libusb-1.0-0 libusb-1.0-0-dev libusbmuxd1 usbmuxd libplist1 libplist-dev |
Listo, esto nos pone los paquetes que requerimos para empezar, luego vamos a añadir a tu usuario al grupo de fuse, para poder usar este conector de dispositivos con tu usuario.
1 |
sudo adduser $USER fuse
|
Finalmente vamos a editar el archivo /etc/fuse.conf, y vamos a cambiar una línea
1 2 3 4 5 6 7 8 9 10 11 |
# Set the maximum number of FUSE mounts allowed to non-root users. # The default is 1000. # #mount_max = 1000 # Allow non-root users to specify the 'allow_other' or 'allow_root' # mount options. # #user_allow_other # cambiamos la linea de arriba y ponemos esta otra, si te fijas solo removi el hash user_allow_other |
Listo, hasta aquí varios de los iPods y iPhones van a funcionar, pero en mi caso no funcionó por que mi dispositivo es demasiado nuevo, el USBID es 05ac:129e Apple, Inc., y el driver en udev solo soporta hasta 05ac:129a, por lo que requiere un poco mas de trabajo.
Modificar las reglas de udev para cargar adecuadamente el usbmuxd no es suficiente, así que es necesario descargar la última version de usbmuxd desde git. Además vamos a necesitar instalar el software necesario para poder compilar código.
1 2 3 4 5 6 7 8 9 10 11 12 |
sudo apt-get install git-core sudo apt-get install build-essential sudo apt-get install cmake mkdir gitfiles cd gitfiles git clone git://git.marcansoft.com/usbmuxd.git cd usbmuxd mkdir build cd build cmake .. make && sudo make install |
Hecho esto revisa tu archivo en /lib/udev/rules.d/85-usbmuxd.rules, que debe estar como este:
1 2 3 4 5 6 7 8 |
# usbmuxd (iPhone "Apple Mobile Device" MUXer listening on /var/run/usbmuxd) # Forces iPhone 1.0, 3G, 3GS, iPodTouch 1/2 and iPad to USB configuration 3 and run usbmuxd ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="129[0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="/usr/local/sbin/usbmuxd -u -U usbmux -v -v" # Exit usbmuxd when the last device is removed ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/129[0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="/usr/local/sbin/usbmuxd -x -v -v" |
Los parametros -v -v que tiene son opcionales, yo se los puse para poder revisar que todo este correcto. Si este archivo lo revisas antes de hacer todo el proceso, vas a poder ver que en idProduct solo tiene 129[0-9a], ahora ya incluye hasta la f.
Listo, ya estamos con todo arreglado. Ahora, lo que sigue es conectar tu iPod, y lanzar Banshee (o el software que utilices), que debe reconocer tu dispositivo, y permitirte agregar música y ver los archivos.
Bueno, esto es todo, cualquier duda, por favor pregunten en el foro :) Hasta la próxima!
Editado:
Puedes usar Banshee para administrar tu música. La versión de construcción diaria es la que mejor me ha funcionado. Puedes añadirla con este comando
1 2 3 |
sudo add-apt-repository ppa:banshee-team/banshee-daily sudo apt-get update sudo apt-get install banshee |
Comentarios
Lo que si me paso las primeras veces es que no parecia meter bien la base de datos de iTunes, y tuve que borrar la base de datos de iTunes en el dispositivo y modificar unos parametros para que iTunes usara una version anterior.
Voy a buscar esos cambios y anexarlos a este tutorial.
Lo intenté en gtkpod y tras el procedimiento me lanzó un error algo así como "uncompatible chksum". ¿Habrá fallado algo?
Tengo ipod Touch 4G, (uso Ubuntu 10.10) y tengo el jailbreak. El tutorial ha funcionado, con lo que ahora puedo pasar la música al ipod, pero cuando voi a "Música" allí no aparece nada, sino que he comprobado que la música la mete en carpetas dentro de /var/mobile/Media/iTunes_Control/Music . Puedo reproducir esas canciones, pero sólo de una en una. O sea, que no "sincroniza" como debiera. He hecho algo mal?
Cito a Bigod:
Suscripción de noticias RSS para comentarios de esta entrada.