24.3. Terminales
Anterior | Capítulo 24. Comunicaciones serie | Siguiente

## 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:

- Terminales tontas

- PCs actuando como terminales

- Terminales X

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, El proceso de arranque en FreeBSD 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 "/usr/libexec/getty std.38400" wy50 on insecure ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure

| El primer campo normalmente especifica el nombre de fichero especial de la terminal como es hallado en `/dev`.
| 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.
| 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.
| 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.
| 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.”

Anterior | Subir | Siguiente
24.2. Introducción | Inicio | 24.4. Servicio dial-in

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>.