Calor, calor! (y más si eres un router)

Hace unos días que tenía problemas de conectividad en mi casa.
Estaba un poco mosqueado por que si a 3MB le quitas 2,5MB pues te quedas en diciendo “el modem 56k está volviendo!”.
Asi que después de casi quemarme las manos intentando coger el router, decidí abrirlo y mi sorpresa ha sido muy grata:

Router con mucho mucho calor 01
Router con mucho mucho calor 02

Un par de bobinas se han derretido “un poquito” :D aunque no lo suficiente para salir ardiendo :P
Asi que como no tenía ningún ventilador mini a mano para tunear la caja del router, he decidido ponerlo en un sitio donde siempre hay una corriente de aire generada… dentro de la caja del PC :)
Router con un poco menos de calor 01
Y de paso, le he puesto una de las sondas térmicas que trae la caja para monitorizar el estado general dentro de la misma.
Esta mañana cuando he arrancado el pc se ha puesto a pitar como loco, 60ºC y tengo la sonda en el único disipador del router (se ve la sonda en la última imagen).
No es una solución demasiado buena, pero de momento tendrá que quedarse así, hasta que pase por la tienda de ventiladores a comprar algo apropiado.

CH3HNAS: cambiando puntos de montaje

A vueltas con el NAS, no he encontrado la manera de cambiar los puntos de montaje por defecto para los discos duros.
Y la verdad, no me gustaba la idea de tener el 2º disco en “/home/Disk_2”, asi que aprovechando el sistema “funplug”, he decido añadir un script propio para montar en durante el boot el 2º disco donde yo quiero.

El script es el siguiente:
[cc lang=”bash” theme=”blackboard”]
#!/bin/sh
# EXIT CODES:
# 0 OK
# 1 MOUNT FAIL
# 2 UMOUNT FAIL
# 99 undefined error

DISK2=”/home/Disk_2″
DEVICE2=”/dev/sdb1″
MYMOUNT=”/home/Public/mountpoint”
# check if mounted
checkmounted()
{
# returns: 0 umounted, 1 wrong, 2 OK
local MOUNTED=”$(df | grep “^$DEVICE2″)”
if [[ “$MOUNTED” ]]
then
if [[ “$(echo $MOUNTED | grep $MYMOUNT)” ]]
then
return 2
else
return 1
fi
else
return 0
fi
}
# mount
mount_it()
{
mount $DEVICE2 $MYMOUNT
sleep 2
checkmounted
AUX=$?
if [ $AUX -ne 2 ]
then
echo “FAIL mounting”
exit 1
fi
}
# umount
umount_it()
{
umount -lf $DISK2
sleep 2
checkmounted
AUX=$?
if [ $AUX -ne 0 ]
then
echo “FAIL umouting”
exit 2
fi
}
# check again

main()
{
checkmounted
AUX=$?
case $AUX in
0)
mount_it
;;
1)
umount_it
mount_it
exit 0
;;
2)
echo “OK”
exit 0
;;
*)
echo “FAIL STATUS”
exit 99
;;
esac
}
main
[/cc]

Como véis, únicamente compruebo que está montada (variable $DISK2), desmonto y monto en el sitio que yo quiero (variable $MYMOUNT).

New adventures with CH3HNAS

Hi folks!
Following with my CH3HNAS adventures, I’ve decided to build my own cross-compiling environment based on the wonderful instructions from Henk-Jan.
To avoid unexpected issues on my Arch distro, I’ve created a new VM running debian.
Here I found the 1st issue, there’s no gcc-4.1 on the last debian version, so I setted up lenny’s repos:
[cc lang=”bash” theme=”blackboard”]
cp /etc/apt/sources.list /etc/apt/sources.list.orig
echo “deb http://ftp.us.debian.org/debian/ lenny main contrib non-free” > /etc/apt/sources.list
echo “deb-src http://ftp.us.debian.org/debian/ lenny main contrib non-free” >> /etc/apt/sources.list
apt-get update
apt-get install gcc-4.1 g++-4.1
mv /etc/apt/sources.list /etc/apt/sources.list.lenny
cp -fv /etc/apt/sources.list.orig /etc/apt/sources.list
[/cc]
Having the minimal debian distro, “bzip2” is necessary too.

I get an estrange error at the 1st step’s while “making” the build environment:
[cc lang=”bash” theme=”blackboard”]
scripts/unifdef.c:209: error: conflicting types for ‘getline’
/usr/include/stdio.h:XXX: note: previous declaration of ‘getline’ was here
[/cc]
I was running crazy with that till I found this simply solution.
The problem is that if you want to use the “Makefile” provided, the kernel source is bzip’ed, so callme fool, but I bunzipped/bziped again with the patch inside :)
[cc lang=”bash” theme=”blackboard”]
cd OXNAS810/src/rootfs/buildroot/../buildroot-archives/
tar xjfv linux-2.6.24.7.tar.bz2
sed -i “s/getline/uc_&/” ./linux-2.6.24.7/scripts/unifdef.c
mv linux-2.6.24.7.tar.bz2 linux-2.6.24.7.tar.bz2.orig
tar cjfv linux-2.6.24.7.tar.bz2 linux-2.6.24.7
[/cc]
And then I simply run:
[cc lang=”bash” theme=”blackboard”]
make
[/cc]
To build the environment.

Migración a Arch

Desde hace algún tiempo, en el trabajo me venía planteando el migrar a algo más “hard” (por decirlo así…) había cosas de ubuntu que no me terminaban de convencer.
Por ejemplo, quería usar sí o sí el magnífico CDM y pasar de GDM/KDM, ya que comían memoria en mi portátil ruso con sus pasmosos 2GB de ram.
La cuestión es que en ubuntu no conseguí eliminar GDM y usar correctamente CDM…
Asi que en los ratos libres del “finde” he migrado a Arch.
Después de instalar millones de dependencias, visitar miles de páginas de su maravillosa wiki y siguiendo la página “lightweight” al dedillo, he decir que estoy gratamente sorprendido con el resultado, ya el mayor defecto es su mayor virtud y en este caso la fuerza de la virtud es muy superior: personalización.
Al montar “from scratch” (hasta cierto punto), todo se puede poner “a medida”.

Por supuesto, firefox y flash siguen ocupando el 50% de la memoria, pero el resto va sobrado.
Recomendable 100% a quien quiera algo a medida, eso si, es necesario tener al lado un pc/movil con el que ir leyendo la wiki (o ser el puto amo).

Pam mount

Entre otras cosas estoy experimentando con la tan bien “nombrada” Arch Linux, para otro post mis experiencias.
Hoy recuperando mi home encriptada con LUKS, he probado por primera vez “pam_mount” (desde AUR).
Después de estar pensando qué fallada, me he dado cuenta que no había añadido el módulo a la sección correspondiente de PAM:
[cc lang=”bash” theme=”blackboard”]
vi /etc/pam.d/login
[/cc]
Y, tal como dicen en la documentación oficial, añadir al final:
[cc lang=”bash” theme=”blackboard”]
session optional pam_mount.so
[/cc]

Tal vez sea por que llevo mucho tiempo viviendo feliz en ubuntu (y antes mandriva), pero me sorprende que no lo haga automáticamente… que también está bien, no? ;)
Me ha sorprendido gratamente que se desmonte con el “logout”, recomendado para cualquiera que quiera un poquito más de seguridad :)

Cuidadín con nuestro amigo el vendedor

Resulta que ayer fui a buscar mi tarjeta gráfica en reparación desde hace como 4 meses, no me quejo del tiempo que han tardado (ya que volvió a mis manos igual de quemada que se fue).
Antes de nada, mi gráfica era una “Asus Nvidia GTS250 512MB” osea, gama media.

Cuando felizmente fui a buscarla el dependiente/becario sin comentarme nada sacó una tarjeta que no era la mía del almacén y se puso a escribir unas cosas en su Pc; transcribo aproximadamente la conversación:

dodger: Perdona mi curiosidad, pero me puedes indicar qué estas haciendo?
becario: Es un cambio en garantía
dodger: Si… pero… me tendrás que informar del cambio, ya que no me has dicho ni siquiera que me la íbais a cambiar, yo venía a por mi gráfica.
becario: Ah, vale, pues es un cambio en garantía, nos han enviado esta gráfica para realizar el cambio.
dodger: de acuerdo, me la dejas ver?

Reviso la gráfica y veo una “Club 3d Nvidia GT440“, sigamos con la conversación:

dodger: Perdona, me dejáis un pc en el que pueda buscar una referencia de esta gráfica, ya que no la conozco
becario: no te preocupes, es una tarjeta superior, mira, tiene 1GB de RAM y la tuya tenía 512MB

En este punto es en el que se disparan todas las alarmas de mi cabeza pensando: “Esta es la típica bola que le sueltas a alguien que si no tiene ni p*** idea cuela“:

dodger: Ok, pero no me importa mucho la ram, me puedes dejar un pc?
becario: bueno… (estaba flipando el chico) espera, mira ves allí con mi compañero que te puede buscar lo que le digas.

Esta parte me la salto, pero podéis echar un ojo al siguiente link y ver en qué puesto estaba mi gráfica y en qué puesto está la que me intentaban endiñar.

Vuelvo a hablar con el becario y le comento que me niego a aceptar esta gráfica ya que es muy inferior a la mia, por no decir que no es ni de la misma marca…
El becario dice que tiene que hablar con el jefe… A lo que ya me veo sacando la artillería pesada :D

Jefe: Me comenta becario que tienes problemas con el cambio.
dodger: si, como le comentaba … blablabla (lo mismo que antes)
Jefe: Si, pero esta tarjeta es superior, no ves que tiene más memoria.

Pensando: Are you fucking kidding me? He venido 1000 veces, me conoces tio… No intentes tomarme el pelo

La verdad es que no sé si me entendió mucho:

dodger: (MODO PACIENCIA INFINITA) Me da igual la ram, no la voy a usar, quiero potencia de proceso y velocidad que fué lo que compré.
Jefe: Bueno, espera, voy a buscar alguna equivalencia.

No subí el tono, pero estaba a punto de soltarle algo como “le vas a tomar el pelo a la (con perdón) sudamericana que tengo a mi lado y está flipando, que pa algo me dedico a esto y LEO

Total, que parece que al final, tomó exactamente la misma tabla que he puesto antes de tom’s hardware y me pediran una ASUS GTS450.

Conclusión, mucho cuidado con la gente, aunque os conozca os intentarán timar a SACO … Y chicos, me parece que habéis perdido un cliente ;)