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.
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.
Ejemplo 4-6. Fichero /etc/mgetty/mgetty.config de ejemplo
#
# fichero de configuraci�n de mgetty
#
# este es un fichero de ejemplo de configuraci�n, vea mgetty.info para obtener detalles
#
# las l�neas de comentario comienzan con "#", las l�neas vac�as son deshechadas
#
# ----- secci�n global -----
#
# En esta secci�n van los valores globales por defecto, la configuraci�n por puertos va debajo
#
# acceder al m�dem (o m�dems) a 38400 bps
speed 38400
#
# ajustar el nivel global de depuraci�n a "4" (valor por defecto de policy.h)
debug 4
#
# ----- secci�n espec�fica de puerto -----
#
# Aqu� se pondran las cosas que sean v�lidas s�lo para una l�nea, no las dem�s
#
#
# M�dem Hayes conectado a ttyS0: no usar como fax, menos registro de actividad
#
port ttyS0
debug 3
data-only y
#
# conexi�n directa de un terminal VT100 que no gusta de bajadas en la se�al DTR
#
port ttyS1
direct y
speed 19200
toggle-dtr n
# |
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: