Cómo destripar un Android y no morir en el intento

La historia que voy a contar me ha llevado muchas horas que he ido robando al sueño a lo largo de varias semanas. Algunos ya sabéis cómo comenzó todo: se me cayó el Android ADP1 al suelo de la cocina. Un hermoso suelo de duros baldosines.  Ya se me había caído otras veces, pero nunca como esa vez: perfectamente horizontal, con la pantalla mirando hacia el suelo. El golpe fue fatal, y la pantalla falleció 🙁  Lo curioso fue que el móvil seguía funcionando. Si alguien me llamaba, podía descolgar el móvil y hablar. Incluso, sabiendo de memoria las combinaciones de teclas, podía llamar. Pero claro, sin ver nada en pantalla.

Lo primero que hice fue sufrir. Lo segundo, pedir otro Android (el Motorola Milestone, del que ya hablaré en otro post). Y lo tercero, plantearme hacerle una cirugía al ADP1 para intentar cambiarle la pantalla. Total, de perdidos al río. Hay varias formas de abrir un G1/G2/Magic/ADP1 . Para la cirugía, necesitas el siguiente material:

* un juego de destornilladores T5 y T6. Más adelante verás que también hace falta un Phillips Screewdriver #0 para abrir un puñetero tornillo minúsculo situado en la parte superior derecha de la parte posterior de la pantalla del móvil.

* Lo segundo que es totalmente necesario si no quieres dejarte las uñas y los dedos en el intento, es un par de cuñas de plástico.

* Unas pinzas de depilar o de filatelia

* Una pantalla de repuesto

* Mucho tiempo de sueño que estés dispuesto a perder

Vamos allá. Los destornilladores T5 y T6 los puedes encontrar «sin problemas» en cualquier ferretería. Lo entrecomillo porque encontrar los dichosos «destornilladores de precisión», como se conocen por ahí, no fue tan fácil. Me tuve que recorrer varias ferreterías. Y no te venderán unidades sueltas, tendrás que comprar un set completo (aunque son bastante baratos, yo encontré uno completo de 5 unidades por 15 €. Eso sí, el destornillador Phillips #0 fue imposible. Al final, gracias a Endika (thanks, my friend), conseguí un ejemplar.

La pantalla y las cuñas las compré en Honk Kong :-), es decir, a través de la web Mobile Phone LCD (¡que luego ví, en el sello del sobre que me enviaron, que efectivamente está situada en Hong Kong!).  La pantalla está a 38.99  dólares. En la misma web, por $1.49, también tenemos las dos cuñas de plástico para abrir la carcasa del móvil (que está dura de narices…) Tardan unos 8 días en enviarte el material, muy bien empaquetado en una cajita de plástico que protege la pantalla.

¿Cómo sustituír la pantalla del G1? Bien, hay varias formas . La «ortodoxa», es abriendo completamente el móvil, desde la parte de atrás, tras quitar la batería, desensamblar esa parte trasera, abrir luego la base (donde están los botones de llamada), extraer la pantalla, desensamblar la pantalla. Y la «quick&dirty», como muestra este vídeo de un técnico de móviles de Sarajevo. Yo he seguido la segunda, la quick&dirty (eso sí, siguiendo la forma ortodoxa, conseguí llegar hasta el teclado, sacar la lámina del mismo – es un simple plástico con las teclas – y volver a poner, no es difícil, pero da «miedito» al principio ;-). Como decía, siguiendo «the quick&dirty way», lo primero que hay que hacer es abrir el teclado, dejando arriba la pantalla y abajo el teclado, como si fueras a teclear algo en un móvil que funciona correctamente. Bien, dándole la vuelta a la pantalla, verás que hay 4 tornillos (de los cuales sólo son accesibles 3). Uno de ellos sólo lo conseguí abrir con el #0. Los otros dos, con el T5 (el T6 es para los tornillos que encontrarás si quieres acceder siguiendo el método ortodoxo).

Una vez desatornilles, tendrás que usar las cuñas para abrir la carcasa. Hay que darle con firmeza, pero sin cargarte el móvil, claro 😉  Ojo, que no te pase como a mí, que de tanto apretar, despegué el digitizer (es la primera pantalla, la que tocas con los dedos. Está pegada a la carcasa, si aprietas con fuerza, verás que la puedes sacar, pero ¡no es la forma!).

Al abrir la carcasa superior, verás que el móvil tienes 3 «capas» (es como cuando abres una billetera con 3 separadores). La primera capa es el digitizer. La segunda es el LCD. La tercera es una pequeña placa de metal. Podéis ver buenas imágenes en esta web. Si os fijáis en la que acompaña a este artículo, hay un «flex cable» naranja. La parte superior se mete debajo de una tela gris. Bien, esa tela hay que sacarla (despegándola con la ayuda de las pinzas). Al hacerlo verás que se inserta en un minúsculo «slot». Con las pinzas lo sacas del slot. Ya ha pasado lo peor 🙂

Quítale la protección de plástico al nuevo LCD. Conecta el «flex cable» (necesitarás hacer uso de las pinzas otra vez, y con tranquilidad y paciencia lo conseguirás). Cierra las tapas que hayas abierto. Pruébalo.

Para decir toda la verdad, he conseguido que  la pantalla vuelva a funcionar, pero el digitizer no (es decir, si toco la pantalla no me hace ni caso, tengo que funcionar con el «touchpad» o mini-ratón del ADP1 y el teclado físico). Pero ahora al menos puedo usar el móvil y verlo :-).  Próximo reto: tal vez, cambiar el digitizer, aunque otros $46 sin saber si eso resolverá o simplemente el actual está bien y no lo he conectado correctamente, no me hace mucha gracia… ;-P

Tableta gráfica Wacom Bamboo Pen en Karmic

Preparar gráficos para las diapositivas de clase es una tarea ardua y costosa. A veces, esos gráficos podrían hacerse más rápidamente en papel, y tras escanearlos, se podrían incrustar en el documento de presentación que queramos usar. Pero ya que el Olentzero estaba esperando mi carta, decidí pedirle una tableta gráfica para poder dibujar directamente con un lápiz sobre la tableta – y pasarlo a digital – como si lo hiciera sobre papel y disfrutar mientras «pinto».

El Olentzero me trajo una tableta Wacom (Bamboo Pen), y aunque es compatible Linux, el problema radica en que, de serie, Ubuntu Karmic no la reconoce. Lógicamente la comunidad se ha volcado en cambiar la situación y ya hay una solución . En ese enlace se resume lo que habría que hacer para distintas tabletas gráficas Bamboo (Pen, Touch, Pen & Touch…) y distintas versiones de Ubuntu. Dada la diversidad de opciones, que los enlaces están un poco desperdigados, y que ya hay nuevas versiones, resumo aquí lo que hay que hacer para instalar la tableta Bamboo Pen en Karmic, con todos los enlaces bien colocaditos, y paso a paso, para que con una sesión de copy&paste y 10 minutillos, tengáis la tableta funcionando. Vamos allá.

Preparamos el entorno, descargando paquetes necesarios:

# apt-get update
# apt-get install build-essential libx11-dev libxi-dev x11proto-input-dev 
# apt-get install xserver-xorg-dev tk8.4-dev tcl8.4-dev libncurses5-dev
# apt-get install libhal-dev

El fichero de cabeceras hids.h es necesario para compilar los drivers de linuxwacom más adelante:

# wget http://kernel.ubuntu.com/git-repos/ubuntu/linux-2.6/drivers/hid/hid-ids.h
# cp ./hid-ids.h /lib/modules/`uname -r`/build/drivers/hid/hid-ids.h

Ahora tenemos que descargar los drivers linuxwacom-0.8.4-3.tar.bz2 (ojo, hay que navegar el enlace, no vale con «Guardar destino como…»)

También necesitaremos descargar los parches necesarios para Bamboo Pen ( wcm2_patch.tar.bz2 )

Descomprimir y parchear todo:

# tar -xvjf linuxwacom-0.8.4-3.tar.bz2
# tar -xjvf wcm2_patch.tar.bz2        
# cp wcm2_patch/*.patch linuxwacom-0.8.4-3/     
# cd linuxwacom-0.8.4-3/
# patch -p1 < wacomcpl-exec.patch
# patch -p1 < wacom_sys.c.patch
# patch -p1 < wacom_wac.c.patch
# patch -p1 < wacom_wac.h.patch
# patch -p1 < wactablet.h.patch
# patch -p1 < wacusb.c.patch
# patch -p1 < wcmUSB.c.patch

Y comienza la compilación de los drivers:

# make clean
# ./configure --enable-wacom --prefix=/usr
# make
# make install

Ahora ojo, porque la versión del módulo de kernel wacom.ko, dependerá del kernel que estemos usando. En mi caso, haciendo «uname -a» vemos que la versión que necesito es la 2.6.31.

Cargamos el módulo y reconstruímos las tablas de dependencias entre módulos:

# insmod /lib/modules/$(uname -r)/kernel/drivers/input/tablet/wacom.ko
# depmod -e

Necesitaremos decirle a HAL cómo es nuestra tableta gráfica y qué capacidades tiene, generando un fichero .fdi para ello. Tranquilos, ya está hecho, sólo hay que descargarlo y dejarlo en su sitio:

