Para conectarnos al sistema remoto y mandarle órdenes, podemos utilizar muchos programas como minicom, putty o incluso el hyperterminal de Windows. No obstante, nosotros vamos a explicar un gran desconocido para muchos, que ni siquiera es un programa, sino un comando de Linux: El comando 'screen'.

screen es un comando para crear sesiones virtuales. Es muy poderoso y tiene muchísimas opciones, con lo que no podemos explicarlas todas. Para ello, os remitimos a los tutoriales que hay por la web o al archiconocido man screen que se puede poner en cualquier terminal. Si no lo tenéis instalado, basta con hacer en Fedora:

# sudo yum install screen

O en Debian/Ubuntu:

# sudo apt-get install screen

Lo primero que hay que saber es que screen hay que ejecutarlo como súper usuario. Lo segundo que debéis hacer es que los procesos que se creen cuando se llaman desde screen no mueren. Es decir, y por poner un ejemplo clásico, si yo hago lo siguiente:

# sudo screen

se limpiará la terminal actual y volverá a aparecer nuestro prompt, pudiendo parecer que el comando ha fallado. Sin embargo, si escribimos ahí:

# ping 127.0.0.1

y luego nos desasociamos de screen pulsando CTRL + A - D, volvemos al terminal primero que teníamos. ¿Qué ha pasado? Pues que hemos creado una sesión virtual en la que, al desasociarnos, volvemos a la que teníamos. Y ahora viene lo mejor. Si ponemos:

# sudo screen -r

¡Vemos que el ping se ha seguido ejecutando! ¿Veis el potencial de este comando? Podéis lanzar tareas remotas que, aunque el sistema host caiga, en el remoto se seguirán ejecutando. Para finalizar realmente la tarea (no desasociarse, sino finiquitarla), hay que hacer CTRL + A - K, y luego pulsar 'y'.

Y bueno, volvamos a lo que estábamos. Para ver lo que escupe el puerto serie, tecleamos lo siguiente desde un equipo host conectado al remoto a través de un cable de módem nulo antes de arrancar el remoto (ya que podemos perder caracteres si no lo hiciéramos así):

# sudo screen /dev/ttyS0 115200

donde /dev/ttyS0 indica que vamos a usar el primer puerto serie en la máquina host (COM1) y 115200 es la velocidad de línea a la que vamos a trabajar, la tasa en baudios por segundo. Mucho cuidado de no confundirse con el ttySx, ya que puede diferir el puerto del host con el del sistema remoto: El del host se escribe en el screen (y puede ser ttyS1 por ejemplo), y el del sistema remoto se escribe con los ficheros lilo.conf, inittab y securetty (y puede ser ttyS0, por ejemplo, ya que no es necesario que coincidan).

Por otro lado, es conveniente señalar que lo que se selecciona, es el label que hemos introducido en cada entrada de los kernels en lilo.conf Si os fijáis, para nuestro primer kernel, hemos modificado la etiqueta para convertirla en label=1, y, en el segundo, hemos hecho lo apropiado para dejarla como label=2. Esto es conveniente ya que facilitamos la elección del kernel reduciéndolo a dos pulsaciones de teclas (pulsar un número más [ENTER]).

Tras esto, y si todo ha ido bien y en todos los pasos hemos seleccionado la misma velocidad de línea (recomendamos probar primero con 9600 si se desconoce la de algún equipo, ya que suele ser el estándar de facto en Linux para el puerto serie), tendremos nuestra consola remota por el puerto serie. ¡Felicidades!

Fuentes:

[1] Wikipedia: www.wikipedia.es

[2] Linux Serial Console HOWTO: www.vanemery.com

[3] Serial HOWTO: tldp.org

[4] How To Configure Linux Serial Consoles: lonesysadmin.net

[5] Linux man page: linux.die.net

[6] Imagen del cable de módem nulo: orkanet.com

[7] Imagen del conector DE-9 RS-232 macho: www.noktaendustriyel.com