miércoles, febrero 27, 2008

Un poco de eyecandy parte 2: fbcondecor y fbsplash

Luego de tener un grub gráfico, otro de los caprichoso que tenemos los usuarios es ocultar al usuario todos los mensajes del inicio mediante el uso de un bonito splash animado. Para realizar esta labor hay diferentes alternativas, en este artículo mostraré dos formas, pero explicaré como utilizar sólo una de ellas.

La primera es splashy, el cual trabaja en espacio de usuario utilizando el framebuffer. Este es el enfoque utilizado por la gran mayoría de las distribuciones, debido a que no requiere parchar el kernel. No es mi preferido, ni es el método que explicaré en esta oportunidad, de cualquier modo, los usuarios de archlinux pueden encontrar la explicación de como instalarlo. Además de la ventaja ya mencionada, otra que posee es que también muestra una pantalla al momento de apagar el sistema. Como desventaja tenemos que se configura mediante xml, lo que puede resultar algo engorroso crear temas para un ser humano no entrenado en el uso de etiquetas.

Otra opción es fbsplash, el cual a partir de las últimas versiones tampoco requiere parchar el kernel. Cuando el proyecto era conocido como gensplash, este si necesitaba modificar el kernel. Esto causaba muchos inconvenientes a los desarrolladores, motivo por el que se dividió el sistema en 2 partes. Una llamada fbsplash, que se encarga de dibujar el splash en si, y fbcondecor parche que provee la funcionalidad de mostrar una imagen de fondo en las consolas del sistema. Esta última característica es la que le da un valor agregado, y es la que me convenció de darme la molestia de parchar un kernel. La combinación fbcondecor+fbsplash es la que explicaré en este artículo.


Primer paso: Instalación de fbsplash y splash-utils Para archlinux hay que compilar fbsplash, este se encuentra en aur. por lo que la manera mas simple es utilizando la herramienta yaourt, la que mencioné en el artículo pasado. Así, basta con

yaourt -S fbsplash (leer la advertencia antes de ejecutar este comando)

o bien, es posible crear el paquete mediante el PKGBUILD desde aur, y luego instalarlo con pacman.

importante: al instalar el paquete initscripts-splash (instalado como dependencia) éste sobreescribe los archivos de configuración /etc/rc.conf, /etc/rc.local y /etc/inittab, creando respaldos en con extensión .pacsave. Se recomienda respaldar estos archivos antes, y luego complementar los nuevos archivos con las opciones anteriores.


Segundo paso: Configuración de fbsplash
Para especificar un tema, basta con editar el archivo /etc/fbsplash.conf y agregar
el nombre del tema en la opción THEMES. Para el tema que yo utilizo llamado jotape (sí, lo hice yo, y además soy muy original con los nombres.) Debo mencionar que mi tema posee la limitación de solo funcionar en la resolución 1024x768.

El paquete fbsplash trae un tema por defecto llamado darch. Es muy bonito, pero posee los logos antiguos de archlinux. Con mi tema (descomprimirlo con tar zxvf jotape.splash.tar.gz -C / ) , la línea quedaría así:

THEMES="jotape"

Luego de configurado el tema, es necesario especificar en el archivo rc.conf las opciones de SPLASH, y agregar al arreglo DAEMONS el servicio fbsplash, de preferencia al inicio. quedando así:


DAEMONS=(fbsplash ... )
SPLASH="fbsplash"

Hasta este punto ya es posible utilizar el splash, solo basta configurar grub para tal labor. Pero el eye-candy está en la consola con background, por lo que recomiendo realizar el paso 3.

Para lograr que la imagen de fondo sea visible desde que seleccionamos el sistema operativo en grub, además es necesario agregar el hook a initcpio. Para ello editamos el archivo /etc/mkinitcpio.conf y agregamos al inicio de los HOOKS v86d y fbsplash.

HOOKS="v86d fbsplash ..."

Al crear una imagen de initcpio, automáticamente se verificará el tema configurado y se agregará a la imagen, por ello es necesario tener en cuenta que si se hace algún cambio en los temas, será necesario volver a crear dicha imagen.


Tercer paso: Parchado y compilación del kernel
Antes era necesario bajar el PKGBUILD del kernel, agregar el parche, y configurar las opciones. Sin embargo había una alternativa fácil: un patchset llamado fallen, que incluía gensplash entre otros parches. Lamentablemente dicho paquete para archlinux dejó de existir cuando su desarrollador encontró novia, hecho que coincidió también con el retiro de con kolivas del desarrollo del famoso parche ck. Afortunadamente para los usuarios de archlinux, producto de una discusión en el bbs de archlinux, el usuario DonGiovanni decidió crear los scripts para fbsplash, y para la compilación de fbcondecor.

