Enviar Respuesta  Enviar Tema 
1 Votos - 4 en Promedio   [howto] Acceso remoto a través del puerto serie
Autor Mensaje
dragonauta
Linux Registered User #436806
******
Super Moderador

Mensajes: 683
Grupo: Super Moderador
Registro en: Nov 2006
Estado: Sin Conexión
Reputación: 10
Mensaje: #1
[howto] Acceso remoto a través del puerto serie

Con este Howto intentaré mostrar lo sencillo que es conectarse a un PC "headless" (sin monitor ni teclado) aún cuando se haya caído la red.


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:

Código:
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

Código:
# 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:

Código:
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

Código:
console=tty0 console=ttyS0,9600n8


Por ejemplo, para fedora nos quedaría una línea asi:

Código:
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. 036


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! 023


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



Reglas del Foro | (irc.freenode.net#preguntaslinux)
05-20-2008 08:49 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
p_eter
Chaos Manager
*******
Administrador

Mensajes: 4,511
Grupo: Administrador
Registro en: Jun 2005
Estado: Ausente
Reputación: 13
Mensaje: #2
RE: [howto] Acceso remoto a través del puerto serie

Excelente howto, en todo sentido.


05-20-2008 09:06 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Enviar Respuesta  Enviar Tema 

Posibles Temas Similares...
Tema: Autor Respuestas: Vistas: Ultimo Mensaje
  [howto]VSFTPD en Ubuntu dragonauta 0 709 08-29-2008 06:55 PM
Ultimo Mensaje: dragonauta
  [howto]Diseño Web en Linux OpenSUSE p_eter 0 199 08-19-2008 05:01 PM
Ultimo Mensaje: p_eter
  [howto] TrueCrypt p_eter 0 161 07-30-2008 01:44 AM
Ultimo Mensaje: p_eter
  [howto] Metin2 Bajo Linux Abejo 0 1,387 06-28-2008 01:46 PM
Ultimo Mensaje: Abejo

Ver la Versión para Impresión
Mandar este Tema a algún Amigo
Subscríbete a este Tema | Agrega este Tema a Tus Favoritos

Salto de Foro: