Archive for Diciembre, 2009

Configurar apcupsd para apagar el computador inmediatamente

Tenía tiempo sin usar un UPS APC y sin configurar apcupsd. La primera sorpresa que me llevo es que la función de apagar el computador no funciona como debería, es decir, no apaga el computador. Para ser exactos, cierra todos los procesos y deja el sistema detenido para apagarlo pero no lo apaga, sino que deja que el UPS lo apague al descargarse la batería. Esta función está más orientada a entornos de servidor, donde la opción de encender el computador al llegar la electricidad está activa como muestra la siguiente imagen:

DSC00262

PWRON After PWR-Fail    [On]

Pero en mi caso no deseo que ocurra eso, sino que se apague el computador sin consumir toda la energía del UPS para poder mantener mi router y mi modem de internet encendidos y poder navegar desde mi laptop.

Para deshabilitar esta función tal cual como está definida solo debemos editar el script /etc/init.d/halt.sh y buscar las líneas de la función que son:

# This is a function because its used twice below
ups_kill_power() {
local UPS_CTL UPS_POWERDOWN
if [[ -f /etc/killpower ]] ; then
UPS_CTL=/sbin/upsdrvctl
UPS_POWERDOWN=”${UPS_CTL} shutdown”
elif [[ -f /etc/apcupsd/powerfail ]] ; then
UPS_CTL=/etc/apcupsd/apccontrol
UPS_POWERDOWN=”${UPS_CTL} killpower”
else
return 0
fi
if [[ -x ${UPS_CTL} ]] ; then
ewarn “Signalling ups driver(s) to kill the load!”
${UPS_POWERDOWN}
ewarn “Halt system and wait for the UPS to kill our power”
/sbin/halt -id
while [ 1 ]; do sleep 60; done
fi
}

Y editar la línea que dice /sbin/halt -id agregándole una “p” al final, quedaría así:

/sbin/halt -idp

O la otra forma que fue la que usé, comentar todas las líneas o eliminarlas en su defecto (para comentar una línea ponemos un # en frente de cada línea a comentar), recordando comentar o eliminar la línea que está mucho más abajo para no obtener errores al apagar el sistema que dice:

ups_kill_power

Dato extra: Gapcmon

Si desean tener un programa gráfico para obtener algunos datos del UPS pueden instalar gapcmon. Por defecto no se encuentra en el tree de portage de Gentoo, así que bajan el source desde su página principal que es esta http://gapcmon.sourceforge.net/ y ejecutan los siguientes comandos:

cp gapcmon-0.8.9.tar.bz2 /usr/src

cd /usr/src

tar -xjf gapcmon-0.8.9.tar.bz2

cd gapcmon-0.8.9

./configure –prefix=/usr (en frente de prefix va doble guión)

make && make install

gapcmon

Recuerda que la versión del programa que en mi caso es la 0.8.9 puede cambiar. Con eso tendremos instalado gapcmon, solo debemos tener iniciado el demonio de apcupsd para que funcione.

No instalé ups-monitor porque me pedía la USE +gnome y no pretendo instalar gnome ;).

Reparando startx en Gentoo para iniciar el gestor de ventanas

Luego de una actualización del sistema, al parecer de xinit por alguna razón al ejecutar startx no iniciaba mi gestor de ventanas (en mi caso Xfce4) sino que simplemente iniciaba Xsession. A pesar de que en el /etc/rc.conf estaba todo bien, debía ejecutar startxfce4 para poder iniciar Xfce.

Hoy actualizando el sistema me di cuenta de un mensaje de xinit que dice:

* If you use startx to start X instead of a login manager like gdm/kdm,
* you can set the XSESSION variable to anything in /etc/X11/Sessions/ or
* any executable. When you run startx, it will run this as the login session.
* You can set this in a file in /etc/env.d/ for the entire system,
* or set it per-user in ~/.bash_profile (or similar for other shells).
* Here’s an example of setting it for the whole system:
* echo XSESSION=”Gnome” > /etc/env.d/90xsession
* env-update && source /etc/profile

Así pues, la solución al problema es bien sencilla, solo ejecutamos estos comandos como root:

echo XSESSION=\”Windows_manager\” > /etc/env.d/90xsession”
env-update && source /etc/profile

O también:

nano -w /etc/env.d/90xsession

Y al archivo le agregamos el siguiente contenido:

XSESSION=”Windows_manager”

Ejecutamos el siguiente comando después de guardar el archivo:

env-update && source /etc/profile

Donde Windows_manager es el nombre del  gestor de ventanas que usemos que pueden ser algunos como estos: Gnome, Kde-<version>, Xfce4

Con eso solucionamos el problema :)

Salu2