La típica Compaq Presario problemática

Recien, mirando un poco las estadísticas del sistema que uso para llevar un registro de mis «pacientes» me encontré con estas escalofriantes estadísticas:

Desde que empecé a llevar un registro, han pasado por mis manos 221 notebooks de las marcas Compaq Presario y HP Pavillion.

De esas 221, un total de 117 Compaq Presario son de la serie V3000, F500 y F700, 35 son HP Pavillion de la serie DV4 a DV9.

Eso hace un total de 152 laptops, todas exactamente con el mismo problema: El GPU desoldado.

El combo explosivo es (casi) siempre el mismo: Procesador AMD / GPU Nvidia.

El resultado final: Deja de funcionar la placa de red inalámbrica (no se ve un adaptador wireless en el administrador de dispositivos, por ende tampoco en conexiones de red) o directamente en el peor de los casos deja de hacer contacto el GPU con la Motherboard, en este caso la máquina enciende pero no se ve nada en la pantalla, todos los leds de estado se quedan encendidos.

Lo que viene a cuento: En casi todos estos casos los equipos se proveían de fábrica con windows (notesé las minúsculas) vista y el usuario hizo downgrade a windows XP. Atando cabos, veo que en únicamente dos oportunidades me tocó un caso de estos –de un gpu desoldado– y Windows Vista.

Por otro lado, y dejando estos dos casos puntuales al margen, todas las portátiles que me haya encontrado con el «combo explosivo» internamente y que todavía están funcionando como si nada, corren la instalación de windows Vista original que venía pre-instalada.

De lo cual surgen un par hipótesis:

  • Windows vista administra ¿mejor? los recursos, el GPU trabaja menos forzado, la temperatura interior desciende, nunca se produce la falla.
  • Compaq / HP conocen esta limitación y para no tener que descartar un lote gigantesco de equipos propensos a fallar a corto plazo le instalan un parche, driver modificado o similar que le baja la frecuencia de trabajo al GPU y así evitan este inconveniente. Para no meterse las notebooks en el culo, se las venden a abuelitos del tercer mundo en 48 cuotas sin interés por medio del banco de turno.

¿Algún otro técnico tercermundista que haya llegado a conclusiones similares?

No me quejo por que me han dado muy bien de comer últimamente pero ¿Serán tan hijos de puta?

O de como virtualizar un windows en un servidor linux que no tiene monitor, usando VirtualBox y la consola de comandos.

Ya va como la cuarta o quinta vez que me encuentro en la misma situación:

  • Necesito un windows server corriendo en una máquina virtual.
  • No tengo ni monitor ni teclado ni mouse en el servidor que hará de anfitrión (host).
  • No recuerdo la sintaxis ni poniendo mi mejor esfuerzo.
  • Termino recurriendo a san Google que todo lo sabe.

Lo que sigue, es un «ayuda-memoria» para no tener que Googlear la próxima vez, esperando que le sea de utilidad a alguien mas y sin entrar en mucho detalle por que los comandos son autoexplicativos si se los piensa un poco:

VBoxManage createvm -name windows -register
VBoxManage modifyvm windows -memory «256MB» -acpi on -boot1 dvd -nic1 nat
VBoxManage createvdi -filename windows -size 10000 -register
VBoxManage modifyvm windows -hda windows.vdi
VBoxManage registerimage dvd /basurero/cosas_que_mejor_perder_que_encontrar/windows.iso
VBoxManage modifyvm windows -dvd /basurero/cosas_que_mejor_perder_que_encontrar/windows.iso

Encendiendo la máquina virtual con terminal server escuchando en el puerto 7777:

VBoxHeadless -startvm windows -p 7777

Mapeando/reenviando el puerto 3389 (port forwarding) desde la máquina host hasta la máquina guest para poder acceder por terminal server desde un PC remoto:

VBoxManage setextradata windows “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ts/HostPort” 3389

VBoxManage setextradata windows “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ts/GuestPort” 3389

VBoxManage setextradata windows “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ts/Protocol” TCP

¡Pero si es coser y cantar!

¡Un aplauso para los de virtualbox, que no lo podían haber hecho mas facil de memorizar, che!

Viene de la parte 1: [HowTo] Recibir logs remotos usando Syslog

