08.24.06

movie-to-mp4

Posted in Linux, Móviles at 12:58 am by Rodrigo

Este es mi script para convertir video para ser visto en el N80 con RealPlayer. Hubo harta prueba y error para encontrar los parámetros correctos, pero el resultado se ve bastante bien:

movie-to-mp4

Requiere Python, así como MEncoder y GPAC. Es posible jugar con algunos parámetros para obtener mejor calidad/archivos más pequeños, pero los valores por omisión son los que yo uso para prácticamente todo (MPEG-4 video a 256 kbps, 25 fps, 1 pasada; AAC audio a 64 kbps, 44.1 kHz stereo). Dado que utiliza mencoder para transcodificar el video y audio originales, la entrada puede ser cualquier video visible con MPlayer.

Ahora tengo que descubrir si es posible y cómo utilizar directamente x264 en vez de ffmpeg para codificar el video con MPEG-4 AVC (lo que daría un bastante mejor resultado). Después de todo, el N80 es un dispositivo bastante capaz en lo que a video se refiere, según esta tabla.

Adicionalmente, me gustaría codificar el audio utilizando eAAC+ (HE-AAC v2) para ahorrar aún más espacio (un eAAC+ de 48 kbps suena similar a un MP3 de 128 kbps), pero MPlayer no es capaz todavía de codificar el audio de esa manera. Lo único que he encontrado en Linux para hacerlo es la implementación de referencia del standard en el sitio de la 3GPP. De hecho, eso es lo que uso para convertir música y pasarla al N80 (aunque el bitrate es bastante limitado, pero en fin).

08.22.06

Consultas de Google

Posted in Cine y TV, Juegos, Linux, Móviles, Tecnología, Viajes at 11:31 pm by Rodrigo

Estuve mirando las estadísticas de mi sitio y encontré interesantes algunas de las consultas utilizadas para llegar a él. Así que de puro aburrido voy a comentar algunas de las búsquedas de los últimos dos días:

  • lost experience. Después de la segunda temporada de Lost muchos quedamos con ganas de saber más acerca de las misteriosas Hanso Foundation y Dharma Initiative; acerca de la extraña secuencia de números y la anomalía magnética. La Lost Experience fue un ARG (juego de realidad alternativa) que comenzó a mediados de la segunda temporada y pretendiendo que todo el fondo de la serie en realidad existe, hizo que los televidentes entraran a sitios web y llamaran a números telefónicos para averiguar detalles y fragmentos de la historia. Y enganchar a todos para la tercera temporada, de pasada.
  • modelos de celulares los mas modernos en japon. Un query interesante. La verdad es que no estoy muy enterado acerca del estado actual de la tecnología móvil en Japón, más allá de algunos hechos conocidos como el que en Japón las tecnologías de 3ra generación (WCDMA) están ampliamente disponibles y de hecho ya se está comenzando a implementar la transición hacia la 3.5-ava generación (HSDPA). Lo que implica que las llamadas por video, downloads de grandes volúmenes de datos (música, video) y la televisión digital móvil (ISDB-T en Japón) son cosas comunes. Esto a su vez implica que el mercado de móviles de allá es muy distinto al de occidente. Por algo hay tanto teléfono con Linux, Symbian, Flash Lite y montones de tecnologías que acá aún no son populares (salvo tal vez en algunas regiones de Europa).
  • leer archivos adobe en n80. Basta descargar Adobe Reader para S60v3 desde el sitio de Nokia. Dice ser para el E61, pero funciona en cualquier S60 3ra edición.
  • valparaiso monstruos. Eee.. en fin. Voy bastante seguido a Valparaíso, pero no he visto ninguno de esos.
  • telefono t637. Ohh.. el viejo Sony Ericsson T637. Lo tuve durante un mes y lo cambié. La señal era mala, al punto de ser inutilizable como teléfono. Buena implementación de Java, al menos.
  • router inalambricos y openwrt. Aparte del clásico WRT54G (versión 1 a la 4) y sus variaciones, hay algunos routers Asus y Netgear a los cuales también se les puede instalar OpenWRT. Absolutamente recomendable hacerlo de hecho, sobre todo en los Asus que tienen puertos USB. Para qué comprar un router Asus con BitTorrent, si se puede usar OpenWRT con un disco externo USB en uno más barato?
  • juegos con excelente grafica. Esta consulta es un poco general. Por pura gráfica, de lo que he jugado ultimamente (que no ha sido mucho), me quedo lejos con The Elder Scrolls IV: Oblivion (apropiadamente modificado). Ejemplos bien arbitrariamente elegidos (de mi propio PC) aquí: 1, 2, 3 y 4.
  • juegos n80. Otra consulta difícil, dado que no hay mucho de donde elegir. Hay apenas un par de compañías cuyos juegos Java funcionan directamente en el teléfono (si bien no aprovechan todo el espacio de pantalla disponible). Casi todos los juegos Java funcionan en un cuarto o un tercio de la pantalla (si no se caen), y han aparecido poquísimos juegos nativos de 3ra edición (como BantumiGL). Los emuladores no llevan mucha mejor suerte, con sólo un release beta de EEMame disponible para 3ra edición. C2Doom y ScummVM funcionan ok. Por el lado de Flash Lite hay algunas cosas más, aunque hay que buscar.
  • raid “bios assisted”. Pésimo. En Windows funcionaba relativamente bien, aunque consumiendo un buen resto de CPU. En Linux todo era muy, pero muy inestable (utilizando dmraid). Se corrompía el disco sólo por respirar cerca. Lejos prefiero mi setup actual, utilizando RAID por software en Linux (con el módulo md).
  • buses a mendoza. La verdad sólo he viajado una vez a Mendoza (por placer), pero una breve investigación entregó como resultado a Cata como la mejor línea de buses para ir allá. Ni cuento la impresión que me dieron los Tas Choapa viéndolos de lejitos..

Eso por el momento. Quedaron varios queries que me hubiera gustado comentar (como actualizar n80, silent hill, el nokia n80 es grueso, etc.), pero a lo mejor hago otro de estos artículos pronto (como si alguien leyera mi blog ;)).

08.08.06

ObexFS

Posted in Linux, Móviles at 9:17 am by Rodrigo

Por casualidad descubrí ObexFS, una aplicación que funciona sobre FUSE y permite montar dispositivos bluetooth cercanos (que soporten OBEX) como un filesystem “normal”. Normal entre comillas, porque hay ciertas limitaciones, dado que OBEX sólo permite copiar y eliminar archivos (lo que significa que llamadas a sistema como mkdir(2) o chmod(2) no funcionan).

# obexfs -b <MAC bluetooth> -B <OBEX channel> -- -o allow_other /bt

Una simple llamada y el filesystem de mi teléfono queda montado como un disco local en Linux. Probado en mi N80 y en un Sony Ericsson T637 y un K700i. Mejor aún: no he tenido los problemas de pareo bluetooth que se me han dado muchas veces al enviar cosas desde el teléfono a Linux. Hay algunas cosas que pulir, como lo que sucede cuando se manipulan archivos con caracteres especiales en el nombre (aparecen con el equivalente XML: &caracter; y no se pueden manipular), pero en general todo funciona de pelos. Para desmontar el filesystem:

# fusermount -u /bt

Existe además un ejecutable adicional: obexautofs, que funciona como daemon y permite montar automáticamente cualquier dispositivo bluetooth OBEX en rango, siempre que éste acepte la conexión. Todo esto es parte de la suite de aplicaciones OpenOBEX. Se siente casi como si finalmente hubiera PC Suite para Linux :).

04.04.06

Linux RAID

Posted in Linux at 9:36 pm by Rodrigo

Finalmente, me decidí a botar el viejo soft RAID que utilizaba (el típico BIOS Assisted RAID que las placas madres actuales traen) y utilizar en vez de eso md, el RAID por software que hace Linux.

