4.6. Dispositivos Serie y el Indicador login: (ingreso)

Lleg� a ser muy com�n que una instalaci�n basada en Unix incluyera una m�quina servidor y muchos terminales “tontos” (sin procesamiento) de caracteres o m�dems para acceso telef�nico. Hoy en d�a este tipo de configuraciones son menos comunes, lo que supone una buena noticia para mucha gente interesada en trabajar as�, ya que estos terminales sin procesamiento son muy baratos actualmente. Las configuraciones con m�dems de acceso telef�nico no han dejado de ser comunes, pero en estos tiempos probablemente se utilicen como soporte para ingresos mediante SLIP o PPP (temas tratados en Cap�tulo 7 y Cap�tulo 8 ) m�s que para un simple ingreso. En cualquier caso, cada uno de estos m�todos puede hacer uso de un programa sencillo llamado programa getty.

El t�rmino getty es probablemente una abreviatura de “get tty” (conseguir tty). Un programa getty abre un dispositivo serie, lo configura apropiadamente, configura opcionalmente un m�dem, y espera a que se realice una conexi�n. Una conexi�n activa en un dispositivo serie se indica normalmente mediante la patilla Data Carrier Detect (DCD) en el dispositivo serie que ha sido activado. Cuando se produce esta detecci�n, el programa getty llama a un programa que muestra el punto indicativo login:, y es el que maneja realmente el ingreso al sistema. Cada uno de los terminales virtuales (por ejemplo, /dev/tty1) en GNU/Linux tiene un getty ejecut�ndose para �l.

Hay varias implementaciones distintas de getty, cada una dise�ada para adaptarse a ciertas configuraciones mejor que a otras. El getty que describiremos aqu� se llama mgetty. Es bastante conocido porque proporciona todo tipo de caracter�sticas que lo hacen especialmente indicado para uso con m�dems, aceptando incluso programas autom�ticos para fax y m�dems de voz. Nos concentraremos en configurar mgetty para responder a las llamadas convencionales de datos, y dejaremos el resto para que explore usted en funci�n de sus necesidades.

4.6.1. Configuraci�n del Demonio mgetty

El demonio mgetty est� disponible en forma de c�digo fuente en ftp://alpha.greenie.net/pub/mgetty/source/, y pr�cticamente todas las distribuciones de GNU/Linux lo incluyen como paquete. El demonio mgetty se diferencia de la mayor�a de las implementaciones de programas getty en que ha sido dise�ado espec�ficamente para m�dems compatibles con Hayes. Admite a�n conexiones directas de terminales, pero se adapta de forma especialmente buena a aplicaciones de llamadas telef�nicas. En lugar de emplear la se�al DCD para detectar una llamada entrante, espera a la escucha del mensaje RING generado por la mayor�a de m�dems modernos cuando detectan una llamada entrante y no est�n configurados para responder autom�ticamente.

El ejecutable principal es /usr/sbin/mgetty, y su fichero de configuraci�n se llama /etc/mgetty/mgetty.config. Hay otros programas y ficheros de configuraci�n que cubrir�n otros rasgos concretos de mgetty.

La configuraci�n, en gran parte de los sistemas, es cuesti�n �nicamente de editar el fichero /etc/mgetty/ mgetty.config y a�adir las entradas apropiadas a /etc/inittab para que mgetty se ejecute autom�ticamente.

Ejemplo 4-6 muestra un fichero muy simple de configuraci�n de mgetty. Este ejemplo configura dos dispositivos serie. El primero, /dev/ttyS0, se refiere a un m�dem compatible con Hayes a 38.400 bps. El segundo, /dev/ttyS1, se corresponde con un terminal VT100 conectado directamente, a 19.200 bps.