Logo de phpsyslogngUsando phpsyslogng se pueden controlar los logs de cualquier PC que corra Linux y Syslog-NG de forma mucho mas visual e intuitiva.

Phpsyslogng provee  además de interesantes gráficos estadísticos y un potente sistema de filtrado por host, aplicación, prioridad y facility.

Ejemplo de gráfico de phpsyslogng

Para que todo esto funcione es necesario contar con una instalación preexistente de Apache con PHP y MySQL. No voy a entrar en detalles acerca de la instalación y configuración de cada uno de estos servicios por que está fuera del alcance de esta guía.

Instalación:

Usando el gestor de paquetes de su distribución preferida, instalar phpsyslogng. En Gentoo:

echo «app-admin/phpsyslogng mysql» >> /etc/portage/package.use

emerge  phpsyslogng

Opcional, si el servidor Apache está configurado para usar hosts virtuales, se puede instalar solo en uno de estos vhost habilitando la use flag correspondiente.

Una vez instalado, crear la base de datos correspondiente:

mysql> create database syslog;

Query OK, 1 row affected (0.18 sec)

El nombre de la base de datos (syslog) es arbitrario, pero es el que se sugiere por defecto durante la instalación.

Configuración de phpsyslogng:

Para que se rellene la base de datos con las tablas correspondientes basta con apuntar el browser a http://host.dominio.com/phpsyslogng, esto iniciará el asistente para finalizar la configuración en donde se solicitarán el nombre de usuario y contraseña de acceso, parámetros de la base de datos, etc.

Ejemplo de instalación de phpsyslogng

Configurando Syslog-NG:

El paso siguiente es configurar Syslog-NG para que pueda convertir los logs a un formato que permita su inserción en la base de datos MySQL, para lo cual basta con editar /etc/syslog-ng/syslog-ng.conf y agregar lo siguiente:

destination d_mysql {
pipe(«/var/log/mysql.pipe»
template(«INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( ‘$HOST’, ‘$FACILITY’, ‘$PRIORITY’, ‘$LEVEL’, ‘$TAG’, ‘$YEAR-$MON$
‘$PROGRAM’, ‘$MSG’ );\n») template-escape(yes));
};

log {
source(src);
destination(d_mysql);
};

Como ven, todos los logs se envían al archivo /var/log/mysql.pipe que será el encargado de parsearlos y insertarlos en la base de datos, por lo cual, el próximo paso es generar este archivo.

Creando el pipe /var/log/mysql.pipe

Crear un archivo nuevo de nombre arbitrario y con permisos de ejecución:

touch /usr/bin/syslogasql.sh

chmod +x  /usr/bin/syslogasql.sh

Dentro de ese archivo copiar las siguientes líneas:

if [ ! -e /var/log/mysql.pipe ]
then
mkfifo /var/log/mysql.pipe
fi
while [ -e /var/log/mysql.pipe ]
do
mysql -u aqui_tu_usuario –password=aqui_tu_password syslog < /var/log/mysql.pipe >/dev/null
done

Este archivo ejecutable será el encargado de crear el archivo de tubería que rellene la base de datos con la información obtenida desde los logs del sistema. Tiene que estar en constante ejecución por lo que es conveniente que se ejecute al inicio del sistema. En Gentoo esto se logra agregando el nombre del archivo a /etc/conf.d/local.start:

echo «/usr/bin/syslogasql.sh» >> /etc/conf.d/local.start

Es importante que este archivo no se ejecute antes de que se haya iniciado el servidor MySQL.

¡Y eso es todo!

Mientras syslogasql.sh se mantenga en ejecución, toda la salida de syslog será cargada en la base de datos y podrá ser consultada desde phpsyslogng.

Una vez terminada la instalación, un poco de seguridad:

Borrar el directorio de instalación:

rm -fr /var/www/localhost/htdocs/phpsyslogng/install

Evitar accesos ilegítimos a directorios comprometedores agregando las siguientes directivas al archivo de configuración de Apache:

<Directory «/var/www/phpsyslogng/scripts»>
Deny from all
</Directory>
<Directory «/var/www/phpsyslogng/includes»>
Deny from all
</Directory>
<Directory «/var/www/phpsyslogng/config»>
Deny from all
</Directory>