24.3. Terminales

Contribuido porSean Kelly.

Las terminales proveen una manera conveniente y de bajo coste de accesar su sistema FreeBSD cuando no se encuentra en la consola de la computadora o en una red conectada. Esta sección describe como utilizar terminales con FreeBSD.

24.3.1. Usos y tipos de terminales

Los sistemas originales UNIX® no tenín consolas. En su lugar la gente se firmaba y corría programas a través de terminales conectadas a los puertos serie de la computadora. Es bastante similar a usar un modem y un programa de terminal para marcar hacia un sistema remoto para hacer trabajo en modo texto.

Las PCs actuales tienen consolas con gráficos de alta calidad, pero la habilidad para establecer una sesión en un puerto serie todavía existe en casi cualquier sistema operativo UNIX al día de hoy; FreeBSD no es la excepción. Utilizando una terminal conectada a un puerto serie libre, usted puede accesar y correr cualquier programa de texto que podría correr normalmente en la consola o en una ventana xterm en el sistema X Window.

Para el usuario corporativo, se pueden conectar muchas terminales a un sistema FreeBSD y ponerlas en los escritorios de sus empleados. Para un usuario casero, una computadora de reserva, como una IBM PC más antigua o una Macintosh®, puede ser una terminal cableada a una computadora más poderosa corriendo FreeBSD. Puede convertir lo que de otra manera sería una computadora de un solo usuario en un poderoso sistema de usuarios múltiples.

Para FreeBSD, existen tres clases de terminales:

Las subsecciones siguientes describen cada tipo.

24.3.1.1. Terminales tontas

Terminales tontas son piezas de hardware especializadas que le permiten conectar a computadoras a través de líneas serie. Son llamadas “tontas” porque solo tienen poder computacional suficiente para desplegar, enviar y recibir texto. No puede ejecutar ningún programa en ellas. Es la computadora a la cual se conectan la que tiene todo el poder para correr editores de texto, compiladores, correo electrónico, juegos, y demás.

Existen cientos de tipos de terminales tontas hechas por muchos fabricantes, incluyendo VT-100 de Digital Equipment Corporation y WY-75 de Wyse. Cualquier tipo funcionará con FreeBSD. Algunas terminales superiores pueden incluso desplegar gráficos, pero solo ciertos paquetes de software pueden tomar ventaja de estas funciones avanzadas.

Las terminales tontas son populares en ambientes de trabajo donde los trabajadores no necesitan acceso a aplicaciones gráficas como las que provee el sistema X Window.

24.3.1.2. PCs actuando como terminales

Si una terminal tonta tiene apenas la habilidad para desplegar, enviar y recibir texto, entonces ciertamente cualquier computadora personal de reserva puede ser una terminal tonta. Todo lo que necesita es el cable apropiado y algún software de emulación de terminal para correr en la computadora.

Tal configuración es popular en hogares. Por ejemplo, si su consorte se encuentra ocupado trabajando en la consola de su sistema FreeBSD, usted puede realizar algún trabajo en modo texto al mismo tiempo desde una computadora personal menos poderosa conectada como una terminal al sistema FreeBSD.

24.3.1.3. Terminales X

Las terminales X son el tipo más sofisticado de terminal disponible. En lugar de conectar a un puerto serie, usualmente se conectan a una red como Ethernet. En lugar de ser relegadas a aplicaciones de modo texto pueden desplegar aplicaciones X.

Hemos introducido terminales X solo por complementar. Sin embargo, este capítulo no cubre instalación, configuración o uso de terminales X.

24.3.2. Configuración

Esta sección describe lo que necesita para configurar en su sistema FreeBSD y permitirle habilitar sesiones de entrada en una terminal. Asume que ya tiene configurado su kernel para soportar el puerto serie al cual la terminal está conectada—y que la tiene conectada.

Recuerde del Capítulo 12 que el proceso init es responsable del control e inicialización de todos los procesos al inicio del sistema. Una de las tareas ejecutadas por init es leer el fichero /etc/ttys e iniciar un proceso getty en las terminales disponibles. El proceso getty es responsable de leer un nombre de entrada e iniciar el programa login .