El fichero de configuraci�n acepta opciones globales y espec�ficas de cada puerto. En nuesto ejemplo, empleamos una opci�n global para fijar la velocidad a 38.400 bps. Este valor es heredado por el puerto ttyS0. Los puertos a los que aplicamos mgetty emplean este ajuste de velocidad a no ser que sea reemplazado por un ajuste de velocidad expl�cito para el puerto, tal y como hemos hecho en la configuraci�n de ttyS1.

La palabra clave debug controla la cantidad de texto del registro de actividad de mgetty. La palabra clave data-only en la configuraci�n de ttyS0 hace que mgetty desprecie las caracter�sticas de fax del m�dem, para que funcione �nicamente como m�dem de datos. La palabra direct en la configuraci�n de ttyS1 avisa a mgetty para que no lleve a cabo ninguna inicializaci�n para m�dem en ese puerto. Finalmente, con toggle-dtr se consigue que mgetty no trate de colgar la l�nea bajando la patilla DTR (Data Terminal Ready) en el interfaz serie; algunos terminales no reaccionan bien ante esto.

Tambi�n puede usted elegir dejar vac�o el fichero mgetty.config y emplear argumentos en la l�nea de �rdenes para especificar la mayor�a de esos mismos par�metros. La documentaci�n que acompa�a a la aplicaci�n incluye una completa descripci�n de los par�metros del fichero de configuraci�n de mgetty y los argumentos de l�nea de �rdenes. Observe el siguiente ejemplo.

Hemos de a�adir dos entradas al fichero /etc/inittab para activar esta configuraci�n. El fichero inittab es el fichero de configuraci�n de la orden init de Unix System V. Esta orden es la encargada de la iniciaci�n del sistema; proporciona un medio para ejecutar programas autom�ticamente al iniciar la m�quina y volver a ejecutarlos cuando terminan. Es muy apropiada para los objetivos de ejecutar un programa getty.

    T0:23:respawn:/sbin/mgetty ttyS0
    T1:23:respawn:/sbin/mgetty ttyS1

Cada l�nea del fichero /etc/inittab contiene cuatro campos, separados por dos puntos. El primero es un identificador que etiqueta de forma �nica cada entrada del fichero; tradicionalmente se utilizan dos caracteres, pero las versiones m�s modernas permiten cuatro. El segundo campo es la lista de niveles de ejecuci�n en los que deber� estar activa. Un nivel de ejecuci�n es un mecanismo para proporcionar distintas configuraciones del equipo y se implementa mediante el uso de �rboles de scripts de inicio, almacenados en directorios llamados /etc/rc1.d, /etc/rc2.d, etc. Esta caracter�stica es implementada t�picamente de forma muy simple, por lo que usted debe modelar sus entradas en el fichero bas�ndose en otras del mismo, o bien consultar la documentacion de su sistema para obtener m�s informaci�n. El tercer campo describe cu�ndo hay que llevar a cabo la acci�n. Para los prop�sitos de ejecutar un programa getty, este campo debe ser ajustado a respawn, lo que significa que la orden se re-ejecutar� autom�ticamente cuando muera. Hay otras opciones tambi�n, pero no son �tiles para nuestros prop�sitos aqu�. El cuarto campo es la orden real que ha de ejecutarse; aqu� es donde especificamos la orden mgetty y cualquier argumento que queramos pasarle. En nuestro ejemplo simple, ejecutamos y reiniciamos mgetty siempre que el sistema est� operando en los niveles de ejecuci�n dos o tres, y le suministramos como argumento el nombre del dispositivo que queremos utilizar. La orden mgetty asume /dev/, as� que no hemos de proporcionarlo.

Este cap�tulo ha sido una introducci�n r�pida a mgetty y c�mo ofrecer un punto identificativo de ingreso al sistema en dispositivos serie. Podr� encontrar informaci�n m�s extensiva en el Serial-HOWTO.

Una vez que haya editado los ficheros de configuraci�n ha de recargar init para hacer efectivos los cambios. Simplemente env�e una se�al hangup al proceso init; siempre tiene un identificador de proceso 1, as� que puede usar sin problemas:

    # kill -HUP 1