24.2. Introducción

24.2.1. Terminología

bps

Bits por segundo — la tasa a la cual los datos son transmitidos

DTE

Data Terminal Equipment (Equipo terminal de datos) — por ejemplo, su computadora

DCE

Data Communications Equipment (Equipo de comunicación de datos) — su modem

RS-232

Estándar EIA para hardware de comunicación serie

Cuando se habla de tasa de comunicación de datos, ésta sección no usa el término “baud”. Baud se refiere al número de estados de transición eléctricos que pueden realizarse en un periodo de tiempo, mientras que “bps” (bits por segundo) es el término correcto a usar (al menos parece no molestar demasiado a los más aferrados).

24.2.2. Cables y puertos

Para conectar un modem o terminal a su sistema FreeBSD necesitará un puerto serie en su computadora y el cable apropiado para conectar a su dispositivo serie. Si ya está familiarizado con su hardware y el cable que requiere, puede saltarse esta sección.

24.2.2.1. Cables

Existen diferentes tipos de cables serie. Los dos tipos más comunes para nuestros propósitos son cables null-modem y cables RS-232 estándar (“normal”). La documentación de su hardware debería describir el tipo de cable requerido.

24.2.2.1.1. Cables null-modem

Un cable null-modem pasa algunas señales, como “tierra”, normalmente, pero cambia otras señales. Por ejemplo, el pin “envío de datos” en un extremo va al pin “recepción de datos” en el otro.

Si le gusta fabricar sus propios cables, puede construir un cable null-modem para utilizar con terminales. Esta tabla muestra los nombres de señal y números de pin en un conector DB-25.

Señal Pin #   Pin # Señal
SG 7 conecta a 7 SG
TD 2 conecta a 3 RD
RD 3 conecta to 2 TD
RTS 4 conecta a 5 CTS
CTS 5 conecta a 4 RTS
DTR 20 conecta a 6 DSR
DCD 8   6 DSR
DSR 6 conecta a 20 DTR

Nota: Conectar “Data Set Ready” (DSR) y “Data Carrier Detect” (DCD) intérnamente en la capucha del conector, y entonces a “Data Terminal Ready” (DTR) en la capucha remota.

24.2.2.1.2. Cables estándard RS-232C

Un cable serie estándar pasa todas las señales RS-232C normalmente. Esto es, el pin “envío de datos” en un extremo va al pin “envío de datos” en el otro extremo. Este es el tipo de cable a utilizar para conectar un modem a su sistema FreeBSD, y también es apropiado para algunas terminales.

24.2.2.2. Puertos

Puertos serie son los dispositivos a través de los cuales los datos son transferidos entre una computadora FreeBSD y la terminal. Esta sección describe los tipos de puertos que existen y como son referidos en FreeBSD.

24.2.2.2.1. Tipos de puertos

Existen varios tipos de puertos serie. antes de comprar o construir un cable, necesita asegurarse que coincida con los puertos en su terminal y en su sistema FreeBSD.

La mayoría de las terminales tienen puertos DB25. Computadoras personales, incluyendo PCs corriendo FreeBSD, tienen puertos DB25 o DB9. Si tiene una tarjeta multipuertos serie para su PC, tal vez tenga puertos RJ-12 o RJ-45.

Vea la documentación que acompaña su hardware para las especificaciones sobre el tipo de puerto en uso. Una inspección visual del puerto también funciona en la mayoría de los casos.

24.2.2.2.2. Nombres de puerto

En FreeBSD, se accesa cada puerto serie a través de una entrada en el directorio /dev. Existen dos tipos de entradas:

  • Puertos de llamada-entrante son llamados /dev/ttydN donde N es el número de puerto, iniciando desde cero. Generalmente, los puertos de llamada-entrante se utilizan para terminales. Los puertos de llamada-entrante requieren que la línea serie especifique la señal data carrier detect (DCD) para funcionar correctamente.

  • Puertos de llamada-saliente son llamados /dev/cuaaN. Usualmente no se utilizan los puertos de llamada-saliente para terminales, solo para modems. Puede utilizar el puerto de llamada-saliente si el cable serie o la terminal no soporta la señal de carrier detect.

Si tiene conectada una terminal al primer puerto serie (COM1 en MS-DOS®), entonces usará /dev/ttyd0 para referirse a la terminal. Si la terminal está en el segundo puerto serie (también conocido como COM2), utilice /dev/ttyd1, y así sucesivamente.

24.2.3. Configuración del kernel

FreeBSD soporta cuatro puertos serie por omisión. en el mundo MS-DOS éstos son conocidos como COM1, COM2, COM3, y COM4. FreeBSD actualmente soporta tarjetas de interfaz serie “tontas”, como la BocaBoard 1008 y 2016, así como tarjetas multipuerto más inteligentes como las fabricadas por Digiboard y Stallion Technologies. De cualquier manera, el kernel por omisión solo busca por los puertos COM estándares.

Para ver si su kernel reconoce cualquiera de sus puertos serie, mire los mensajes mientras el kernel esta arrancando, o utilice el comando /sbin/dmesg para repetir los mensajes de arranque del kernel. En particular busque por mensajes que inicien con el caracter sio.

Sugerencia: Para ver solamente los mensajes que contienen la palabra sio, use el comando:

# /sbin/dmesg | grep 'sio'

Por ejemplo, en un sistema con cuatro puertos serie, éstos son los mensajes de arranque del kernel específicos de puerto serie:

sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550A

Si su kernel no reconoce todos sus puertos serie, probablemente necesitará configurar un kernel FreeBSD personalizado para su sistema. Para información detallada sobre configurar su kernel, por favor vea Capítulo 8.

Las líneas de dispositivo relevantes para su fichero de configuración del kernel podrín verse de esta manera, para FreeBSD 4.X:

device		sio0	at isa? port IO_COM1 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? port IO_COM3 irq 5
device		sio3	at isa? port IO_COM4 irq 9

y de esta manera, para FreeBSD 5.X:

device		sio

Puede comentar o remover completamente líneas de dispositivos que no tenga en el caso de FreeBSD 4.X; para FreeBSD 5.X tiene que editar su fichero /boot/device.hints para configurar sus puertos serie. Por favor diríjase a la página de manual sio(4) para mayor información sobre puertos serie y configuración de tarjetas multipuertos. Tenga cuidado si está utilizando un fichero de configuración que fué usado anteriomente para una versión diferente de FreeBSD porque las banderas de dispositivo y la sintaxis han cambiado entre versiones.

Nota: port IO_COM1 es una substitución para port 0x3f8, IO_COM2 es 0x2f8, IO_COM3 es 0x3e8, y IO_COM4 es 0x2e8, las cuales son direcciones de puerto comunes para sus respectivos puertos serie; interrupciones 4,3,5 y 9 son peticiones comunes de líneas de interrupción. Note también que puertos serie regulares no pueden compartir interrupciones en PCs con bus ISA (las tarjetas multipuerto tienen electrónicos que les permiten a los 16550A's compartir una o dos líneas de peticiones de interrupción).

24.2.4. Archivos especiales de dispositivo

La mayoría de dispositivos en el kernel son accesados a través de “ficheros especiales de dispositivo”, los cuales están localizados en el directorio /dev. Los dispositivos sio son accesados a través de los dispositivos /dev/ttydN (dial-in) y /dev/cuaaN (call-out). FreeBSD provee también dispositivos de inicialización (/dev/ttyidN y /dev/cuaiaN) y dispositivos de bloqueo (/dev/ttyldN y /dev/cualaN). Los dispotivos de inicialización son utilizados para inicializar los parámetros de comunicación de puerto cada vez que un puerto es abierto, como crtscts para modems que utilizan señalización RTS/CTS para control de flujo. Los dispositivos de bloqueo son utilizados para bloquear banderas en puertos y prevenir que usuarios o programas cambien ciertos parámetros; vea las páginas de manual termios(4), sio(4), y stty(1) para información de las propiedades de terminales, bloqueo e inicialización de dispositivos y aplicación de opciones de terminal, respectivamente.

24.2.4.1. Creando ficheros de dispositivo especiales

Nota: FreeBSD 5.0 incluye el sistema de ficheros devfs(5) el cual crea automáticamente nodos de dispositivos según se necesiten. si está corriendo una versión de FreeBSD con devfs habilitado entonces puede saltarse esta sección.

Un script de shell llamado MAKEDEV en el directorio /dev administra los ficheros especiales de dispositivo. Para utilizar MAKEDEV para crear un fichero especial de dispositivo dial-up para COM1 (port 0), cd a /dev y ejecute el comando MAKEDEV ttyd0. De la misma manera, para crear ficheros especiales de dispositivo para COM2 (port 1), utilice MAKEDEV ttyd1.

MAKEDEV no crea solamente el fichero especial de dispositivo /dev/ttydN también crea los nodos /dev/cuaaN, /dev/cuaiaN, /dev/cualaN, /dev/ttyldN, y /dev/ttyidN.

Despues de crear ficheros especiales de dispositivo nuevos, asegúrese de revisar los permisos en los ficheros (especialmente los ficheros /dev/cua*) para asegurarse que solamente los usuarios que deben tener acceso a esos ficheros especiales de dispositivo puedan leer y escribir en ellos — probablemente no desee permitir al usuario promedio utilizar sus modems para marcar al exterior. Los permisos por omisión en los ficheros /dev/cua* deberían ser suficientes:

crw-rw----    1 uucp     dialer    28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw----    1 uucp     dialer    28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw----    1 uucp     dialer    28, 193 Feb 15 14:38 /dev/cuala1

Estos permisos permiten al usuario uucp y usuarios en el grupo dialer utilizar dispositivos call-out.

24.2.5. Configuración de puerto serie

El dispositivo ttydN (o cuaaN) es el dispositivo regular que usted deseará abrir para sus aplicaciones. Cuando un proceso abre el dispositivo, tendrá un conjunto por omisión de propiedades de terminal E/S. Puede ver estas propiedades con el comando

# stty -a -f /dev/ttyd1

Cuando cambia las propiedades de este dispositivo, las propiedades son efectivas hasta que el dispositivo es cerrado. Cuando es reabierto regresa a las propiedades por omisión. Para realizar cambios al conjunto por omisión, usted puede abrir y ajustar las propiedades del dispositivo de “estado inicial” . Por ejemplo, para activar el modo CLOCAL, comunicación de 8 bits y control de flujo XON/XOFF por omisión para ttyd5, teclée:

# stty -f /dev/ttyid5 clocal cs8 ixon ixoff

La inicialización para todo el sistema de los dispositivos serie es controlada en /etc/rc.serial. Este fichero afecta las propiedades por omisión de dispositivos serie.

Para prevenir que ciertas propiedades sean cambiadas por una aplicación, haga ajustes al dispositivo “bloquear estado”. Por ejemplo, para confinar la velocidad en ttyd5 a 57600 bps, teclée:

# stty -f /dev/ttyld5 57600

Ahora, una aplicación que abra ttyd5 y trate de cambiar la velocidad del puerto se mantendrá con 57600 bps.

Naturalmente, debería crear los dispositivos de estado inicial y bloqueo de estado escribible únicamente para la cuenta root .

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