Como hacer que el iPhone / iPod Touch recarge la batería en Linux

Hace unos días descubrí con desagrado que mi iPod Touch (y por tanto el iPhone) no recarga la batería al conectarlo en Linux. Todo el problema es que hay que enviar una secuencia al iPod / iPhone cuando este se conecta al USB, así como hacer una pequeña modificación al Kernel de linux para que no suspenda el dispositivo y pueda cargar la batería sin problema.

Para que el iPod Touch / iPhone pueda recargarse en linux necesitamos al menos la versión 2.6.22 del Kernel, Ubuntu 7.10 (Gusty Gibson) ya incluye esta versión. Luego necesitamos bajar el iPhone Module, el modulo del kernel que se encargará de enviar los datos apropiados al iPhone.

Si tienes un iPod Touch, necesitas modificar el valor de #define IPHONE de 0x1290 a 0x1291. Luego para ambos iPhone y iPod hay que agregar la linea de código:

udev->autosuspend_disabled = 1;

Esto es para que el Kernel no suspenda el dispositivo. Yo agregue esta instrucción en la función iphone_probe en iphone.c, que al final quedó así:

static int iphone_probe(struct usb_interface *intf,
                       const struct usb_device_id *id)
{
       struct usb_device *udev = interface_to_usbdev(intf);

       if (udev->actconfig->desc.bConfigurationValue == 3) {
               dbg(&udev->dev, "Configuration changed");
               return -ENODEV;
       }

       /* turn the power on */
       select_configuration(udev);

	udev->autosuspend_disabled = 1;

       /* we don't really want to bind to the device, userspace programs can
        * handle the syncing just fine, so get outta here. */
       return -ENODEV;
}

Para instalar este modulo (una vez modificado) debes ejecutar:

make -C /lib/modules/2.6.22-14-generic/build  M=`pwd` modules

Sino hay errores, con esto debería ser todo lo que debes instalar. En mi caso, ahora ya no tengo que arrancar windows para mantener con carga mi iPod Touch.

Etiquetas: , , , , ,