Además de los guiones, DonGiovanni creó un nuevo sabor del kernel para archlinux, y lo bautizó como "kernel26fbcondecor". Dicho paquete es relativamente nuevo, y consiste en un kernel vanilla más el parche fbcondecor, es necesario mencionar que faltan algunos paquetes de módulos, pero con un poco de trabajo verificando los PKGBUILD de los módulos del kernel oficial de archlinux, es posible crear paquetes para este nuevo sabor. De hecho, ante esa necesidad, y como uno de los primeros usuarios de este paquete, creé los PKGBUILD para los módulos que utilizo, desde entonces estoy manteniendo los paquetes para los drivers catalyst, de madwifi y de los módulos de virtualbox para el kernel26fbcondecor.

Luego de la larga explicación, para crear dicho paquete, optaré por el camino rápido, donde se requiere algo de paciencia, primero por la descarga de casi 50MB del kernel, y luego por lo que tarda en compilarse:

yaourt -S kernel26fbcondecor

Luego de instalado, para que funcione, es necesario especificar el nuevo kernel en grub, lo que se verá en el siguiente paso.


Cuarto 4: Configuración de grub
Para especificar que el framebuffer con una resolución de 1024x768, el tema jotape, y que inicie con el splash mostrando una barra de progreso sin mensajes, las línea a agregar al kernel sería lo marcado en negro. En el caso del kernel26fbcondecor, se deben agregar todas las líneas, cuidando que los parámetros root coincidan con los de la ubicación de su sistema.

# (0) Arch Linux
title Arch Linux kernel26fbcondecor 2.6.24

root (hd0,0)

kernel /boot/vmlinuz26fbcondecor root=/dev/sda1 ro video=uvesafb:1024x768-32@75,ywrap,mtrr:3 vga=792 splash=silent,theme:jotape quiet console=tty1

initrd /boot/kernel26fbcondecor.img

Una vez configurado, basta con reiniciar y comprobar los resultados. Al iniciar se debiera ver algo como la imagen de la izquierda, acompañada de una barra de progreso.
Al terminar la secuencia de booteo, la terminal pasará a tener el fondo especificado para el modo verbose.








Algunos datos para crear tus propios temas

Para crear los temas, lo primero que se debe conocer, es la diferencia entre los modos verbose y silent. El primero es el tradicional con mensajes de texto, pero con una bonita decoración de fondo, además de la posibilidad de dibujar texto en ciertas coordenadas. El segundo es la barra de progreso, con diversas posibilidades.

Los archivos de configuración deben estar en un subdirectorio en /etc/splash/ , el que no debe llevar espacios en blancos en su nombre. Las configuraciones deben estar dentro de dicho directorio, y deben llevar por nombre la resolución a utilizar con extensión cfg, como ejemplo, mi tema para 1024x768 lleva por nombre /etc/splash/jotape/1024x768.cfg


Para el modo verbose (solo fbcondecor), las opciones son las siguientes
pic=ruta
Identifica la ruta de la imagen (en formato PNG) que se utilizará de fondo.

tx=n, ty=n, tw=n, th=n
Las siguientes opciones identifican las coordenadas donde se posicionará el texto de la consola,
tx indica la coordenada horizontal, ty la coordenada vertical. (Por lo tanto (tx, ty) sería el vértice superior izquierdo)). tw indica el ancho a utilizar, y th la altura.
Estos valores son números enteros, y cada unidad representa un pixel.

Para el modo silent, las opciones son muy similares
silentpic=ruta
Identifica la ruta de la imagen (en formato PNG) que se utilizará de fondo.

text_x=n, text_y=n
Especifica las coordenadas donde mostrar los mensajes de estado, siendo x la coordenada horizontal, e y la vertical. Los valores representan pixeles.

box [flags] x0 y0 x1 y1 color1 [color2 color3 color4]
Dibuja una caja. Las coordenadas se especifican con los vértices superior-izquierdo (x0, y0), y con el inferior-derecho (x1, y1).
Los colores poseen el siguiente formato : #rrggbb, o bien #rrggbbaa. Cada color es una combinación de los valores en hexadecimal r, g, b (rojo, verde y azul), y la a representa el grado de transparencia, los cuales van desde 00 (translucido) hasta ff (color sólido).

Para las barras de progreso de utiliza la opción box. La configuración puede ser algo confusa, así que la explicaré con el siguiente ejemplo.

box silent inter 0 262 0 337 #22222c #191920 #383849 #2e2e3d
box silent 0 262 799 337 #22222c #191920 #383849 #2e2e3d

