martes, 24 de mayo de 2011

Hace unos meses que me comentaron un método curioso para reparar placas base. Algunos problemas en soldaduras pueden producir un mal funcionamiento del dispositivo, e introducir el componente en un horno a 200 ºC durante 10 minutos puede repararlo. Me sorprendió bastante, y buscando información al respecto por internet se leía de todo, pero vi que sobre todo se utilizaba para reparar un modelo de tarjeta gráfica Nvidia, y algunas videoconsolas ante ciertos errores genéricos.

En teoría, la soldadura de los componentes al PCB se realiza por un tipo de bolas de estaño denominadas BGA, y un exceso de calor continuado puede deteriorar la soldadura. Pero al igual que en algunas series, un personaje sufre amnesia por un golpe en la cabeza, y tras otro golpe similar recupera la memoria (aunque lo previsible y lo que sucedería en la realidad sería dejarle aún peor), en nuestro caso, un nuevo exceso de calor puede solucionarlo, y eso si que es una realidad, aunque en un principio parezca que lo unico que puede hacer es empeorar las cosas. Al ser un problema originado por un exceso de temperatura, no es de extrañar que las tarjetas gráficas sean uno de los componentes que más sufren este problema, debido a la gran cantidad de calor que generan y la escasa refrigeración que suelen tener, sobre todo en videoconsolas y portatiles.

Aún así me parecía raro, y yo quería probarlo. La primera prueba la hice con una placa base estropeada, que por supuesto no encajaba en el perfil que estaba buscando, y el experimento no sirvió de nada.

Hace un mes se me presento una nueva oportunidad, el portátil de un amigo con aceleradora Nvidia dejo de mostrar la imagen en el monitor, y tampoco funcionaba la salida vga, era lo que andaba esperando. Pero a mi amigo no le pareció gustar la idea de meter la placa al horno, además es de otra ciudad, por lo que lo llevo a arreglar... 180€ de nada sino recuerdo mal, seguro que por hacer lo mismo que quería hacer yo, y encima al mes le vuelve a fallar, menos mal que tenia garantía de 1 año en la reparación
Ayer, un alumno parecía tener un problema similar en su portátil, veía la imagen en 2/3 de la pantalla, y con lineas extrañas. El ya conocía el sistema del horno, y lo probo.... y funciono¡¡. Hoy el portátil funcionaba perfectamente. En el siguiente vídeo se ve como se realiza la operación en un portátil exactamente igual que el suyo, aunque el lo hizo introduciendo la placa completa en el horno a 200 ºC durante 10 minutos, el del vídeo es algo más radical, como tira con el soplete el tipo xD. 

miércoles, 11 de mayo de 2011

Por fin salio la esperadisima nueva versión de Slackware, hemos tenido que esperar un año pero por fin tenemos la versión 13.37, en  32 y 64 bits, lejos quedan ya los dias de slamd64 x). Entre las principales novedades (sistema de archivos btrfs, archivos de configuración para instalación por pxe boot... etc, etc) trae el navegador firefox 4. Dejando a parte todas las mejoras de seguridad incluidas, no se por que esperaba que el cambio de idioma fuese ya normal, con un cuadro de dialogo dentro de las preferencias del navegador.... pero no, siguen igual ¿Donde queda la ingenieria del software y el analisis de requisitos, casos de uso... etc? me parece una opción bastante importante para que por la versión 4 sigamos asi. Pues el cambio sigue haciendose como describo en este post, y el archivo xpi lo podemos descargar de aqui.

martes, 30 de noviembre de 2010

Un ramdisk consiste en utilizar la memoria RAM como si se tratase de un disco de almacenamiento secundario. Tenemos que tener en cuenta, que el espacio utilizado como ramdisk no podra ser utilizado para albergar procesos, por lo que reducimos la cantidad de memoria para el funcionamiento normal del equipo, lo que puede reducir considerablemente el rendimiento de nuestro equipo. Pero si estamos "sobrados" de RAM, y queremos que cierta información sea muy rapidamente accesible (por ejemplo la cache de un programa webcache, un fichero de base de datos... etc) podemos ubicarla directamente en en memoria RAM. Para realizar esto, tenemos que saber que la memoria ram esta montada directamente en /dev/shm, de tal manera que todo lo que guardemos en dicha carpeta se almacena directamente en memoria RAM. Además, dicho directorio puede ser escrito por cualquier usuario, ya que es un directorio para archivos temporales con el stickybit activo. Esto en cierto modo es peligroso, ya que un usuario malintencionado se podria dedicar a llenar dicha carpeta hasta dejar al equipo sin memoria RAM disponible. Para evitarlo podemos modificar el fstab modificando los permisos de escritura en dicha carpeta, o directamente, que no lo monte. 
También, debemos saber que el contenido de dicha carpeta se borrara al apagar el equipo, ya que la memoria RAM es volatil.
Veamos como podemos crear un ramdisk de un determinado tamaño. Por ejemplo, para crear un ramdisk de 512MB, introduciremos el siguiente comando:

Podemos observar en el resultado de df, que hemos creado un ramdisk de 512MB, y esta ubicado en /mnt/memory. Si queremos modificar los permisos por defecto para tmpfs podemos incluir la opción mode=0700 (todos los permisos para root). Podemos comprobar con el comando free como al copiar ficheros a la carpeta del ramdisk disminuye la cantidad de RAM libre.

martes, 16 de noviembre de 2010

NAT (Network Address Translation) es un protocolo de nivel de red que sirve para comunicar equipos entre dos redes diferentes (y que no se conocen entre si) sin necesidad de modificar ninguna tabla de rutas. en los hosts. El truco esta en enmascarar las direcciones ip, función que realiza el enrutador que comunica las dos redes. Veamos un ejemplo para entenderlo mejor.
Supongamos que tenemos un enrutador E con dos interfaces de red, uno de ellos se encuentra en la red A ( 192.168.0.0/24 ) y tiene la ip 192.168.0.2 y el otro en la red B (192.168.1.0/24) y el interfce de red tiene la ip 192.168.1.1. En la primera red tenemos otro enrutador I que nos da salida a internet, con la ip 192.168.0.1. El gateway por defecto de todos los equipos de la red A y del enrutador E es 192.168.0.1, y en la red B es 192.168.1.1. Con esta situación, imaginemos que queremos comunicar el equipo 192.168.1.10 con el equipo 192.168.0.10. El paquete llega a nuestro enrutador (ya que es el gateway por defecto de todos los host de la red B), el cual tiene conocimiento de las dos redes y envía el paquete al destinatario. El problema esta en el camino de vuelta. El host 192.168.0.10 (HOST1) tiene que enviar un paquete a 192.168.1.10 (HOST2), como el destino no esta en su red lo envía por su gateway por defecto (I) y ya nos podemos despedir del paquete. La primera opción seria añadir en la tabla de rutas del host 192.168.0.10 una linea que indique que el gateway para los paquetes cuyo destino es la red 192.168.1.0/24 es 192.168.0.2 (E). La otra opción es configurar el enrutador para que haga NAT. Describamos el ejemplo anterior con NAT. El paquete a enviar desde el HOST1 va directamente a su gateway por defecto, este, antes de mandarlo a su destinatario, aplica el protocolo NAT y lo enmascara, de forma que el remitente del paquete ahora ya no es el HOST1, sino que es la ip 192.168.0.2 (el enrutador E). El paquete llega al destinatario y este ahora devuelve una respuesta al remitente del paquete que es 192.168.0.2. Al analizar el paquete, el enrutador E observa mediante NAT que el destinatario no es el, sino el HOST1, de tal manera que se lo envia y la comunicación termina.

Bueno, después de este enrevesado ejemplo vamos a pasar a ver como se configura en Windows y en Linux. Comencemos por Windows 7:

En Windows 7 ( también en XP y Vista) el servicio NAT se llama ICS, que es en realidad una mezcla de servidor DHCP y NAT. Para activarlo abrimos el panel de conexiones de red.



A continaución, en el interface de red que tiene salida a internet, pulsamos el botón derecho del ratón y hacemos click en propiedades. En el cuadro de dialogo que aparece seleccionamos la pestaña de uso compartido.

Activamos el checkbox para compartir la conexión a internet y le damos a aceptar. Nos aparecera el siguiente cuadro de dialogo indicandonos que la red privada (a la que se encuentra conectado el otro interface de red) tendra configuración dinámica obligatoriamente, ya que en nuestro equipo se activara un servidor DHCP. La red será 192.168.137.0/24


Observamos que en el icono de la conexión de area local se índica que la red esta compartida.


Comprobamos desde un HOST de la red privada que todo funciona.





Ahora veamos como hacerlo desde Linux. Si ya tenemos configurados los dos interfaces de red, debemos hacer dos operaciones:

1) Activar el servicio ip_forward para que el equipo enrute el tráfico entre sus interfaces de red. Podemos hacerlo de dos maneras:

a) Dar permiso de ejecución a /etc/rc.d/rc.ip_forward. Al reiniciar el equipo se activar. Si queremos activarlo en el momento lo ejecutamos.

b)Añadir la siguiente linea al fichero /etc/rc.d/rc.local
echo "1" > /proc/sys/net/ipv4/ip_forward

2) Hacer NAT entre dos redes: Añadimos al fichero /etc/rc.d/rc.local la siguiente linea:
iptables -A POSTROUTING -t nat -s RED_PRIVADA ! -d RED_PRIVADA -j MASQUERADE
donde RED_PRIVADA es la red a enmascarar, por ejemplo 192.168.0.0/24. Dicha red puede ser de configuración estática o dinámica.