Tecno4all

“Great spirits have always encountered opposition from mediocre minds.”
Albert Einstein

viernes, enero 06, 2006

VuGo en Linux

VuGo es un sistema para almacenar y reproducir imágenes, vídeos y música. Es distribuido por Hasbro y su tecnología pertenece a la familia de los VideoNow.


VuGo


Mi hija recibió uno como regalo y de inmediato investigué si era posible utilizarlo desde Linux. El CD que lo acompaña viene con software para Windows (por supuesto) y Mac OS. Pero nada dice sobre Linux u otros. ¿Nos debe sorprender?

Supongo que una de las razones para esa omisión es que los medios digitales son almacenados en el VuGO en un formato proprietario con manejo de derechos (DRM). El software para manejar desde la computadora al VuGo se asegura de convertir la música, fotos y vídeos al formato proprietario de VuGo antes de almacenarlo en el artefacto. Una de las medidas para controlar la distribución de archivos entre artefactos es que solamente un máximo de dos VuGo pueden estar registrados en una computadora. Es decir, si tenemos tres VuGo en nuestra casa, sólo dos pueden hacer uso del software. Para el tercero necesitaríamos otra computadora. Ridículo.

Desde el lugar web de VuGO (http://www.vugo.com) se pueden descargar programas y música, pero un VuGo no puede transferir archivos a otro directamente. Imagino que dentro del archivo de vídeo grabado en el VuGo se añade algún código único que identifica a la máquina en la que se encuentra y eso no permite que otra máquina pueda usar el mismo archivo. Compartir, entonces, está prohibido. Es más restrictivo que las iPod.

Mi hija y yo grabamos com facilidad directamente del televisor mediante los cables de vídeo que VuGo trae. Les digo, para todas las restricciones que el sistema impone para impedir el compartir archivos hubiera esperado vídeo de alta definición, pero la calidad del vídeo que produce es bajísima. La resolución es como 160 x 240 píxeles. Ni siquiera grabando el vídeo bajo la opción de "Best quality" produce algo decente, por lo menos para películas. Es posible que para caricaturas las imágenes no desmerezcan tanto. Pueden leer una crítica que encontré en el web con la que coincido: VuGo en Linuxslate.

Mi curiosidad me llevó a conectar por USB el VuGo en Linux para ver qué Linux podía hacer con el artefacto. Lo detectó como una memoria flash y pude ver las carpetas "Music", "Video" y "Photo" en Konqueror.





Dentro de la carpeta "Video" ví los archivos en donde mi hija grabó parte de una película directamente del televisor:





Los archivos están en formatos binarios. Intenté ver los vídeos usando Xine, pero no tuve éxito. Imaginaba que eos iba a ocurrir, pero tenía que probarlo.

Utilicé el editor de archivos binarios integrado en Konqueror para inspeccionar uno de los vídeos y esto fue lo que ví:




Comienzo archivo vídeo






Contenido del vídeo



De seguro un "hacker" experto en vídeo podría descifrar ese formato y crear un codec (codificador/decodificador o compresor/decompresor) para ese formato de vídeo. También de seguro a Hasbro no le gustará para nada que alguien haga eso, pero con sus restricciones podría estar tentando a la comunidad "hacker". Aunque, la calidad del reproductor es tan baja que probablemente no consideren que valga la pena descifrarlo. Curioso sería que la baja calidad del vídeo en VuGo resultara ser el mejor deterrente para los "hackers".

Utilizando el comando dmseg para ver mensajes del kernel de Linux desde la consola, esto fue lo que pude averiguar sobre el VuGo luego de conectarlo:


ohci_hcd 0000:00:03.2: wakeup
usb 3-1: new full speed USB device using ohci_hcd and address 7
scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 7
usb-storage: waiting for device to settle before scanning
Vendor: HASBRO Model: VuGo - STORAGE Rev: 0000
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sdb: 245919 512-byte hdwr sectors (126 MB)
sdb: Write Protect is off

sdb: Mode Sense: 03 00 00 00
sdb: assuming drive cache: write through
SCSI device sdb: 245919 512-byte hdwr sectors (126 MB)
sdb: Write Protect is off
sdb: Mode Sense: 03 00 00 00
sdb: assuming drive cache: write through
sdb: sdb1
Attached scsi removable disk sdb at scsi1, channel 0, id 0, lun 0
usb-storage: device scan complete
EFS: 1.0a - http://aeschi.ch.eu.org/efs/
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
end_request: I/O error, dev fd0, sector 0
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
end_request: I/O error, dev fd0, sector 0



Me llama la atención que utiliza un formato de Microsoft, el ISO 9660 Extensions: Microsoft Joliet Level 3. Dado que pude ver las carpetas y archivos dentro del VuGo, Linux es capaz de leer ese formato.

Más información puede obtenerse mediante el comando lsusb que muestra una lista de los artefactos conectados en puertos USB:


edwood@andromeda:~/docs/blog/tecno4all$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 012: ID 0c06:a052 Hasbro Games, Inc.
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 007: ID 03f0:7304 Hewlett-Packard DeskJet 35xx
Bus 001 Device 006: ID 045e:0039 Microsoft Corp. IntelliMouse Optical
Bus 001 Device 005: ID 03eb:3301 Atmel Corp. 4-port Hub
Bus 001 Device 001: ID 0000:0000


La línea que identifica al VuGo es Bus 003 Device 012: ID 0c06:a052 Hasbro Games, Inc..

Otra herramienta para obtener información de artefactos USB es usbview. Desde la consola de Linux escribo usbview y obtengo esta ventana e información:





Imagino que lo que acabo de hacer son los primeros pasos para "hackear" el VuGo y crear software para manejarlo desde Linux. También imagino que los proyetos para crear codecs para Linux de mp3, mpeg, avi y otros formatos proprietarios de medios digitales comenzaron así. Debo aclarar que no veo como ilegal el estudiar un formato proprietario para crear software que me permita, en el caso del VuGo:


  • poder utilizar la cantidad de artefactos VuGo que me venga en gana en mi computadora, no solamente dos



  • que me permita ver lo que grabé en el VuGo en los reproductores de mi computadora (xine, xmms, kaffeine)



  • que me permita transferir archivos entre todos los VuGo que tengo en mi casa


  • que me permita transferir de mi computadora al VuGo y viceversa las fotos, vídeos y música que poseo




No estoy anunciando que voy a trabajar en un "hack" para lograr las cosas que menciono arriba. Lo que describo en esta entrada es lo que imagino serían los primeros pasos para lograr la compatibilidad entre VuGo y Linux. Para lograrlo habría que estudiar sobre codecs de vídeo y audio y dedicar tiempo a descifrar los formatos de VuGo. Ni tengo el conocimiento ni el tiempo y no creo que VuGo, la versión actual por lo menos, merezca el sacrificio. Pero sí podría ser un buen proyecto para estudiantes de programación.