15 mar 2010

Streaming casero

Bueno, sólo quería contaros en unas pocas líneas otro de mis xperimentos: el streaming casero.

¿Qué quiero decir con ese término?

Técnicamente lo podríamos denominar "Streaming de A/V a través de una LAN". Tengo un pequeño NAS que es capaz de hacer streaming de audio vía DAAP (también conocido como protocolo iTunes) y de video vía UPnP y DLNA (también sirve para audio). Ahí me picó el gusanillo de investigar el tema.

Aprendí que hay servidores que además hacen la transcodificación de video al vuelo (mientras se hace el streaming). Transcodificación es la conversión de un formato a otro. Resulta particularmente interesante para aparatos que sólo son capaces de reproducir video flash... como la Wii y mi móvil (que es un smartmobile del montón, un Nokia 5800 XM).

4 mar 2010

Enredando con el móvil y la Wii

No sabía muy bien cómo enfocar este artículo en que hablo de mis últimos enredos tecnológicos. Por otra parte quería que los que estáis leyendo los artículos sobre la wii (ver capítulos 1 y 2) viérais hasta dónde se puede llegar.

Este artículo está fuera de secuencia, es un incentivo para seguir adelante. Para llevarlo a cabo hacen falta conocimientos para montar Linux en Wii (todavía no os lo he explicado y hay varias opciones para hacerlo), gestión de redes IP (y Wifi en particular), control remoto con VNC... pero seguro que alguien se anima a intentarlo. Y si no es así, al menos, confío en que esta lectura os resulte interesante o al menos entretenida.

Partimos de 2 elementos fundamentales: un móvil con capacidades de red y una videoconsola Wii modificada por software para ejecutar aplicaciones homebrew.

El móvil es un Nokia 5800 XM que se conecta por Wifi a la red local y tiene la IP 192.168.1.33 (obtenida por DHCP).

La Wii también se conecta a la Wifi con la IP fija 192.168.1.6 (configuración manual).

Adicionalmente hay otros 2 elementos: el router con la IP 192.168.1.1 y un PC con la IP 192.168.1.2

¿Que he tratado de explorar? pues, las capacidades de interactuar del móvil con la Wii.

Una de las cuestiones más llamativas es la capacidad de controlar la Wii con el móvil. Tranquilos que no es que el móvil haga las funciones del mando de la Wii. El asunto tiene un poco mas de enjundia: la Wii corre un Linux Debian Etch, la distribución XWhiite 0.2, además se arranca un servidor VNC; y el móvil tiene instalada una aplicación cliente VNC.

Es decir, en la pantalla del móvil podremos ver la interfaz X Window del Linux de la Wii. Además, no sólo podemos ver, podemos interactuar :-)

Y como una imagen vale más que mil palabras...

Aquí tenemos una "foto" de la pantalla del móvil en que se observa en su parte superior la vista total de la pantalla de la Wii (lo que se ve en la tele) y en su parte inferior los controles del cliente VNC hecho en Java para el móvil. Si os fijáis bien podreis ver que hay un Xterm en que se ha ejecutado el comando "ifconfig", una ventana en la que corre el servidor VNC, la barra del menú de la interfaz X y hasta el puntero en pequeñito.

También os voy enseñar otra "foto" en la que ahora veréis en la pantalla de la Wii aparece un navegador más ligero que Firefox que se llama IceWeasel que accede a la página del buscador Google.

Supongo que quizá os preguntéis ¿para qué sirve esto? y la respuesta podría ser muy gallega ¿y eso importa?. Tan solo es una prueba de concepto ó PoC ("proof of concept") en que usamos una Wii como un ordenador y un móvil como dispositivo de control remoto. Es decir, no usamos ninguno de los dos aparatos para la misión principal que fueron concebidos: jugar y llamar por teléfono respectivamente.

El asunto lo he llevado aún más lejos porque he accedido desde la Wii a un servidor web que corre en el teléfono móvil con resultado bastante positivo, excepto que se me ha cortado alguna que otra vez la Wifi (cosa que nada tiene que ver en este Xperimento). Aquí tenéis otra foto del acceso al servidor web del teléfono, pero tomado desde el PC para que se vea mejor.



Si alguien quiere alguna aclaración adicional del "cómo se hizo" que escriba un comentario al presente artículo.

Espero que os haya gustado. No me he apañado para hacer un vídeo porque no tenía manos bastantes para el móvil el mando wii (actuando como ratón) y el lio de cables que hay alrededor de la Wii: el que conecta a la TV, el que conecta a la barra sensora, el cable USB del HD que contiene backups de juegos, el cable USB del teclado, el cable USB del micrófono de la Wii, un ratón USB enganchado a la Wii...

Alguno se preguntará ¿cómo has conectado más de 2 dispositivos USB a la Wii? pues, muy fácil usando un Hub USB :-)