Donde la clave es entender que la barra movil es una caja que empieza y termina en la misma coordenada x, y que va acompañada con el flag inter. Dichas cajas son dibujadas en secuencia, por lo que es posible agregar mas cajas para crear efectos especiales. En el ejemplo, primero se especifica la animación, y luego se indica la caja que usará dicha animación, la cual avanzará en forma horizontal desde la coordenada 0 hasta la 799.

Existen muchas mas opciones, las cuales pueden ser encontradas en la documentación del formato. Existe la posibilidad de agregar gráficos y animaciones, lamentablemente en archlinux no logré conseguir que funcionan.

Ya con el nuevo tema creado, para agregar dicho tema, es necesario especificar el tema en el paso anterior, y crear la imagen con mkinicpio -p kernel26fbcondecor.


Enláces útiles:
repositorio de temas de fbsplash: Principalmente posee temas para gentoo, pero puede servir como base para crear temas propios.
jotape 2008.2: tema creado por mí para archlinux (sólo 1024x768)
Documentación acerca de los temas de fbsplash

martes, febrero 12, 2008

Un poco de eyecandy parte 1: grub gfxmenu

Desde hace mucho tiempo que tengo configurado mi sistema operativo con un poco de eye candy. Si bien es cierto que otras distribuciones (Opensuse) lo incluyen por defecto. Siempre es bueno poder hacer esto en tu distribución favorita. En todos los ejemplos, daré instrucciones para Archlinux, mi distribución favorita.

Programas y archivos requeridos
Primer paso: Parche y compilación
La primera acción lógica es descomprimir las fuentes de grub y aplicar sobre este los parches gfxmenu. Gracias a la simplicidad de archlinux, este paso se puede resumir en las instrucciones que listo a continuación. Alternativamente, usted puede utilizar este paquete el que fue compilado por mi. Eso si, advierto que dicho paquete no posee garantías, ademas de que fue compilado con optimizaciones para la plataforma pentium-m.

Los pasos para la compilación son los siguientes:

wget http://aur.archlinux.org/packages/grub-gfxmenu/grub-gfxmenu.tar.gz
tar zxvf grub-gfxmenu.tar.gz cd grub-gfxmenu makepkg
pacman -U grub-gfxmenu-0.97-1-i686.pkg.tar.gz (como root)

Una buena alternativa, es utilizar yaourt, programa que ademas de buscar paquetes en aur, tambien los descarga, compila e instala.
con este programa, basta indicar el comando:
yaourt -S grub-gfxmenu y responder las preguntas que realiza el programa.

Segundo paso: Instalacion del grub
Cuando grub lee el disco duro, ademas de buscar el archivo de configuración menu.lst, lee diversos archivos ubicados habitualmente en /boot/grub/. Cuando ejecutamos el comando grub-install, ademas de instalar grub en el mbr (o donde lo indiquemos), también copia archivos a este directorio.
asi, el comando a ejecutar es similar a los siguientes:


grub-install hd0 (para discos en general, método recomendado)
grub-install /dev/sda (para un disco en particular, en este caso un disco sata)

El argumento depende exclusivamente de la ubicación del grub. Es responsabilidad del lector

Tercer paso: Instalacion de un tema gfxmenu

Debe conseguir un tema. En kde-look se pueden encontrar algunos. El archivo que indique al inicio es un tema que acompañaba a opensuse a modo de easter egg. Se activaba en la epoca navideña de forma aleatoria. Me llamo la antencion, lo modifique, y lo agregue a mi computador. asi, es necesario descomprimir ese archivo en /boot.


tar zxvf gfxmenu.animado.archlinux.tgz -C /boot

comando que luego de ser ejecutado creará el archivo /boot/message.jp

Cuarto paso: Configuración de menu.lst

Para utilizar temas de gfxmenu es necesario editar el archivo /boot/grub/menu.lst, y agregar la siguiente linea idealmente en la sección superior del archivo.

gfxmenu /boot/message.jp


Al guardar, al reiniciar usted debiera ver un lindo menú de opciones animado.


Personalización de temas gfxmenu.
Primer creamos un directorio y entramos a este, mas adelante usted notara porque es importante realizar este paso.
ya en el directorio, editemos el archivo que proveo yo: message.jp, para ello es necesario copiar dicho archivo al directorio. y luego ejectuar el comando:

cpio -idv <>

asi, se crearan diversos archivos, los que usted debe modificar a gusto. No daré instrucciones de como hacerlo, pero usted puede jugar cambiando imágenes, y leyendo los diversos archivos de configuración, por ejemplo gfxboot.cfg.

Una vez terminada la edición, solo queda crear nuevamente la imagen.

rm message.jp
ls | cpio -ov > ruta/message.jp

luego, se reemplaza ese archivo, o bien puede utilizar otro nombre, recordando ajustar el archivo de configuración, tal como se mostró en el paso 4.

En la próxima oportunidad detallaré como tener una terminal con una imagen de fondo, así como el inicio de sistema con una barra de desplazamiento.

domingo, febrero 10, 2008

foxmarks

Como estudiante universitario es común que ocupe toda clase de computadores y sistemas operativos en diferentes lugares y momentos. Se da el caso que en muchos de esos equipos poseo un perfil estático en el que puedo guardar mis preferencias de las diversas aplicaciones, ademas de archivos personales. Además de usar los equipos para trabajar, es común tener que navegar por la web, tarea que hago con mi navegador favorito, mozilla firefox, el que ademas de ser excelente, tiene la gran ventaja de ser multiplataforma. Sin embargo, no todo es perfecto, existen funcionalidades que podrian mejorar. Un ejemplo me ocurria, cuando agregaba un bookmark en un computador. Resultaba muy molesto tener que guardar marcadores en una llave usb para transportarlos en cada pc que utilizaba. Bajo esta necesidad, investigando hace meses atrás di con foxmarks, una idea simple pero de esas del tipo "¿como no se me ocurrió esto a mi antes?

Foxmarks es una extensión que permite sincronizar los marcadores de firefox de forma automática, funciona guardando los marcadores en un sitio propio de ellos (foxmarks.com), y permite organizarlos via web en my.foxmarks.com. La extension sincroniza los marcadores, mezclandolos con los que tengamos instalados en el sistema. Ademas, verifica automaticamente si hay cambios cuando se inicia el navegador, y guarda los cambios al cerrar dicho programa. Ademas posee un asistente que permite seleccionar con cuidado la accion a realizar. Herramienta muy util si es que nos arrepentimos, o no deseamos combinar nuestros marcadores web con los del sistema donde instalamos la extension.

Lamentablemente esta extensión aun no esta disponible para el futuro firefox 3, pero en el wiki de su sitio oficial indican que estan trabajando en dicha versión. Esto ocurre debido a los grandes cambios del sistema de bookmarks que incorporara la nueva versión del navegador del panda rojo.

Hasta donde tengo entendido, la nueva versión de opera incorporará esta funcionalidad.

viernes, enero 11, 2008

Ultrastar: Mi nuevo vicio. Un placer culpable. Tortura para los vecinos

Me duele la garganta. El motivo no es porque me haya resfriado por dormir casi desnudo. Tampoco se debe a que haya estado gritando emocionado por la salida de KDE 4.0.0. Menos se trata de haber salido de parranda celebrando el retiro de bill gates. Ni siquiera es por haber gritado y saltado luego de conocer el poder de webmin. El motivo del dolor es debido a que he estado cantando, sí como lo lees c-a-n-t-a-n-d-o.

Hoy en la mañana intruseando por la red, leí acerca de este juego de karaoke. Me pareció interesante su concepto. Y me gustó su licencia GPL, así que procedí a bajarlo. Lamentablemente, sólo tiene una versión para windows, por lo que tuve que recurrir al pc de mi hermano, no porque yo no tenga windows, sino porque él tiene instalados unos lindos audífonos con micrófono incorporado. Una delicia para este juego.

Una ves instalado jugue a la canción de prueba, la que obviamente desconocía, y fui un fracaso. Pero no me rendí, así que descargue un par de canciones mas conocidas, e hice la prueba. Mi sorpresa fue muy grata al descubrir lo divertido que era cantar utilizando el programa, y reírte de como a veces desafinas.


La interfaz del programa es bastante simple. A veces me recuerda a la nintendo wii, debido a las formas y colores.

La selección de canciones permite filtros por artista, directorios e incluso el idioma de la canción. Dato muy importante para obtener buenos resultados.

¿como se juega?
Simple, con la ayuda de un microfono cantas.

La gracia es sincronizar los tonos de voz con los de la canción, a veces da lo mismo lo que pronuncies, lo primordial son los tonos. En la imagen de la derecha se puede ver la primera canción que jugue, que por cierto es una delicia cantarla. I believe in a thing called love de the darkness.



En el área central de la pantalla se registra tu sincronización, con un fondo blanco, o bien una fotografía asociada a la canción, y lo más notable, el video de ésta, pues el juego cuenta cuenta con soporte para vídeos, así se vuelve un poco mas dinámico el juego. En la fotografía se puede ver como daba pena cantando en japonés. Por cierto, las canciones en este idioma se me hicieron particularmente difíciles de entonar, en una canción de asian kung fu generation conseguí un score de apenas 660 puntos. Una miseria.



El no utilizar las manos te permite hacer otras cosas mientras cantas. Pero si dedicas todo tu tiempo, sientes la necesidad de usarlas. Mientras jugaba la canción de the darkness pensaba "Sería espectacular una combinación de este juego con frets on fire". (Agregar esa idea a los to do).




En resumen, es un juego muy adictivo, lo recomiendo para todo el que tenga un tiempo libre, buena voz, o en su defecto, vecinos con paciencia.
Hay muchos sitios donde conseguir canciones, daré sólo uno ultra star songs. y es decisión tuya que estilo o idioma elegir. En mi caso descargue una seleción muy surtida, desde temas de mis bandas favoritas, hasta clásicos "mamones" como take that, pasando por temas románticos en español (para que se anime a jugar mi hermana).

Como ya mencioné, este juego no es muy amigo del pingüino, sin embargo, existe una versión llamada ultrastar ng, la cual no probé, pero que pienso hacerlo a futuro.

martes, diciembre 25, 2007

KDETV

Hace mucho tiempo que no escribo en este lugar, la presión del fin de semestre, junto a lios mentales personales, si bien no me han tenido alejado de Internet, me han dejado sin ganas de crear contenidos. Principalmente me he dedicado a leer páginas, foros, y a descubrir poderosas herramientas web, como google reader. Además de esto, en los últimos días casi no he utilizado computadores debido a la falla del transformador de mi laptop, que a pesar de tener que esperar 12 días por un cambio, gracias al cielo estaba bajo garantía.

Al no tener computador, no me queda otra que mendigar un equipo a algún integrante de mi familia cada cierto tiempo. Por suerte, en el computador de mi padre reside una copia de archlinux, por lo que no he estado completamente alejado de linux, incluso he jugado un poco con compiz-fusion. Dicho computador, además de poseer una tarjeta de video geforce, tiene una tarjeta de televisión. Me causó curiosidad ver que tal funcionaba, y luego de un lspci, realicé una búsqueda rápida en pacman y google. Fue así como di con KDETV.

KDETV es una aplicación para ver televisión utilizando tarjetas de video compatibles con Xv (Xvideo) o video4linux. Al leer esta descripción me asusté, y pensé que me tomaría un par de horas hacerlo funcionar, puesto que desconozco como funcionan estas 2 tecnologías, y sólo sé que hacen, sobre todo de Xvideo, el cual me ha causado un par de complicaciones para habilitarlo con mi tarjeta ati al intentar ver videos en X, debido a que no se activan por defecto. Sin embargo, para ver televisión bastó realizar un pacman -S kdetv, seguido de la apertura del programa. Así de simple, luego de escanear los canales, porque no trae por defecto las estaciones que transmiten en santiago de chile, ya estaba viendo televisión abierta. Y las porquería que agrega el software de windows.

El programa permite la visualización en 3 modos de video, las que incluyen un modo ventana simple, una ventana con el listado de canales, y el infaltable modo de pantalla completa. Además puede funcionar sobre compiz-fusion, aunque con un par de "artifacts" cada cierto tiempo. Finalmente, puedo comentar que su interfaz es bastante simple. incluidas las opciones de configuración.

Para las personas que dicen que para hacer funcionar Hardware en linux es necesario leer libros y libros de documentación, recompilar kernels, compilar módulos, etc; Esto es un ejemplo de que la cosa ya no es tan así. Me funcionó a la primera, incluso sin saber que módulo hace la "magia". ¿tuve suerte? no lo sé. Pero cuando compré la tarjeta, nunca pregunté acerca del soporte de linux, ni me interesaba. Fue comparada para un pc que trabaja principalmente en windows, y que si tiene el sistema operativo del pingüino es debido a que antes era mi computador, y no quise borrar la partición. A pesar de ser una distribución no "automática" me funcionó a la primera. Bien por linux, udev y hwdetect.

En los próximos días, cuando tenga oportunidad, experimentaré como sintonizar la radio FM. En este momento no tengo información acerca de un programa que realice dicha función, pero seguramente con un par de minutos de google daré con algún software. Así que tendré algo de entretención mientas no vuelve a tener funcionando el notebook. Luego de eso dudo que juegue con dicho tema, pues quiero aprender a configurar correctamente freebsd, el cual tengo corriendo en una maquina virtual.

edit: La televisión que sintonicé con KDETV es análoga en baja definición. En Chile aún no se escoge una norma para la televisión digital. Gracias a david por hacerme notar, recomiendo leer su comentario para mas información.