December 2006

MiniScript service

Aquí tengo un pequeño scrip (sí, en perl) para ahorrarse escribir todo el /etc/init.d/nombreservicio cuando queremos iniciar o apagar un servicio del sistema. Así, para , por ejemplo, parar el servidor apache, no tendremos que hacer /etc/init.d/apache2 stop, sino que haremos service apache2 stop.
Como se ve en el código, siemplemente el primer parámetro se concatena a la ruta y el segundo pasa al script del init.d directamente, siempre que no sea –status-all, que es la opción que en el service original de red hat muestra el estado de todos los servicios del sistema.
En éste script no está puesto porque hace que se cuelgue algún servicio no determinado.
[perl]
#!/usr/bin/perl -w
#
# Wrapper para usar las funciones de /etc/init.d/ con la sintáxis de red hat
# Ruymán Reyes Castro versión 1.0
#
# Ejemplo
# start: service tutu start
# stop : service tutu stop
# restart: service tutu restart

use strict;

my $name = $ARGV[0] or die (“Parámetros insuficientes\n”);
# Cambiarlo por algo más decente!!
if ( $name =~ “–status-all” ) {
# Listamos los servicios disponibles
# No implementado! Cuelga cuando llama
# al status de algunos servicios
} else {
my $line = “/etc/init.d/$name”;
# Obtenemos la acción o ejecutamos la línea
my $action = $ARGV[1] or exec $line;
# Comprueba si eres superusuario
($ENV{“USER”} eq “root”) or die(‘Debes ser superusuario!’);
# Comprobamos si el servicio existe
my @services = glob(“/etc/init.d/*”);
(grep m/$name/, @services) or die (‘El servicio no se encuentra!’);
# Creamos la línea de acción
my @line = (“$line $action”);
# y la ejecutamos
exec @line;
}
[/perl]

Uncategorized

Comments (0)

Permalink

Lista de wikis interesantes

Aquí pongo una recopilación de wikis de gentoo que son imprescindibles una vez acabada la instalación:

Unicode, para tener tildes y demás

Fuentes “bonitas” (sin bordes rugosos, etc) para tener unas fuentes decentes

Detalles del son vaio para mi portaca nuevo (y resto de portacas con acpi)

Hardware Sensors sensores de temperatura, hardware, etc

Uncategorized

Comments (1)

Permalink

Violación de segmento en Rhythmbox

El rhythmbox se colgaba cargando mi colección de música (copiada bastardamente de la de Tankian).
Ejecutando el rhythmbox con la opción de depuración (rhythmbox -d), se ve que se cuelga leyendo el primer archivo m4a.
Quitando los archivos m4a del directorio de la colección, se carga el resto de archivos.
Al parecer hay un bug del rhythmbox cuando carga ese tipo de archivos, aunque no está reportado en el bugzilla de gentoo. Si me vuelven a pasar un archivo con .m4a, lo reporto al bugzilla (Porque mi solución fue borrarlos! xD).

Uncategorized

Comments (0)

Permalink

dhcpd en HyperWRT

Para aquellos que no lo sepan, la estructura de la red de mi casa es algo “complicada”. Hay tres subredes, una para mi esquina friki, otra para el wifi y otra que es una DMZ.

La subred del wifi y la de la esquina friki están detrás del servidor encrucijada, que es el que provee de acceso a internet en ambas redes, con sus cortafuegos, dns y demás. En el caso de la red wifi, hay un punto de acceso que es el que asigna las ips a lo que se conecte por wifi (actualmente un pc fijo de la planta alta y n portátiles). El AP es un linksys parcheado con el HyperWRT para poder aumentar la potencia de la señal a más del 50% y que llegue bien a las otras plantas.

El problema es que cuando se conectan los pcs por wifi, el ap les sirve la información de dhcpd, que les asigna la ip del rango correcto, pero les da como puerta de enlace la dirección del ap, que no tiene conexión por si mismo a internet, ya que es Encrucijada el que se la da. En realidad, la puerta de enlace de los pcs que se conectan por el wifi debe de ser la dirección de encrucijada, y no la del AP. Cuando intento cambiarlo usando las opciones de la interfaz web, veo que no existe opción para cambiar eso.

La solución fue lanzar el demonio de telnet del HyperWRT y entrar en la shell del ap:

telnet 192.168.1.1

Una vez allí, localicé el archivo udhcpd.conf, que contiene la configuración del servidor de dhcpd que usa el ap

# cd /tmp
Como en el busybox (el linux que tiene el ap) no hay editor, hay que modificar los archivos a pelo con el sed
# sed 's/option router 192\.168\.1\.1/ \
option router 192.168.1.100/' udhcpd.conf > udhcpd2.conf

Ahora hay que reiniciar el servidor de dhcpd cargando el nuevo archivo de configuración
# ps au
# kill $pidDelUdhcpd
# udhcpd udhcpd2.conf &

Cuidado, porque estos cambios se perderán cuando se reinicie el ap, todavía tengo que ver como hacerlos permanentes, tal vez editando uno de los scripts de arranque, pero por ahora me vale como workaround.

Antes de cerrar, no olvidar parar el demonio de telnet desde la propia interfaz web, ¡porque si no cualquiera podría entrar a tocar el router!.

Uncategorized

Comments (0)

Permalink

Sonido en Rhythmbox

Llevo un par de días con problemas de sonido usando el rhythmbox (y también con otras aplicaciones de gnome). El sonido se escucha distorsionado algunas veces y otras dice que no se encuentra el plugin.

Tras un par de busquedas por las wiki de gentoo e inspirado por Tankian, encontré que el problema está en dos partes:

Primero, un poco de teoría. Los elementos multimedia en gnome se han tratado de centralizar en un sólo punto de configuración, de forma que los diferentes programas que utilizan gnome no tengan que preocuparse por los drivers o plugins de sonido, sino que tengan una interfaz sencilla para interactuar ellos. Esa interfaz es gstreamer, y se configura utilizando el programa gstreamer-properties. Cada usuario tiene su propia configuración de gstreamer, que se guarda junto con el resto de configuración de gnome.

Ahora, el problema. Gnome 2.14 y superiores utilizan la versión 0.10 de gstreamer. Pero la versión de rhythmbox que está en el portage a fecha del post , la 0.8.8 , espera la versión 0.8 de gstreamer. La configuración de las dos versiones de gstreamer está en sitios distintos, pero cuando lanzamos gstreamer-properties, la versión que se configura es la 0.10, no la 0.8 !. Así que no podemos ajustar la salida de audio de esa versión, que por defecto está usando el driver de oss. Si instalamos la versión más reciente del rhythmbox, el sonido se escucha, pero se escucha mal, como distorsionado.
¿Como arreglarlo?
Error de salida incorrecta: Editar la configuración del gstreamer-0.8. Para ello, utilizamos gconf-editor, el editor de configuración de gnome. Vamos a la clave System, luego a gstreamer y veremos dos valores, que son las versiones de gstreamer instaladas: 0.8 y 0.10. Entramos en la 0.8 y en la clave default, encontramos los valores audiosink y audiosrc. Audiosink es el plugin que se utilizará para mezclar la salida, y audiosrc es el plugin para la salida. En el primero, editamos el valor y ponemos “autoaudiosink”, y en el segundo ponemos “alsasrc”, para que utilice alsa como salida. Ya podemos cerramos el editor de configuración.

Sonido Distorsionado: Es un problema con el mezclador de alsa, no con el gnome. Hay que editar un archivo en el home que se llame “.asoundrc” que contiene las preferencias de alsa. En él, poner:

“defaults.pcm.dmix_max_periods -1″

Con eso debería de funcionar el sonido correctamente, por lo menos a mi me funciona ;).

Uncategorized

Comments (4)

Permalink

¡Hola, mundo!

Bueno, como primer post de este blog, seguiré la moda actual en los blog de éste tipo, y presentaré mis máquinas. No las del trabajo, sino las de mi casa ;).

No quiero entrar en detalles sobre ellas para no alargar el post de introducción, pero las fotos en flickr están anotadas con alguna información básica para ir rompiendo el hielo ;).

Aquí está la parte de pcs “cliente”

La esquina Friki

Y aquí la infraestructura de “servidor”

El Armario Servidor

Dedicaré algun post cuando tenga tiempo al servidor, porque realmente tiene tela.

Espero que éste blog sea de utilidad o al menos como curiosidad para aquellos que se decidan a seguirlo. Para mi lo será, ya que así no se me olvidarán las cosas que hago ;).

Uncategorized

Comments (2)

Permalink