El soft RAID de las placas madres consiste en un RAID por software (un driver en el sistema operativo es el encargado de manejar todo) posible de bootear desde la BIOS (pues el formato de los metadatos del RAID es conocido por ella). Esto tiene una ventaja: el RAID es utilizable desde cualquier sistema operativo que tenga el driver apropiado (Windows y Linux son los únicos que conozco). El problema es que el performance no es muy bueno (después de todo es un RAID por software, no demasiado optimizado) y que si se cambia la placa madre el arreglo muere (probablemente no en Linux, pero si en Windows). Mi placa solo soporta RAID 0 y 1, aunque las más nuevas soportan 0+1, 1+0 y 5. Además, en Linux no está muy soportado, pues el desarrollo es relativamente reciente. Implica utilizar el device mapper del kernel y una herramienta en userspace (dmraid), lo que a su vez implica usar initrd, cosa que yo no hago.. de ahí la razón del cambio.

md es el driver que provee Linux para hacer RAID por software. Obviamente solo funciona en Linux, pero el performance es excelente (está extremadamente optimizado, aunque no llega al nivel de un RAID por hardware). Adicionalmente, es muy flexible y todo el tema del failover (recuperación ante fallas en algún disco) está muy bien soportado.

Así que me cambié.. de un RAID 0 por BIOS a un RAID 5 por md. Utilicé los dos discos gemelos SATA de 80 GB que tengo, más un pedacito de 80 GB de otro disco. Con eso armé un RAID 5 de tres discos, perdiendo ochenta GB en el cambio y ganando mucha confiabilidad (espero). Con mdadm(8) es extremadamente fácil manipular el arreglo, y la gracia de esto es que está muy bien integrado en Debian, mi distribución por elección. De hecho, casi toda la configuración del arreglo la hice via ssh en forma remota :).

OpenWRT

Posted in Linux at 9:29 pm by Rodrigo

WRT54GHace algunos meses compré un Linksys WRT54G. Es un router inalámbrico 802.11g con cuatro puertos Ethernet. La gracia del router viene por el lado del software: usa Linux.

Por motivos económicos, Linksys (ahora una división de Cisco) decidió utilizar Linux como sistema operativo en su linea de routers hogareños WRT54G. No contaron con la presión de la FSF, que tras meses de comunicación logró que Linksys liberara el código fuente del router, obligandolos así a cumplir con la licencia GPL asociada a Linux y las aplicaciones utilizadas (netfilter y otros).

Esto inició un gran número de proyectos de modificación del firmware del router. Algunos proyectos tomaron el código de Linksys y le agregaron funcionalidades como VoIP o IPv6. Otro tomó el código fuente de Linux y lo modificó hasta hacerlo funcionar en el router.. este proyecto es OpenWRT, y en mi opinión es el firmware más sólido que hay para el WRT54G.

OpenWRT es prácticamente una distribución normal de Linux, con un sistema de instalación de paquetes muy similar a Debian. Requiere cierto conocimiento de Linux y la línea de comando, pero la recompensa es un sistema extremadamente flexible y potente. La documentación también es excelente.

La configuración via web no es extensiva, lo que obliga a que uno meta las manos en los archivos de configuración (via ssh). Eso es bueno, pues es prácticamente la única forma de llegar a utilizar todo el potencial del router, pero claramente hace que no sea el firmware apropiado para un newbie en el tema.

Aquí hay una lista de los paquetes disponibles en la distribución oficial actual, OpenWRT White Russian RC5 (obtenida con ipkg list) y aquí hay una lista de los paquetes que yo he instalado en el router (obtenida con ipkg list_installed). Éste tiene 4 MB de memoria flash (hay otros modelos con más, algo más caros), de los cuales casi 2 MB son ocupados por el sistema base (que incluye el servidor web, dhcp, dns, ssh, iptables y pppoe). Adicionalmente instalé paquetes para IPv6, QoS y algunos más. Incluso instalé lua, un lenguaje de programación con un footprint bien pequeño, ideal para hacer scripts en sistemas embebidos (en este caso, un servicio para actualizar mi DNS dinámico cuando cambia la IP asignada por mi ISP).El router en sí es excelente. Buena señal, incluso a través de un par de muros gruesos. Soporta WPA2, la opción menos insegura entre los sistemas de comunicación inalámbricos. Buen performance, a diferencia de un par de routers D-Link que he usado (y que se caen dos o tres veces al día).