$ sudo cp Favux_new-generic_rc2_10-linuxwacom.fdi.txt /usr/share/hal/fdi/policy/20thirdparty/10-linuxwacom.fdi

Si todo ha ido bien, conectaremos la tableta, y al pedir un listado de dispositivos USB conectados, obtendremos algo como :

# lsusb
...
Bus 001 Device 006: ID 056a:00d4 Wacom Co., Ltd 
Bus 001 Device 004: ID 046d:c50e Logitech, Inc. MX-1000 Cordless Mouse Receiver
Bus 001 Device 003: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
...

(lo importante es la línea Wacom, el resto dependerá de vuestros dispositivos USB 🙂

Ya sólo hace falta indicarle a las X que tenemos un nuevo dispositivo de entrada, editando para ello el fichero /lib/udev/rules.d/40-xserver-xorg-input-wacom.rules y añadiendo (sólo la línea ATTRS, el resto simplemente sirve para situarnos en contexto):

..
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d4", SYMLINK+="input/tablet-wacom-bamboo-pen"
# Convenience links for the common case of a single tablet.  We could do just this:
..

(donde pone 00d4 poner el id que nos devuelva lsusb, que en el caso de Bamboo Pen es 00d4)

Reiniciar. ¡Buf! Que ustede lo dibujen bien.

PD: tal cual está, la tableta debe de ser reconocida y podréis trabajar con ella sin problemas. Pero si queréis que por ejemplo GIMP detecte cuándo presionáis más o menos el lápiz sobre la tableta, y en función de ello se realicen unos trazos más finos o gruesos, hay que configurar GIMP. Es fácil, basta con seguir estas explicaciones paso a paso con pantallazos.

Cuando las cosas se hacen bien

Cuando las cosas se hacen bien es justo reconocerlo. Y el soporte técnico de Dell ha hecho las cosas bien.

El lunes tuve un problema con mi Dell Inspiron 530. O más concretamente, tuve un problema con la tarjeta gráfica de ese PC, una ATI Radeon 3650. El ventilador de la tarjeta empezó a sonar como si fuera a salirse de los ejes. No es que fuera un ruido ensordecedor, pero precisamente compré este Dell en su día porque sabía que era bastante silencioso y así había sido hasta el lunes, cuando el ventilador empezó a oirse desde la habitación de al lado. Consultando el problema con san Google, encontré algunas opciones: limpiar el polvo de la gráfica. Ok, así lo hice, pero la verdad es que estaba bastante reluciente y no creo que ese fuera el problema, aunque no llegué a limpiar con aire comprimido 🙂

Otra opción que al parecer funciona con algunas tarjetas es la de cambiar la potencia del ventilador. En las ATI puedes decidir cuándo quieres darle más revoluciones o menos (se supone que en función de la temperatura… para enfriar la tarjeta, revolucionar más el ventilador) Podemos ver la temperatura a la que está la gráfica así:

$ aticonfig –adapter=0 –od-gettemperature

Ahora que tengo una tarjeta nueva, la temperatura es de 55º. Cuando el ventilador estaba estropeado y a tope, la temperatura era de sólo 38º.

Puedes cambiar la velocidad del ventilador así:

$ aticonfig –pplib-cmd «set fanspeed 0 40»

para que el ventilador número 0 vaya al 40% de su potencia máxima.

El caso es que en la tarjeta vieja no había forma de parar el ventilador.  Probé otras dos cosas antes de llamar al soporte técnico: actualizar el firmware de la BIOS de mi PC y actualizar los drivers de la gráfica. Nada, todo seguía igual.

El técnico de Dell (o de la empresa que tengan contratada) me atendió en perfecto castellano, con amabilidad y dirigiéndome por los pasos lógicos de diagnóstico. En cuanto vió qur ya lo había intentado casi todo me dijo que no había problema dado que tengo contratada una garantía por 2 años. Me vendría un técnico a cambiar la tarjeta por otra nueva. En cuanto colgué me llegó un email indicándome con un resumen cuál era el diagnóstico y que en breve me llamarían para fijar día y hora con el técnico. Eso fue un lunes por la tarde. El martes por la mañana me llamaron de Dell 🙂 Fijamos el viernes. Ayer viernes me llamó el técnico a las 9:30 para ver si me venía bien que se pasara hacia las 10. Perfecto. El técnico apareció a la hora acordada, con una ATI Radeon nueva. Sustituyó la vieja por la nueva en un periquete y se marchó. Vuelvo a trabajar con un PC silencioso.

Ya véis que no es nada del otro mundo: alguien ha hecho bien su trabajo. Pero es de agradecer al que así lo haga, y más en Agosto.

Casualidades de la vida, el mismo día que el soporte Dell me cambiaba la pieza, anunciaban que la idea FUD que Microsoft lanzó recientemente sobre que «los netbooks con Linux tienen una alta tasa de devolución por parte de usuarios insatisfechos» no tiene ni pies ni cabeza según sus propios datos. Según la propia Dell la tasa de devolución ni es alta ni es superior a la de devoluciones con sistema Windows.
Update: por cierto, que los comandos aticonfig, con la nueva tarjeta, funcionan a la perfección 🙂

Intel Poulsbo, GNU/Linux y Netbooks

Jonan Hernández, miembro de ITSAS y ponente habitual en las charlas del grupo en la Facultad de Informática de Donostia, nos deleitó a todos con un jugoso artículo sobre las incompatibilidades del chipset Intel US15W (aka Intel Poulsbo) y en concreto la tarjeta gráfica integrada Intel GMA 500 con los notebook corriendo Linux. Incomprensiblemente, Intel a veces actúa a favor del software libre y otras totalmente en contra. En fin, mensaje a marineros que quieran surcar las aguas de Internet con ese chipset y Linux: tal vez sería conveniente que os decantárais por algo más compatible…

Sin más, os dejo con el artículo de Jonan (que amablemente nos ha permitido publicar en DiarioLinux):

Es posible que si habéis estado mirando netbooks o barebones con procesadores Atom os hayáis encontrado con algunos modelos que poseen el «famoso» chipset Intel US15W (a.k.a Intel Poulsbo) y la
gráfica Intel GMA 500, que tantos problemas están dando a muchos usuarios de GNU/Linux, entre algunos de los modelos que poseen este chip son el Sony Vaio P o el Dell Inspiron Mini 12. Este chipset se está haciendo bastante popular entre algunos fabricantes porque supone un ahorro muy significativo respecto al chipset Intel 945Gx, que es el que suele montarse normalmente en los equipos con procesadores Atom.

El intel Atom N270 con el chipset 945GSE Express consume un máximo de 11.8 W
El intel Atom Z5xx con el chipset US15W consume 5W

A pesar de que este ahorro energético resulta muy interesante, tiene la gran pega que la gráfica integrada que viene en el chipset US15W NO ES una gráfica de Intel, sino que para aumentar la eficiencia energética han licenciado la gráfica para móviles PowerVR SGX de
Imagination Technologies, muy conocida en este mundillo de procesadores para móviles, como el Apple iPhone 3G S o los móviles de alta gama que cuentan con un procesador OMAP3 de Texas Instruments (muy popular en móviles de alta gama de Nokia, y procesador de la popular placa de desarrollo libre BeagleBoard, o las placas Gumstix Overo).

Y los comerciales de Intel no se les ocurrió mejor nombre que denominarla comercialmente como Intel GMA 500, facilitando así la confusión con el resto de la familia de gráficas de Intel, confusión
que aumenta cuando muchos usuarios descubren que el driver libre de Intel (válido para todos los modelos de las gráficas de Intel) no funciona, sin ninguna aparente pista, de que en realidad necesitan un driver específico para este modelo al tratarse realmente de una gráfica totalmente diferente. Problema que se agrava porque a pesar de que Intel es «Linux friendly», Imagination Technologies no lo es en absoluto.

Por poner ejemplo ilustrativo, las Internet Tablets de Nokia (las Nokia N800/N810) tienen un procesador OMAP 2420 con una GPU PowerVR MBX, y aún tras muchos intentos de Nokia no han terminado liberando una versión para los kernels 2.6, cuando para más estupor de todos los usuarios de estas tabletas existen para los kernels 2.4.

En el caso de la placa libre BeagleBoard, que cuenta con la GPU PowerVR SGX, en cambio si es posible obtener los drivers, aunque eso si contactando con la propia Texas Instruments.

El estado actual es bastante incierto, por un lado Intel Moblin
(la distribución de Intel optimizada para netbooks) no tiene planificado en un futuro soportar estas gráficas, lo cual muestra IMHO la apuesta de Intel por este hardware bajo GNU/Linux, y por otro lado
existe un cierto soporte 2D y 3D, ya que irónicamente algunos modelos fueron vendidos con Ubuntu Netbook Remix 8.04 de serie, pero con la gran limitación de que dichos drivers, son compatibles únicamente con el kernel 2.6.24 limitando a dichos usuarios a permanecer con esa desfasada Ubuntu u optar por el driver «vesa» y prescindir de cualquier tipo de aceleración 2D/3D.