Así, para configurar terminales para su sistema FreeBSD los siguientes pasos deben hacerse como root:

  1. Agregue una línea a /etc/ttys para la entrada en el directorio /dev para el puerto serie si todavía no se encuentra ahí.

  2. Especifique que /usr/libexec/getty sea ejecutado en el puerto, y especifique el tipo apropiado de getty desde el fichero /etc/gettytab .

  3. Especifique el tipo de terminal por omisión.

  4. Ponga el puerto a “on.”

  5. Especifique si el puerto debe ser o no “seguro.”

  6. Obligue a init a releer el fichero /etc/ttys .

Como un paso opcional, tal vez desee crear un tipo getty personalizado para utilizar en el paso 2 mediante una entrada en /etc/gettytab. Este capítulo no explica como realizarlo; por lo que se le exhorta a leer las páginas de manual gettytab(5) y getty(8) para mayor información.

24.3.2.1. Agregando una entrada a /etc/ttys

El fichero /etc/ttys lista todos los puertos en su sistema FreeBSD donde quiere permitir logins. Por ejemplo, la primera consola virtual ttyv0 tiene una entrada en este fichero. Puede firmarse en la consola utilizando esta entrada. Este fichero también contiene entradas para las otras consolas virtuales, puertos serie y pseudo-ttys. Para una terminal conectada por cable, solo liste la entrada /dev del puerto serie sin la parte de /dev (por ejemplo, /dev/ttyv0 debería estar listado como ttyv0).

Una instalación por omisión de FreeBSD incluye un fichero /etc/ttys con soporte para los primeros cuatro puertos serie: ttyd0 hasta ttyd3. Si está conectando una terminal a uno de esos puertos, no necesita agregar otra entrada.

Ejemplo 24-1. Agregando entradas de terminal a /etc/ttys

Suponga que quisiéramos conectar dos terminales al sistema: una Wyse-50 y una vieja IBM PC 286 corriendo el software de terminal Procomm emulando una terminal VT-100. Conectamos la Wyse al segundo puerto serie y la 286 al sexto puerto serie (un puerto en una tarjeta multipuerto serie). Las entradas correspondiente en el fichero /etc/ttys se verían como esto:

ttyd1(1)  "/usr/libexec/getty std.38400"(2)  wy50(3)  on(4)  insecure(5)
ttyd5   "/usr/libexec/getty std.19200"  vt100  on  insecure
	 
(1)
El primer campo normalmente especifica el nombre de fichero especial de la terminal como es hallado en /dev.
(2)
El segundo campo es el comando a ejecutar por esta línea, el cual es usualmente getty(8). getty inicializa y abre la línea, establece la velocidad, pregunta por un nombre de usuario y entonces ejecuta el programa login(1) .

El programa getty acepta un parámetro (opcional) en su línea de comando, el tipo getty. Un tipo getty configura características en la línea de terminal, como tasa de bps y paridad. El programa getty lee estas características desde el fichero /etc/gettytab.

El fichero /etc/gettytab contiene muchas entradas para líneas de terminal viejas y nuevas. En la mayoría de los casos, las entradas que empiezan con el texto std funcionarán para terminales conectadas físicamente. Estas entradas ignoran la paridad. Existe una entrada std por cada tasa de bps de 110 a 115200. Por supuesto puede agregar sus propias entradas a este fichero. La página de manual gettytab(5) provee mayor información.

Al establecer el tipo getty en el fichero /etc/ttys, asegúrese que las propiedades de comunicaciones en la terminal concuerden.

Para nuestro ejemplo, la Wyse-50 no usa paridad y conecta a 38400 bps. La 286 PC no usa paridad y conecta a 19200 bps.

(3)
El tercer campo es el tipo de terminal usualmente conectado a esa línea tty. Para puertos dial-up, unknown o dialup son usados típicamente en este campo puesto que los usuarios pueden marcar prácticamente con cualquier tipo de terminal o de software. Para terminales conectadas físicamente, el tipo de terminal no cambia, así que puede poner un tipo de terminal real del fichero de base de datos termcap(5) en este campo.