La historia sin embargo no tiene un final feliz. El router es tan bueno (con el firmware apropiado), que mucha gente ha preferido utilizarlo en soluciones empresariales no demasiado críticas, en lugar de utilizar routers de nivel comercial ofrecidos por Cisco (que cuestan diez veces más). Es por eso que la última versión del router (WRT54G ver.5) ya no utiliza Linux, sino VxWorks (un sistema operativo propietario desarrollado específicamente para reducir costos en dispositivos embebidos). El problema es que adicionalmente Linksys disminuyó la cantidad de memoria RAM (de 16 MB a 8 MB) y flash (de 4 MB a 2 MB), lo que hace muy difícil poder instalarle Linux en el futuro. Los otros routers Linksys con Linux (como el WRT54GS) están sufriendo el mismo destino.

Hay alternativas: Asus, Netgear y algunas otras compañías ofrecen routers muy similares al WRT54G, con capacidades adicionales como puertos USB o más memoria. Linksys renombró el antiguo WRT54G con Linux como el nuevo WRT54GL, aunque le subió el precio casi en un 50%. Como sea, el router es excelente (de la versión 4 hacia abajo o el nuevo WRT54GL), y la posibilidad de usar Linux con toda la flexibilidad que esto conlleva lo hace realmente atractivo para cualquier geek computín.

03.03.05

Sony Ericsson T637 y Bluetooth

Posted in Linux, Móviles at 10:23 pm by Rodrigo

Como relato aquí, en algún momento tuve un celular Sony Ericsson T637. Prácticamente toda la línea T6XX de Sony Ericsson es idéntica en funcionalidad, con algunas diferencias en apariencia. De lo que pude descubrir:

  • SE T610: El más básico de la serie.
  • SE T616: Idéntico al T610, con la adición del soporte para WMA en Java.
  • SE T630: Un poco más liviano que el T610, con algunos bugfixes y una mejor pantalla.
  • SE T637: Idéntico al T630, con la adición del soporte para WMA en Java.

Aparentemente algunos son de dos y otros de tres bandas.. pero no estoy seguro cuáles (el T610 y el T637 son tribanda). Además hay algunas variantes más, que supongo incluyen soporte para CDMA, por ejemplo. Para mayor información, ver el sitio de Sony Ericsson.

Como sea, mi interés principal con el teléfono era programar en Java. Sin embargo, el soporte de Java era muy limitado (y la implementación de la máquina virtual es por decir lo menos, deficiente).

Por otro lado, me interesaba como subir y bajar archivos hacia/desde el celular. Dado que el teléfono tenía soporte para Bluetooth decidí comprar un adaptador Bluetooth-USB, dispositivo que utilizaría también para jugar con otras cosas. Hice funcionar el adaptador prácticamente de inmediato, sabiendo bien poco de Bluetooth. Gracias Debian!

# apt-get install bluez-utils

Básicamente se necesita habilitar el soporte para BlueZ en el kernel (esa es la implementación del stack Bluetooth que viene en el kernel de Linux; hay otra que viene aparte llamada Affix). Luego se instalan las utilidades como se indica más arriba y listo! Bien.. casi listo, porque falta configurar bluez-utils. Esto se hace editando los archivos que aparecen en /etc/bluetooth, donde una configura el uso de puertos rfcomm, el pin del adaptador y el uso de autorización y encriptación en las comunicaciones. Obviamente si queremos hacer algo más complejo que ping’s y descubrir servicios debemos instalar aplicaciones que utilicen bluetooth..

# apt-cache search bluetooth

Entre el montón de aplicaciones que aparecen destacaría multisync, una aplicación de sincronización de agenda y calendario; obexserver, una aplicación para recibir archivos desde un dispositivo bluetooth (no me funcionó con el T637); obexftp, una aplicación para recibir, listar y enviar archivos desde/hacia un dispositivo bluetooth (funcionó sólo con ciertos archivos de sistema del T637) y el paquete openobex-apps, que contiene varias aplicaciones para comunicarse via OBEX (Object Exchange) con un dispositivo bluetooth o IR.

Entre los comandos útiles para utilizar con bluetooth están:

  • hcitool scan, que entrega una lista con las MAC de los dispositivos bluetooth detectados;
  • l2ping <MAC>, que equivale al comando standard “ping”, pero con redes bluetooth;
  • sdptool browse <MAC>, que permite detectar los servicios entregados por un dispositivo bluetooth cercano.