Próximos posibles Xperimentos:

  • Estoy buscando una solución para mi siguiente reto tecnológico: trato de reproducir en la Wii y en el móvil por streaming contenidos de audio y video de mi NAS. Necesito un cliente DAAP (iTunes) y un cliente UPnP/AV o DLNA que corra en los citados aparatos. A ver si Nokia me ayuda con la certificación como DLNA del 5800 XM...

  • Estoy intentando desarrollar mi primera aplicación homebrew para la Wii basándome en devkitPPC y algunas otras librerías...

1 mar 2010

Explorando la Wii (cap.02): Backup de la NAND

Continuamos donde nos quedamos en el capítulo 1. Teníamos la Wii con el Canal Homebrew instalado... y nos quedaba pendiente la realización del backup antes de que rompamos nada.

Bienaventurados aquellos que pudísteis instalar Bootmii como boot2 ya que estáis en condiciones de hacer un backup y de más tarde poder recuperarlo con seguridad.

Los que no pudísteis, existe una aplicación que se denomina Priiloader (sucesora de Preloader) que os ayudará de forma similar. Yo no la he usado, así que no puedo deciros nada más.

Si otros decidísteis instalar Bootmii como IOS, podréis hacer el backup, lo que no es seguro es que podáis restaurarlo. ¿Por qué digo esto? porque para poder recuperar la wii hay que poder entrar a ejecutarlo desde el HBC (Canal Homebrew) y quizá no podáis (la pescadilla que se muerde la cola).

Cuando instalásteis Bootmii se creó en vuestra SD un directorio /bootmii con 3 ficheros dentro. En ese caso, cuando arrancáis la wii con la SD que tiene el directorio /bootmii, se ejecuta Bootmii aunque quizá no lo veáis :-) porque me parece que por defecto está la opción de arranque normal de la Wii. Para cambiar las opciones de ejecución de Bootmii hay que editar el XML a mano o bien con una aplicación dedicada a este menester que se puede instalar en el HBC (es decir copiando su directorio al /apps de la SD): Bootmii Config Editor.

Para conocer con detalle cómo usar Bootmii os recomiendo http://wii.scenebeta.com/tutorial/que-es-bootmii-y-como-se-usa

Y también tenéis más información en Wiibrew.org.

Ojo, tened en cuenta que Bootmii no se puede manejar con el mando de wii (el wiimote), hay que manejarla con el BOTON ON y BOTON RESET de la Wii. También se puede usar un mando de GameCube (GC para los amigos). Yo tengo uno inhalámbrico que me costó 16€ y también sirve para juegos GC, Consola Virtual y Wiiware.

Como veremos en otro capítulo se pueden arrancar desde Bootmii otras aplicaciones, como por ejemplo un Linux para que tenga acceso a bajo nivel a los dispositivos de Wii :-)

Recuperando el hilo... desde Bootmii se puede:

  • Arrancar la wii normalmente

  • Arrancar directamente HBC

  • Ver el contenido de la SD

  • Backup/restore de la NAND


Se puede configurar para que arranque por defecto cualquiera de las 4 opciones o bien que deje pasar un tiempo antes de tomar la acción configurada por defecto.



Cuando hacemos el backup de la NAND (el sistema de ficheros encriptado dentro de la wii) puede que nos detecte algunos errores de fabricación de la memoria, no os alarméis que no pasa nada (las wii no se fabrican perfectas). La mia tiene 3 bloques malos.

Al acabar el backup tendréis 2 nuevos ficheros en el directorio raíz, uno con las claves de vuestra wii y otro con el backup (este último ocupa 0,5 Gbytes por lo que hay que tener suficiente espacio en la SD). Guardad con cuidado estos 2 ficheros porque son los que pueden salvar vuestra wii de un brick parcial o total.

Puedes hacer tus backups cuando quieras, no obstante te recomiendo que siempre guardes este primer backup aunque hagas otros (a ser posible en un momento en que tu wii funcione bien).

Os recomiendo que uséis una SD distinta para backup/restore que la que uséis normalmente. En esta SD recordad que esté el directorio /bootmii. También os recomiendo tener en esta tarjeta Bootmii Config Editor.

Las SDHC no sib

Por último deciros que no sirven backups de una wii en otra (¡Ni se os ocurra intentarlo!).

Resumen del capítulo:



  1. Sigues siendo tú el responsable de lo que haces con tu wii

  2. Prepara una SD con al menos medio giga libre y el directorio /bootmii que se creó en la SD cuando instalaste Bootmii

  3. Cambia las opciones de arranque de tu BootMii a tu gusto editando el XML o usando Bootmii Config Editor

  4. Conecta si tienes un mando de GC a la Wii para mayor comodidad

  5. Arranca Bootmii y con el mando GC o las teclas "on" y "reset" elige la opción de backup

  6. Espera a que acabe el backup y no te asustes de bloques con errores

  7. Sal de Bootmii y guarda los ficheros generados en la SD en un sitio seguro



Estado de tu wii (si todo ha ido bien)



  • Tienes instalado el Canal Homebrew (HBC) para ejecutar homebrew

  • Tienes una copia de respaldo para restaurar la wii tal y como está ahora mismo