iPod Touch/iPhone en Linux
Diciembre 15, 2007No os alegréis tanto por el post que todavía no sé como subirle contenidos desde linux…
Vamos a empezar por el principio… a finales de la semana pasada me decidí a comprarme el iPod Touch, aparato que la mayoría de la gente critica por ser un “iphone descafeinado”. Puntualicemos eso: ¿que diferencias hay entre uno y otros? Ésta, claramente, el tema del hardware: el touch no tiene lector de tarjetas SIM y, supongo, que la batería será algo más limitada (digo que lo supongo porque es la explicación que le doy a la diferencia de tamaño, tanto en grosor como en longitud). ¿A nivel de software? Un par de cosas según vienen ambos cacharros de fábrica y ninguna en absoluto a los 5 minutos de tenerlos en las manos.
Os voy a contar como va la cosa: el iphone permite instalar aplicaciones para aumentar (exponencialmente) su funcionalidad, el touch por defecto no (ni de Apple ni de nadie). Pasando por un jailbreak (no voy a describir aquí el proceso, está bien explicado en millones de sitios web para cada versión) el touch queda dotado de la capacidad de instalar aplicaciones (tanto de Apple como de terceros :D). Además las aplicaciones de instalan de una forma que me ha gustado muchísimo: usando repositorios. Si, es una gozada, puedes instalar una aplicación teniendo sólamente acceso a internet, sin necesitar ningún ordenador ni nada más que el touch/iphone. Tiene una especie de Synaptic que se llama Instaler.App que hace todo el trabajo por ti, tú sólo dile lo que quieres que te instale/desinstale/actualice. Una gozada vamos.
Ahora bien, para los usuarios (y para los linuxeros en particular) Apple ha cometido un par de cagadas bastante gordas:
- No permitir el desarrollo/carga de aplicaciones de terceros directamente de fábrica: A ver si los señores de Apple lo entienden de una vez: tienen los mejores diseños, tienen usuarios que son unos fieles defensores/seguidores de sus productos, tienen…. todo para triunfar, la verdad. Pero NO SÓLO ES ESO, ¿por qué no dejar que quien se compre uno de sus productos pueda hacerse sus propios programitas para él? ¿por qué no dejar que un usuarios no-técnico se pueda instalar la aplicación que hizo menganito y que le vendría como anillo al dedo? ¿por qué no entregar con el cacharro un SDK libre y un manual? Está claro, por $pasta$… en fin… el día que se les acabe la ventaja del diseño Apple se va a ir a la mierda.
- Provocar INTENCIONADAMENTE que no se pueda cargar la batería ni modificar los contenidos desde una máquina con linux: Si enchufas el touch/iphone a una máquina que no tenga instalado iTunes (y para linux no hay…) el dispositivo lo comprueba y se pone automáticamente en modo suspendido (aunque esté 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 cacharro es un iTunes con lo que las demás aplicaciones que permitían hacer ésto no funcionan. Lo que más me jode, es que no tiene ninguna otra explicación que la de joder y
forzarintentar forzar a usar iTunes.
- Meternos iTunes hasta en la sopa: No quiero acordarme el cabreo que me pillé… ¿sabéis que el touch viene con la batería cargada casi entera de fabrica? ¿qué wapo no? Así ya puedo ir trasteando mientras voy para casa… pues no. Porque para empezar a usarlo tienes que sincronizarlo por cojones con un iTunes, y ya puestos, te obligan a hacerte una cuenta en el iTunes Store, lo que supone dar un número de tarjeta válido por cojones y encima tiene que ser de crédito (al menos las de débito de cajamadrid no las pilla). Vergonzoso. ¿para qué? ¿por si un día me equivoco y sin querer le doy a comprar una canción? que triste…
Despues de desquitarme con Apple, voy a explicar a grandes rasgos como cargar la batería del touch/iphone en linux. Básicamente es un resumen con menos detalle y más directo de la fuente donde lo saqué yo:
- Supongo que tenemos un kernel 2.6.22 o superior (Ubuntu 7.10 lo tiene)
- Nos bajamos el iPhone Module y lo descomprimimos.
- Buscamos la variable #define IPHONE y hacemos lo siguiente:
- Si tienes un iPhone no tienes que tocar nada.
- Si tienes un iPod Touch tienes que cambiar el valor 0×1290 por 0×1291.
- En el fichero iphone.c y en la función iphone_probe, justo debajo de select_configuration(udev); añadimos ésta línea:
udev -> autosuspend_disabled = 1;
- Guardas los cambios, sales y en el terminal ejecutas ésto:
make -C /lib/modules/2.6.22-14-generic/build M=`pwd` modules
Y listo, ahora cuando enchufemos el chisme al ordenador por el cable usb la batería se cargará perfectamente.
Lo único que tengo pendiente (y es bastante importante) es conseguir modificar los contenidos (subir música/video/… desde linux sin tener que pedir prestado un iTunes), por lo que he leido se puede hacer, lo único es que ando bastante jodido de tiempo material como para ponerme a buscarlo, así que espero encontrar a alguien por #ubuntu en el hispano que tenga un chisme de éstos y lo tenga todo funcionando para coserle a preguntas xD
Por supuesto, si tenéis alguna idea de como hacerlo ni os lo penséis… comentadlo pero ya!

Hoy ha venido mi novia y me ha pedido que le consiguiera la canción del anuncio del ikea para el móvil. Esa de “en el salón no se juega”, sorprendetemente había un montón de videos en youtube sobre el tema y pude encontrar uno donde le sonido se oía bastante bien. Vale que no sé porqué la gente se emperra en tener en el móvil canciones con una calidad de la ostia, total, casi siempre que suena estás rodeado de ruido xD
Para el que no lo conozca
Hace tiempo que no toco nada de Ruby, básicamente desde que dejé de trabajar en la empresa en la que estaba antes, pero sigo recopilando recetas que me parecen sencillas y útiles para tenerlas a mano cuando me hagan falta.
Un poco contradictorio el título ¿no? Pues puede verse así. Hablando de temas de seguridad muchas veces (como en todo el mundo de la informática) las cosas cambian mucho según el punto de vista de cada uno.
Hoy me he decidido a probar sofa, lo había visto en varios sitios hace ya varios días, pero me daba pereza ponerme a instalarlo, hay que añadir repositorios externos, instalar paquetes necesarios para la compilación y compilarlo. Ahora mismo estoy en ese punto compilando, espero que para cuando termine el post haya terminado ya. Por ahora os voy a ir contando los pasos que debéis seguir para instalarlo correctamente: