viernes, 31 de julio de 2009

ATI RS690 (Radeon X1200) y el kernel 2.6.30

Me estaba pasando algo raro cuando usaba el kernel 2.6.30 de Debian. Mi placa de video:

01:05.0 VGA compatible controller: ATI Technologies Inc RS690 [Radeon X1200 Series]

no podía renderizar los efectos de KDE 4. Por eso se me ocurrió hacer un diff de /var/log/Xorg.log.0 para cada kernel, y me dí cuenta que no se levantaba el módulo DRM. Un poco de búsqueda en Google me hizo recordar que no tenía instalado el paquete firmware-linux. Bastó con instalarlo y volver a los hermosos efectos de KDE 4 (y a poder disfrutar de GlassifiedAlt).

miércoles, 29 de julio de 2009

Samsung LTE430WQ-F0C LCD config for u-boot and Linux

I have been trying to config a Samsung LTE430WQ-F0C LCD display in a PXA270 (PXA27x). So far, this is what I have achieved:

LCCR0 0x003008f8
LCCR1 0x0307A1DF
LCCR2 0x0204250F
LCCR3 0x04700005
LCCR4 0x00000000
LCCR5 0x3f3f3f3f

I am not completely sure that this is 100% OK (cat /dev/urandom > /dev/fb0 produces at least one line of pixel repetitions). I could neither run X on it. Today I am going to try with Qt embedded. If it is right, I hope it will help someone else; else, I hope you leave a comment saying so, and better if you have a fix :-)

Note 20090730 12:32 ARST: I modified the values. Now filling the framebuffer with random data covers the display correctly.

Note 20090730 13:21 ARST: I also reduced the frequency divider, now seems to work great :-)

Configuración del LCD Samsung LTE430WQ-F0C para u-boot y Linux

Hace unos dias vengo tratando de configurar un display LCD Samsung LTE430WQ-F0C en un micro PXA270 (PXA27x). Hasta el momento, ésto es a lo que he llegado:

LCCR0 0x003008f8
LCCR1 0x0307A1DF
LCCR2 0x0204250F
LCCR3 0x04700005
LCCR4 0x00000000
LCCR5 0x3f3f3f3f

No estoy seguro que sea 100% correcto (cat /dev/urandom > /dev/fb0 produce una repetición de píxeles en al menos la última linea, posiblemente sean dos).
Por algún motivo tampoco logré levantar X, y en un rato voy a probar con Qt en el framebuffer. En fin, si está correcto, espero que le sea útil a alguien. Si alguien encuentra un error, espero que me lo deje en un comentario :-)

Nota 20090730 12:34 ARST: cambié los valores, ahora llenar el framebuffer con datos aleatoreos cubre bien el display.

Nota 20090730 13:22 ARST: también reduje el divisor de frecuencia, ahora parece andar realmente bien :-)

martes, 21 de julio de 2009

KDE 4.2.4 llegó a Debian testing

Finalmente KDE 4.2.4 entró a Debian testing. Personalmente he visto bastantes mejoras con respecto a 4.2.2, en especial con krunner (que se me colgaba al querer acceder a cosas que empezaban con a... como amarok).

Recomiendo a aquellos que usen testing actualizar sus sistemas :-)

Por otro lado, éste es mi primer post en Planet Debian en español, y hay que seguir las costumbres:

¡Hola planeta!

viernes, 3 de julio de 2009

Origami matemático (o de cómo lograr que gente muerta resuelva tu problema)

Robert Lang dió una charla para TED sobre el origami y las matemáticas. Lo que al principio parece un lindo juego para matemáticos termina convirtiéndose en una herramienta:


Algunas frases para destacar:

  • "Cómo lograr que gente muerta resuelva tu problema"
  • "Nuestra aplicación corre en muchas plataformas... inclusive en Windows", refiriéndose a TreeMaker... que está bajo la GPL.

miércoles, 1 de julio de 2009

Arreglando problemas de una instalación truncada de ia32-apt-get

Hoy estaba instalando ia32-apt-get en mi máquina, cuando se clavó la misma durante la generación de unas claves gpg. Cuando quise volver a ejecutar la misma, saltaba un error. Cuando quise desinstalar el paquete a medio instalar... otro error. Para colmo, no me dejaba instalar o desinstalar otro paquete. Hora de ensuciarse las manos :-)

Probé un par de cosas que se me fueron ocurriendo, y como no podía dar en el clavo, pregunté en #debian-ar. Marga tuvo la gentileza de darme una mano.