Para configurar bluetooth manualmente (no es necesario) es posible utilizar además hciconfig y rfcomm, entre otros comandos.

Existe además gnome-bluetooth, un proyecto para agregar soporte para bluetooth a GNOME. No es oficial aún, pero es posible utilizar su repositorio en debian agregando las líneas

deb http://debian.usefulinc.com/gnome ./
deb-src http://debian.usefulinc.com/gnome ./

a /etc/apt/sources.list.

Respecto al Sony Ericsson T637 no me queda nada más que decir, salvo que no pude hacer funcionar gammu ni gnokii con él. En resumen, sólo pude hacer funcionar la bajada/subida de archivos utilizando OBEX y la sincronización de la agenda telefónica mediante multisync u obexftp.

La mala calidad de la señal telefónica, el poco soporte en Linux, la débil implementación de J2ME y mi polola me convencieron de cambiar el teléfono. Pero ya a esa altura pensé “si cambio el teléfono, lo hago en grande”, lo que me llevó a mi siguiente aventura: el Nokia 7610..

08.11.04

Hardware Change (2)

Posted in English, Linux at 12:41 am by Rodrigo

Damn IRQ’s..

The USB devices (including Firewire) still share the same IRQ (21). I tried to balance them using the acpi_irq_balance kernel option.. it didn’t work. The only remaining option to use is append="pirq=xx[,xx[..]]", and hope for the best. If only the “xx” were easy to calculate..

The “other O.S.” upgrade has gone.. emm.. well. I just booted there and it worked, though I had to reinstall all the PCI device drivers, because they were lost in the upgrade. Just two problems remain:

  • Everytime I boot I receive two warnings about bad drivers.. Those are the two IDE channel device drivers.. something about an “hdc” (not the same as Linux, I believe). I tried deleting them, restoring them, reinstalling the VIA 4-in-1.. nothing works. I will have to try safe mode one of these days.
  • There are a lot of devices sharing the same IRQ’s. Apparently, Windows XP doesn’t recognize the IO-APIC in my new motherboard, so I have to reinstall it, just to make it work better. Well, that’s hardly something new for a lot of people, but for me it’s terrible: I have reinstalled it just once in 4 years..

08.07.04

Hardware Change

Posted in English, Linux at 12:37 am by Rodrigo

  • My old MSI K7T266 motherboard for a new Soyo SY-KT600.
  • My old Athlon Thunderbird 1400 for a new Athlon XP Barton 2800+.
  • A new CPU cooler (Zalman CNPS7000A-AlCu) and round 80-pin IDE cables.

This was a good upgrade.. I could not run some games (True Crime for example) because the Thunderbirds don’t have SSE capability.. the same with some NVidia demos. And finally, it was the Doom 3 hardware upgrade :).

Upgrading Linux was a breeze. My old motherboard also had a VIA chipset, so the support was compiled in the kernel. I had some problems with lm-sensors and the ethernet card, but they were solved quickly.

IO-APIC was a different matter. Nothing worked when I enabled it in the BIOS. It took me some time to realize that the MPS version was wrong: When I had it set at 1.1, PCI devices didn’t work. But if I changed it to 1.4, everything was ok. But I still have every USB 1.1, USB 2.0 and Firewire in the same IRQ:

           CPU0       
  0:     122473    IO-APIC-edge  timer
  1:        513    IO-APIC-edge  i8042
  8:          1    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 14:      20799    IO-APIC-edge  ide0
 15:         19    IO-APIC-edge  ide1
 16:        236   IO-APIC-level  nvidia
 17:        124   IO-APIC-level  eth0
 19:          0   IO-APIC-level  EMU10K1
 21:        154   IO-APIC-level  uhci_hcd, uhci_hcd, uhci_hcd, uhci_hcd, ehci_hcd, ohci1394
NMI:          0 
LOC:     122416 
ERR:          0
MIS:          0

Well.. I’ll see into that problem later. Now, the hard part: trying to upgrade Windows XP without re-installing (yeah, I know it’s hard).. I hope it doesn’t take too much time..

« Previous entries Next Page » Next Page »