1. Introducción
¿Quién no ha experimentado las ganas de tener un servidor headless en casa?
De esos equipos sin teclado ni monitor, al cual podemos acceder con un ssh, por vnc o por qué no por XDMCP.
Pero la pregunta que siempre aparece es: ¿Qué pasa si se cae la red, cómo accedo?
Habría que conectar un monitor y dudo mucho que reconozca un teclado PS2, ya que no son dispositivos que puedan conectarse en caliente. ¿Tal vez un teclado USB?
Igualmente significaría tener que llevar un monitor y un teclado, conectarlos y tratar de recuperar el sistema.
Bastante incómodo, ¿no?
Pues bien, hay otra forma de conectarse a un equipo sin necesidad de acceder a través de la red. Mediante el puerto serie.
Si bien es cierto que prácticamente las PC ya no vienen con puerto serie (ese famoso conector DB9 macho), es posible sin embargo, adquirir un adaptador Serie-USB. Estos adaptadores tiene un chip bastante conocido, el PL2303 que es el responsable de convertir las señales USB en Serie (y viceversa)

He aquí un ejemplo de cable (de marca Prolific):

También hay un proyecto de Conversor USB-RS232 de hardware GPL que permiten que uno mismo haga su propia placa conversora serie-USB.
¿Pero a que viene todo esto? ¿Para qué conectar el PC por el puerto serie?
Existen hoy en día en los grandes servidores, distintos niveles de administración (casi todos por el puerto serie).
HP, Sun, IBM, los gigantes, ofrecen en casi todos sus productos alguna alternativa de administración remota.
Por puerto serie DB9, puerto serie DB25, RJ45 Lan Management, RJ45 Serial Management.
Pero siempre en una interfaz separada del sistema operativo.
Sun denomina a su interfaz de administración, por ejemplo, OBP (OpenBoot Prom). Es una tarjeta que contiene un pequeño procesador con un micro sistema operativo el cual permite administrar los servidores remotamente. Encenderlos, reiniciarlos, chequear la temperatura y los mensajes de bios, se pueden realizar cómodamente desde el puesto de trabajo sin tener que entrar a la sala de servidores.
Existe también el LOM (Lights Out Manager) que generalmente puede accederse a través de un navegador web y permite realizar las mismas tareas que el OBP.
Incluso una empresa fabricante de bios, ha comenzado a incursionar en este tipo de administración remota. Si les interesa pueden leer más en este post
Ahora bien, no tendremos el dinero para comprar un HP o un servidor Sun, pero al menos podemos tener una alternativa propia y hecha con nuestras propias manos. Así que veamos como lo haremos.
2. Adaptar el inittab
Los pasos son muy sencillos.
Debemos modificar el archivo /etc/inittab y agregar una línea como sigue:
T0:1235:respawn:/sbin/mgetty -L ttyS0 9600 vt100
Esta línea nos indica que tendremos una terminal redirigida hacia el puerto serie ttyS0 (COM1) y que funcionará en los runlevel 1,2,3 y 5. Ya que 0 y 6 representan apagado y reinicio en muchas distribuciones.
Una salvedad, si están utilizando Debian, Ubuntu o cualquier distro basada en éstas anteriores, seguramente se encuentren con la sorpresa de que el inittab ya no existe ¿?
Esto es porque en las últimas releases de las distros basadas en debian se ha cambiado el SysVInit por el UpStart.
Entonces para Debian, Ubuntu, etc. deberemos modificar (o crear si no existiese) el archivo /etc/event.d/ttyS0
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /sbin/getty -L 9600 ttyS0 vt102
Con esto (y un reinicio) ya tendríamos habilitado el acceso al puerto serie de nuestro servidor headless.
Pero... ¿y si realicé un upgrade del kernel y ahora no arranca mi sistema?
3. Acceso al puerto serie desde el Grub
Si fuera necesario es posible acceder al grub por el puerto serie.
Esto es indistinto para cualquier distribución, asi que manos a la obra.
Como root, modificaremos el archivo /boot/grub/menu.lst
Agregaremos en alguna parte antes las dos líneas como siguen:
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
Seguidamente modificaremos levemente la línea del kernel, agregando al final
console=tty0 console=ttyS0,9600n8
Por ejemplo, para fedora nos quedaría una línea asi:
title Fedora (2.6.23.17-88.fc7)
root (hd0,0)
kernel /vmlinuz-2.6.23.17-88.fc7 ro root=LABEL=/ rhgb quiet [b]console=tty0 console=ttyS0,9600n8[/b]
initrd /initrd-2.6.23.17-88.fc7.img
En caso de actualizar el kernel, deberíamos modificar las líneas del menu.lst antes de reiniciar para asegurarnos que vamos a poder acceder ante cualquier problema.
4. Accediendo al puerto serie
Llegamos al punto en que tenemos que instalar algún software para comunicarnos con el puerto serie y poder administrar nuestro servidor.
Pues bien, tenemos varias alternativas:
cutecom. Es un programa gráfico bastante agradable y sencillo de utilizar. Recuerdo mucho al hyperterminal de los sistemas win.
minicom. Es un programa en modo texto muy potente, pero lo encuentro no muy sencillo de configurar.
putty. Es un programa gráfico no muy delicado en su interfaz, pero muy flexible. Permite realizar conexiones mediante varios protocolos: raw, telnet, rlogin, ssh y serie.
Estos programas están disponibles en casi todas las distribuciones y son muy sencillos de ubicar e instalar. Por eso no me voy a extender sobre como instalar o buscar un repositorio desde donde instalarlos.
De acuerdo a cómo modificamos los archivos inittab (o ttyS0) y menu.lst vamos a tener que configurar nuestros programas clientes.
En las configuración planteada vemos que hay que seleccionar:
baudios 9600
data bits 8
paridad none
stop bit 1
A esta configuración se la suele representar como 9600 8n1 y es una de las configuraciones estándar para puertos serie.
5. Cable Null modem
Hey! Ya tengo mis cables USB-Serie, uno para mi PC y uno para mi servidor, pero ¿cómo se supone que los voy a conectar si son dos conectores macho?
Bien, no hay problema. Tendremos que salir a comprar algunos elementos y construír un cable Null-Modem uno mismo.
Materiales:
Dos conectores Hembra DB9
2 metros de cable UTP ethernet.
Un soldador
Estaño
Si alguna vez soldaron cables esto será pan comido. Será tan simple como seguir el dibujo que les adjunto:

Aunque, pensandolo mejor... si salen a comprar materiales, primero pregunten si ya no viene un cable null-modem hembra-hembra. Se ahorrarán mucho trabajo.

6. Administración Remota at Home
Conectamos los cables. Iniciamos nuestro programa cliente de administarción serie preferido y lo configuramos.
Nos conectamos por ssh u otro método al servidor y lo reiniciamos.
Pronto veremos como en la pantalla del programa cliente aparece un "press any key to continue" y si pulsamos veremos el grub en modo texto.
Al iniciar nuestro sistema iremos viendo algunos mensajes hasta que tendremos por cierto el login, esperando a que nos conectemos mediante consola serie.
Experimenten, Prueben, Rompan, que así se aprende. Que lo disfruten!

Fuentes:
http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/
http://www.gnu.org/software/grub/manual/...l-terminal
http://www.euskalnet.net/shizuka/nullmdm.htm