18 comentarios

  1. Publicado el 5 de Noviembre de 2007 a las 8:37 pm | Permalink

    Que bueno que ya podas cargar tu iPod Touch en Linux!!!

  2. Sebastian Oliva
    Publicado el 22 de Noviembre de 2007 a las 7:15 am | Permalink

    Tas en Digg…

  3. Arturo Castillo
    Publicado el 10 de Diciembre de 2007 a las 9:00 pm | Permalink

    Amigo… lo dices bien facil pero habemos muchos que no sabemos programar lenguaje C.. Oye que aplicacion necesito para poder compilar modulos y de donde saco el codigo fuente?

  4. asphixmx
    Publicado el 12 de Diciembre de 2007 a las 10:49 am | Permalink

    Yo apoyo a Arturo Castillo… no se si podrias explicarlo de una forma para novatos, porque no todos somos tan duchos en linux. Yo apenas emigre desde windows y no quisiera regresarme.

  5. pepe
    Publicado el 16 de Enero de 2008 a las 4:07 am | Permalink

    Si tienes un iPod Touch, necesitas modificar el valor de #define IPHONE de 0×1290 a 0×1291 ¿donde se modifica????

  6. Publicado el 20 de Enero de 2008 a las 3:30 pm | Permalink

    ya te putearon xDDDD se te olvido que era un howto para ubunteros no? xDDDDD

  7. Publicado el 20 de Enero de 2008 a las 9:08 pm | Permalink

    @sirgt: fácil, sino entienden que se regresen a windows.

  8. Garibaldi
    Publicado el 5 de Febrero de 2008 a las 2:13 pm | Permalink

    Creo que si está liberado el Ipod Touch por Jailbreak, este carga, al menos en mi prueba que estoi haciendo en ubuntu 7.10 de momento parece que carga ^^ esperemos que la carga sea cierta :D Os sigo informando haber… :P

  9. Cario
    Publicado el 14 de Febrero de 2008 a las 10:24 am | Permalink

    alguien puede explicarme como leer archivos .pdf en el touch? A ser posible sin hakearlo, si no hay mas remedio. GRACIAS

  10. zeehio
    Publicado el 1 de Marzo de 2008 a las 5:51 am | Permalink

    Para que me funcionase, antes de hacer el make tuve que hacer:
    sudo apt-get install linux-source
    y luego por supuesto:
    cd /ruta a la carpeta donde teneis descomprimido el iphone module/

    Espero que estos detalles sirvan a los que andan algo perdidos.

    @pepe: Para modificar el #define iphone, abre (con un editor de textos) el archivo iphone.c que encontraras cuando descomprimas el iphone module que hay que descargar. Allí, en la línea 25 aprox, está el #define iphone

  11. Linux
    Publicado el 3 de Julio de 2008 a las 1:19 pm | Permalink

    Javier Aroche:

    Si esa es tu forma de hacer que las personas usen Linux, dedicate a otra cosa. O, estas para ayudar o deja esto.

    Por lo menos de mi parte, no recomendaré este lugar a nadie, todo lo contrario, lo incluiré en una gran lista negra.

    Aprende, sé humilde.

  12. Publicado el 3 de Julio de 2008 a las 8:03 pm | Permalink

    @linux si pagas el tiempo que dedique, con mucho gusto.

    Sino aprende que no todo es gratis, madura.

  13. Para Javier Aroche
    Publicado el 2 de Agosto de 2008 a las 2:03 pm | Permalink

    Me parece simplemente patético que la gente que lleva tiempo con Linux se tire el moco con el software libre y después traten a los neófitos (entre los que me incluyo) que usan ubuntu como si fuéramos windowseros. Claro, gente como tú, Javier Aroche, nacistéis enseñados, ¿no?

    ¿Acaso no te das cuenta de que si quieres cambiar algo las cosas, todos tenemos que hacer un pequeño esfuerzo? ¿No concibes que haya gente que quizás no sea tan buena con los ordenadores como tú, pero que aun así quieran dejar de usar los productos de la mayor multinacional del mundo?

    Si Linus Torvalds supiera lo que haces, te daría dos hostias.

    Me das una mezcla de asco y pena. Si en verdad quieres tener un producto exclusivo y elitista, cómprate un puto Mac.

    P.D. Y, si puedes, le pones línea de comandos, madafaca

  14. Publicado el 2 de Agosto de 2008 a las 2:12 pm | Permalink

    Si le preguntamos a Linus seguro responde que aprender a parchar y compilar el kernel es una de las cosas básicas que todo usuario de linux debe saber.

    Y deja de llorar porque en la última versión de ubuntu ya incluye este parche, solo actualizate.

    Y si no eres capaz de entender lo que dije en el post, tal vez debas conformarte con usar windows.

  15. Publicado el 16 de Febrero de 2009 a las 9:52 am | Permalink

    Yo tengo un iPod Touch 2G y lo he recargado varias veces desde un portátil con Linux sin el más mínimo problema. Me lo reconoce como una cámara digital al igual que Windows y lo recarga sin más. Yo no sé qué haréis vosotros
    ¿Lo tenéis con el jailbreack (pirateado)? Posiblemente de problemas si ha sufrido esa modificación.

  16. Alfredo
    Publicado el 8 de Junio de 2009 a las 2:19 am | Permalink

    Estoy harto de los imbeciles que amenazan con devolverse a windows solo porque no les sale algo en linux, por favor señores!!! Es como escupir la pastilla y entrar a la “matrix” de nuevo… en fin, encuentro el artículo interesante, lo que hay que esperar es que se pueda sincronizar el ipod touch con linux para descargar videos o canciones, o ya alguien sabe?
    Saludes desde Costa Rica (Comunidad Ubuntu)

  17. Publicado el 8 de Junio de 2009 a las 2:36 am | Permalink

    @Alfredo mejor comprate un gadget que no sea de Apple…

  18. Publicado el 14 de Junio de 2009 a las 8:33 pm | Permalink

    ubunteros. => poke linux…

    El how to es claro como el agua…


2 Trackbacks

  1. Por iPod Touch/iPhone en Linux « beGNU el 15 de Diciembre de 2007 a las 10:32 am

    [...] deshabilitado en el cacharro) y no se carga la batería (ésto lo solucionamos leyendo más abajo o aquí…). Además, han incluido un hash para comprobar que lo que accede a los contenidos del [...]

  2. [...] el caso de Linux, desde el kernel 2.6.22 se incluye el código necesario para que el iPhone se recargue. Para Windows por suerte la solución es bastante sencilla y sin caer tan bajo como instalar algo [...]

Escribe un comentario

Tu email nunca será publicado o compartido. Los campos requeridos están marcados con *

*
*