El primer error fué éste:

  1. root@tonks:/home/lisandro# aptitude install ia32-apt-get
  2. Leyendo lista de paquetes... Hecho
  3. Creando árbol de dependencias
  4. Leyendo la información de estado... Hecho
  5. Leyendo la información de estado extendido
  6. Inicializando el estado de los paquetes... Hecho
  7. Leyendo las descripciones de las tareas... Hecho
  8. No se instalará, actualizará o eliminará ningún paquete.
  9. 0 paquetes actualizados, 0 nuevos instalados, 0 para eliminar y 12 sin actualizar.
  10. Necesito descargar 0B/20,1kB de ficheros. Después de desempaquetar se usarán 0B.
  11. Escribiendo información de estado extendido... Hecho
  12. dpkg (subproceso): fallo al ejecutar dpkg-deb para extraer la información de control: No existe el fichero o el directorio
  13. dpkg: error al procesar /var/cache/apt/archives/ia32-apt-get_18_all.deb (--unpack):
  14.  el subproceso dpkg-deb --control devolvió el código de salida de error 2
  15. Se encontraron errores al procesar:
  16.  /var/cache/apt/archives/ia32-apt-get_18_all.deb
  17. E: Sub-process /usr/bin/dpkg returned an error code (1)
  18. Un paquete no se pudo instalar. Intentado recuperarse:
  19. Leyendo lista de paquetes... Hecho
  20. Creando árbol de dependencias
  21. Leyendo la información de estado... Hecho
  22. Leyendo la información de estado extendido
  23. Inicializando el estado de los paquetes... Hecho
  24. Leyendo las descripciones de las tareas... Hecho
Marga sugirió que me fije que existiera /var/cache/apt/archives/ia32-apt-get_18_all.deb, pero estaba ahí. Instalarlo a mano con dpkg -i daba el mismo error. Entonces sugirió que intentara abrir el archivo con mc. Ahí dió en el clavo que llevaría a al solución: mc se quejaba de que no existía dpkg-deb. Resulta ser que ia32-apt-get genera un divert de ése binario. Para solucionar el problema, bajé el paquete dpkg, lo descomprimí y copié los binarios a mano en donde correspondían. Esto no asegura que el sistema quede limpio, ya que no sabía en qué estado estaban los divert.

Ésto me permitió volver a intentar instalar el paquete ia32-apt-get obteniendo el siguiente resultado:

  1. root@tonks:/usr/bin# aptitude install ia32-apt-get
  2. Leyendo lista de paquetes... Hecho
  3. Creando árbol de dependencias
  4. Leyendo la información de estado... Hecho
  5. Leyendo la información de estado extendido
  6. Inicializando el estado de los paquetes... Hecho
  7. Leyendo las descripciones de las tareas... Hecho
  8. No se instalará, actualizará o eliminará ningún paquete.
  9. 0 paquetes actualizados, 0 nuevos instalados, 0 para eliminar y 12 sin actualizar.
  10. Necesito descargar 0B/20,1kB de ficheros. Después de desempaquetar se usarán 0B.
  11. Escribiendo información de estado extendido... Hecho
  12. Seleccionando el paquete ia32-apt-get previamente no seleccionado.
  13. (Leyendo la base de datos ...  00%
  14. 169299 ficheros y directorios instalados actualmente.)
  15. Preparando para reemplazar ia32-apt-get 18 (usando .../ia32-apt-get_18_all.deb) ...
  16. Desempaquetando el reemplazo de ia32-apt-get ...
  17. Configurando ia32-apt-get (18) ...
  18. gpg: no default secret key: clave secreta no disponible
  19. gpg: signing failed: clave secreta no disponible
  20. dpkg: error al procesar ia32-apt-get (--configure):
  21.  el subproceso installed post-installation script devolvió el código de salida de error 2
  22. Se encontraron errores al procesar:
  23.  ia32-apt-get
  24. E: Sub-process /usr/bin/dpkg returned an error code (1)
  25. Un paquete no se pudo instalar. Intentado recuperarse:
  26. Configurando ia32-apt-get (18) ...
  27. gpg: no default secret key: clave secreta no disponible
  28. gpg: signing failed: clave secreta no disponible
  29. dpkg: error al procesar ia32-apt-get (--configure):
  30.  el subproceso installed post-installation script devolvió el código de salida de error 2
  31. Se encontraron errores al procesar:
  32.  ia32-apt-get
  33. Leyendo lista de paquetes... Hecho
  34. Creando árbol de dependencias
  35. Leyendo la información de estado... Hecho
  36. Leyendo la información de estado extendido
  37. Inicializando el estado de los paquetes... Hecho
  38. Escribiendo información de estado extendido... Hecho
  39. Leyendo las descripciones de las tareas... Hecho

Bien, ése error era entendible: el proceso se había cortado durante la generación de las claves. Al principio pensé que se trataba de una clave general del sistema. Busqué sin suerte, hasta que me cansé y tomé por el lado sano: descomprimí el paquete ia32-apt-get y miré los scripts de instalación. Ahí encontré que las claves se generan en /usr/share/ia32-apt-get/.gnupg . El script chequeaba que las claves no existieran, para no generarlas de gusto en caso de que ya estuviesen creadas. bastó con eliminar ése directorio y finalmente pude instalar el paquete.

Pero no todo termina ahí: no sabía como estaba el divert. Para arreglar ése problema, desinstalé ia32-apt-get. Ésto hizo que se volvieran a borrar los binarios como dpkg-deb. Arreglando el problema a mano, procedí a volver a instalar ia32-apt-get. Listo, ahora todo éstá en su lugar :-)

En tódo ésto, fué primordial tener acceso al códgo fuente. Después me preguntan porqué me gusta tanto "éso del software libre" :-)

¡Mil gracias Marga!