Para nuestro ejemplo, la Wyse-50 utiliza el tipo de terminal real mientras que la PC 286 corriendo Procomm será puesta a emular una VT-100.

(4)
El cuarto campo especifica si el puerto debe habilitarse. Poniendo on aquí provocará que el proceso init inicie el programa en el segundo campo, getty. Si pone off en este campo, no habrá getty, y por consecuencia ningun login en el puerto.
(5)
El último campo es utilizado para especificar si el puerto es seguro. Marcar un puerto como seguro significa que se confía en él lo suficiente para permitir que la cuenta root (o cualquier cuenta con un ID de usuario 0) se firme desde ese puerto. Los puertos inseguros no permiten entradas de root. En un puerto inseguro, los usuarios deben firmarse desde cuentas sin privilegios y entonces utilizar su(1) o un mecanismo similar para acceder a privilegios de superusuario.

Es altamente recomendable que utilize “insecure” incluso para terminales que se encuentran detrás de puertas con llave. Es muy sencillo entrar y usar su si necesita privilegios de superusuario.

24.3.2.2. Forzar init a que relea /etc/ttys

Despues de realizar los cambios necesarios al fichero /etc/ttys debería mandar una señal SIGHUP (hangup) al proceso init para forzarlo a releer su fichero de configuración. Por ejemplo:

# kill -HUP 1

Nota: init siempre es el primer proceso que corre en un sistema, por lo tanto siempre tendrá el PID 1.

Si todo está puesto correctamente, todos los cables en su lugar, y las terminales están encendidas, entonces un proceso getty debe estar corriendo en cada terminal y debería ver prompts de entrada en sus terminales en este punto.

24.3.3. Determinando errores en su conexión

Incluso con la más meticulosa etención al detalle, algo puede salir mal mientras se configura una terminal. Esta es una lista de síntomas y algunos arreglos sugeridos.

24.3.3.1. No aparece prompt de login

Asegúrese que la terminal está conectada y encendida, asegúrese que se encuentra ejecutando un software de emulación de terminal en el puerto serie correcto.

Asegúrese que el cable está conectado firmemente tanto a la terminal como a la computadora FreeBSD. Asegúrese que es el tipo correcto de cable.

Asegúrese que la terminal y FreeBSD concuerdan en la tasa de bps y propiedades de paridad. Si tiene una terminal de desplegado de video, asegúrese que los controles de contraste y brillo estén encendidos. Si es una terminal de impresión, asegúrese que papel y tinta se encuentren en forma.

Asegúrese que un proceso getty esté corriendo y sirviendo la terminal. Por ejemplo, para obtener una lista de procesos getty con ps, teclée:

# ps -axww|grep getty

Debería ver una entrada para la terminal. Por ejemplo, el siguiente desplegado muestra que un getty está corriendo en el segundo puerto serie ttyd1 y está utilizando la entrada std.38400 en /etc/gettytab:

22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyd1

Si no hay un proceso getty corriendo, asegúrese que tiene habilitado el puerto en /etc/ttys. Recuerde también ejecutar kill -HUP 1 despues de modificar el fichero ttys.

Si el proceso getty está corriendo pero la terminal todavía no despliega un prompt de login, o si despliega un prompt pero no le permite escribir, su terminal o cable tal vez no soporte inicialización por hardware. Trate cambiar la entrada en /etc/ttys de std.38400 a 3wire.38400 recuerde correr kill -HUP 1 despues de modificar /etc/ttys. La entrada 3wire es similar a std, pero ignora la inicialización por harware. Tal vez necesite reducir la tasa de baudios o habilitar control de flujo por software cuando utilice 3wire para prevenir desbordamientos de buffer.

24.3.3.2. Si aparece basura en lugar de un prompt de login

Asegúrese que la terminal y FreeBSD concuerdan en la tasa de bps y propiedades de paridad. Revise los procesos getty para asegurarse que el tipo correcto de getty está en uso. Si no es así, edite /etc/ttys y ejecute kill -HUP 1.

24.3.3.3. Los caracteres aparecen doble; las contraseñas aparecen cuando se escriben

Cambie la terminal (o el software de emulación de terminal) de “half duplex” o “local echo” a “full duplex.”

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.