Bootchart: Graficando el proceso de arranque de GNU/Linux
Posted by vostorga - 10/10/08 at 04:10:09 pmRecientemente me encontré con una herramienta muy curiosa que muestra de forma gráfica el proceso de arranque de un GNU/Linux denominada Bootchart, la cual realiza su trabajo recolectando información de los procesos durante el arranque y renderizando el resultado a un archivo png, svg (Scalable Vector Graphics) o a un eps (PostScript).
La intención de bootchart es mostrar cuando arrancan los procesos, cuánto tiempo de CPU utilizan, utilización de disco, en otras palabras, una imagen que muestre lo que sucede durante el proceso de arranque y ayude a la posterior depuración/optimización del mismo.
Instalando…
La instalación en Gentoo es sencilla
Desenmascaramos el paquete (en mi caso tengo el keyword amd64, para otros será x86)
# echo “app-benchmarks/bootchart ~amd64” >> /etc/portage/package.keywords
Agregamos la use flaga java para poder generar archivos png
# echo “app-benchmarks/bootchart java” >> /etc/portage/package.use
Instalamos
# emerge app-benchmarks/bootchart
Configurando bootchart
Es necesario agregar init=/sbin/bootchartd al final de la línea del kernel correspondiente, dentro del archivo /boot/grub/menu.lst por ejemplo:
kernel /boot/kernel-2.6.25-gentoo-r7-vostorga-0.33 init=/sbin/bootchartd
Es necesario editar el archivo /etc/conf.d/rc y cambiar
RC_USE_BOOTCHART="yes"
El archivo de configuración /etc/bootchartd.conf está muy bien documentado, pero igualmente las opciones siguientes son posiblemente en las que estaremos más interesados:
#Esta opción nos permite utilizar BSD Accounting el cual nos permite que la visualización de procesos sea más exacta, pero para activarlo necesitamos que la opción CONFIG_BSD_PROCESS_ACCT_V3 (General setup-> BSD Process Accounting-> BSD Process Accounting version 3 file format) esté activada en el Kernel , igualmente bootchart funciona si la dejamos como “no”
PROCESS_ACCOUNTING=”yes”
#Localización del archivo comprimido donde estarán los logs de Bootchart
BOOTLOG_DEST=/var/log/bootchart.tgz
#Determina si se realizará automáticamente el gráfico una vez termine el proceso de arranque
AUTO_RENDER=”yes”
#Determina el formato del gráfico, las opciones disponibles son png, svg y eps
AUTO_RENDER_FORMAT=”png”
#Directorio donde se guardarán los gráficos
AUTO_RENDER_DIR=”/var/log”
Y la prueba……la gráfica
Por ultimo, reiniciamos y obtenemos algo como lo siguiente:
…..47 segundos en mi caso, cuáles son sus tiempos?
PD: No reinicio muchas veces ya que suspendo, pero es divertido debugguear el arrance
PD2: Luego daremos un vistazo al baselayout2+openrc que seguro disminuye el arranque en Gentoo GNU/Linux
Sitio de software libre para Solaris
Posted by vostorga - 30/09/08 at 11:09:07 amVagando por la red me he encontrado por el sitio http://sunfreeware.com el cual incluye un amplio repertorio para las siguientes combinaciones en Solaris :
- Sparc / Solaris 2.5 , 2.6 , 7, 8, 9, 10
- x86 / Solaris 2.5, 2.6, 7, 8, 9, 10
Lo interesante es que explica como instalar cada software, además de describir algunos “trucos” y en algunos casos, las limitaciones del software en Solaris
Así que no hay excusas para probar software libre en los Unix!
Curioso bug en avahi 0.6.22
Posted by vostorga - 25/09/08 at 11:09:42 amUna brevísima introducción a avahi
Avahi es una implementación del concepto “exploración de la red para descubrir servicios”, en otras palabras del estándar Zeroconf , utilizado por ejemplo para descubrir impresoras de red, compartidos de win2, servidores ftp, hosts, mas que todo en LANs.
Avahi no es exclusivo de GNU/Linux, sino que hay implementaciones en otros sistemas operativos, por ejemplo el famoso Bonjour de OS X.
El bug
Recientemente revisando rutinariamente los logs me fijé en lo siguiente:
…
Sep 24 08:38:57 phoenix ath_pci: wifi0: Atheros 5424/2424: mem=0xf2000000, irq=16
Sep 24 14:38:57 phoenix avahi-daemon[11671]: Joining mDNS multicast group on interface wlan0.IPv4 with address 192.168.11.70.
Sep 24 14:38:57 phoenix avahi-daemon[11671]: New relevant interface wlan0.IPv4 for mDNS.
Sep 24 14:38:57 phoenix avahi-daemon[11671]: Registering new address record for 192.168.11.70 on wlan0.IPv4.
Sep 24 08:41:48 phoenix acpid: received event “ac_adapter ACAD 00000080 00000001”
Sep 24 08:41:48 phoenix acpid: notifying client 6097[106:1009]
…
Como se puede notar la fecha reportada en el syslog en las líneas correspondientes a avahi se muestran incorrectamente e investigando esto se debe a que avahi corre en un chroot y no maneja bien la configuración de zonas horarias; la solución para que se muestre correctamente es copiar el archivo tz en el directorio /etc/avahi
# mkdir /etc/avahi/etc
#cp /etc/localtime /etc/avahi/etc/
Reiniciamos el servicio y listo.
Hay un ticket sobre lo anterior en http://avahi.org/ticket/221
Migrando un protector de pantalla de Xscreensaver hacia gnome-screensaver
Posted by vostorga - 08/09/08 at 02:09:59 pmPersonalmente prefiero gnome y ocupo su gestor de protectores de pantalla, por lo que no tengo instalado xscreensaver.
Pero sucede que quiero probar un protector de pantalla y tiene archivos .xml que son característicos de xscreensaver, he aquí los pasos para poder gestionar el protector de pantalla a través de gnome:
- Creamos un directorio temporal, en mi caso /tmp/bleh y luego nos ubicamos ahí
# mkdir /tmp/bleh
# cd /tmp/bleh
- Descomprimo el screen saver en cuestión (cornellgolf en mi caso)
# unzip /home/vostorga/cornell-bin.zip
inflating: usr/lib/xscreensaver/cornellgolf
inflating: usr/share/xscreensaver/config/cornellbox.xml
- Copiamos el script migrate-xscreensaver-config.bz2 y el archivo xscreensaver-config.xsl.bz2 . En mi caso la localización de esos archivos es /usr/share/doc/gnome-screensaver-2.22.2 pero puede variar de acuerdo a la Distribución Linux y versión de Gnome que se utilice, además notese que los tengo con extensión bz2 y es necesario descomprimirlos
# cp /usr/share/doc/gnome-screensaver-2.22.2/migrate-xscreensaver-config.sh.bz2 .
# cp /usr/share/doc/gnome-screensaver-2.22.2/xscreensaver-config.xsl.bz2 .
# bunzip2 *bz2
- Se ejecuta el script que convierte los .xml a .desktop que es el formato que entiende Gnome
#chmod +x migrate-xscreensaver-config.sh
# ./migrate-xscreensaver-config.sh *xml
Creating: cornellgolf.desktop
- Se mueve el archivo creado por el script a la localización de configuraciones de protector de pantalla de gnome
# mv *desktop /usr/share/applications/screensavers/
- Movemos el ejecutable a un directorio especifico de gnome
# mv cornellgolf /usr/libexec/gnome-screensaver/
- Procedemos a verificar que el recién configurado protector de pantalla se muestre en las preferencias de Gnome, eso se puede utilizando el menú Sistema=>Preferencias=>Protector de pantalla o el comando gnome-screensaver-preferences
Listo, podemos migrar cuantos protectores de xscreensaver queramos.
Volumen bajo en mplayer con audio ac3
Posted by vostorga - 22/08/08 at 11:08:17 amRecientemente me sucedió que al reproducir un archivo de video utilizando mplayer el sonido era notablemente bajo, aún con Master y PCM a todo volumen, mientras que con otros archivos (ogg, ogm) el sonido era “normal”.
Al visualizar el log del mplayer (las líneas correspondientes a Opening audio decoder) mostraba lo siguiente:
Opening audio decoder: [liba52] AC3 decoding with liba52
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
Entonces mirando dentro del man de mplayer encontré opciones para el filtro de audio que ayudan a incrementar el volumen sobre “los límites normales” de mplayer. El comando queda así :
mplayer archivo.mkv -af volume=10,channels=2
Basicamente le digo al filtro de audio que la salida sea a 10 decibeles para todos los canales y que ocupe solamente 2 canales (estereo) , con lo que el volumen del video aumentó considerablemente permitiendome oirlo bien.
Error al intentar eliminar muchos archivos en un directorio
Posted by vostorga - 11/08/08 at 06:08:08 pmA muchos de nosotros nos habrá pasado que al intentar eliminar una gran cantidad de archivos de un directorio nos encontremos con el siguiente mensaje:
$ rm *
bash: /usr/bin/rm: The parameter or environment lists are too long
El mensaje anterior indica que el kernel de Linux tiene una cantidad fija de memoria disponible para el ambiente de ejecución del programa y la lista de argumentos, la cual no es suficiente para realizar la operación solicitada.
En mi caso el * es sustituido por el shell por la lista completa de archivos que deseo eliminar, de tal manera que bash me devuelve el error al sobrepasar el tamaño máximo de buffer en el sistema operativo. Para conocer el tamaño del buffer basta ejecutar
$ getconf ARG_MAX 131072
El tamaño de buffer varia de sistema operativo, por ejemplo AIX provee 24kb y HP UX 2megas
Para poder ejecutar el comando (eliminar, mover, listar, etc), nos podemos auxiliar de las “pipes” utilizando xargs o exec
find . -exec rm {} \;
ls | xargs rm
Saludos.
Cambiar el navegador por defecto en Gnome
Posted by vostorga - 31/07/08 at 06:07:04 pmEn Gnome recién instalado, el navegador por defecto suele ser Epiphany, lo cual no es conveniente para muchos de nosotros, pero Gnome ofrece una forma rápida para cambiar el navegador por defecto:
Ejecutar el siguiente comando en una terminal:
$ gnome-default-applications-properties
O alternativamente irnos al menú Sistema=>Preferencias=>Aplicaciones Preferidas
Lo cual nos muestra la siguiente ventana:
Nos dirigimos a la ficha Internet y podremos seleccionar el navegador de una lista desplegable, que en mi caso es Mozilla Firefox, en caso que no aparezca en la lista podremos especificar el comando que lanza nuestro navegador preferido que en el caso de firefox es: /usr/lib/firefox/firefox “%s”
Además podremos modificar las aplicaciones predeterminadas para lectura de correo, multimedia, terminal entre otros.
Configurando Duplex en una interfaz de Red en un GNU/Linux
Posted by vostorga - 21/07/08 at 01:07:03 pmEl Duplex es algo cotidiano en nuestras vidas si utilizamos dispositivos que se comunican unos con otros (una computadora, teléfonos celulares, entre otros) y es un parámetro muy importante si utilizamos una interfaz ethernet para conectarnos a una red local o a Internet.
Las interfaces ethernet básicamente soportan dos variaciones de duplex:
- Half duplex : Indica que se puede comunicar desde la interfaz local hacia otra interfaz y viceversa, pero enviando datos en una dirección a la vez.
- Full duplex : Indica que se puede comunicar en ambos sentidos al mismo tiempo
Las interfaces pueden operar de ambas maneras para poder dar soporte a otros dispositivos viejos y/o situaciones extremas, lo normal en la actualidad es que una interfaz ethernet funcione en full duplex todo el tiempo, de lo contrario puede indicar un problema en la configuración de red.
El comando para verificar el estatus del duplex es el siguiente (HD Half Duplex, FD Full Duplex):
# mii-tool
eth0: negotiated 100baseTx-FD, link ok
Para una salida más detallada:
# mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:08:18, model 54 rev 6
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
Si se nos hace necesario configurar el duplex de una interfaz “manualmente” , por ejemplo para establecer full duplex en la interfaz eth0 a 100 Megabit:
# mii-tool -F 100baseTx-FD eth0
Lo normal es que se realice un autonegociado y el duplex se establezca automáticamente.
Frets On Fire : un clon de GuitarHero para GNU/Linux
Posted by vostorga - 12/07/08 at 12:07:16 pmFrets on Fire es un adictivo juego en el cual utilizando el teclado y visualizando las notas en pantalla se pueden tocar todo tipo de canciones, y se podría denominar un clon del famoso juego para PlayStation/Xbox Guitar Hero.
La dinámica del juego es sencilla, se toma el teclado tal como en la figura a la derecha (los lentes son opcionales xD) y se espera las notas que aparecerán en pantalla. En el juego se necesitan 5 teclas para tocar las notas (normalmente las teclas F1 a F5 llamadas frets) y la tecla Enter para hacer que suene la nota; así que dependiendo de la dificultad de la canción se pueden utilizar varias notas a diferentes velocidades, lo que da la sensación de estar tocando una canción y sacar el rockstar que todos llevamos dentro.
El juego está desarrollado en Python y necesita las librerías pyopengl, pyamanith, amanith, pyrex y por supuesto contar con aceleración de video. Este juego es muy sensible a las versiones de los paquetes de los cuales depende, presento las versiones con las cuales me ha funcionado:
- pyopengl-2.0.1.09-r1
- python-2.4.4-r13
- PyAmanith-0.3.34
- amanith-0.3-r1
- pyrex-0.9.4.1
- fretsonfire-1.2.451-r1
Al juego se le pueden instalar mods, las ventajas de los mods son las siguientes:
- Permiten cambiar la apariencia/sonidos del juego
- Se pueden realizar partidas multiplayer/varios jugadores
- Utilizar la guitarra de Guitar Hero
- Mejoras y cambios al juego
En lo personal le he instalado el GH Mod el cual luce de la siguiente manera:
Menú principal y menú de elección de canciones
Capturas del juego en accion y score
Frets on fire se puede personalizar con idioma, resolución de pantalla, jugarlo o no pantalla completa, nivel de calidad de gráficos, nivel de calidad de música, entre otros.
El sitio del proyecto es http://fretsonfire.sourceforge.net , para obtener información sobre mods, obtener canciones, crear canciones y demás información del juego recomiendo mirar http://fretsonfire.wikidot.com
A darle uso al teclado se ha dicho!!
Problema al conectar cable crossover entre AIX/Linux
Posted by vostorga - 23/06/08 at 02:06:49 pmRecientemente me vi en la necesidad de conectar con un cable crossover de una máquina con Linux a un AIX 5.1, para hacer una transferencia de archivos, todo fue bien hasta que realicé pruebas de transferencias utilizando diferentes protocolos (ftp, ssh, http, nfs, entre otros) y noté que la velocidad era muy pobre, en ambos sentidos (de AIX a Linux y viceversa).
Una solución temporal fue conectar ambas máquinas a un switch y la velocidad de transferencia fue tal como se esperaba, lo cual me genera la interrogante de cual será el detalle que quita compatibilidad a la conexión directa entre ambas máquinas.
A alguien le ha sucedido este problema?
Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds.
Valid XHTML and CSS.