Logo de AulaDigital

Serie Como 3

Serie COMO de Linux: ¿Cuáles son los nombres de los puertos serie? Anterior Siguiente Indice

3. ¿Cuáles son los nombres de los puertos serie?

Un puerto de E/S es un modo de conseguir que los datos entren y salgan de un ordenador. Existen muchos tipos de puertos de E/S como los puertos serie, puertos paralelos, controladores de disqueteras, placas ethernet, etc. Trataremos con puertos serie ya que los módems y los terminales son dispositivos serie. Cada puerto serie debe tener una dirección de E/S, y una interrupción (IRQ).

Estos son los cuatro puertos serie correspondientes a COM1 - COM4:

 
/dev/cua0, /dev/ttyS0 (COM1) direccion 0x3f8 IRQ 4
/dev/cua1, /dev/ttyS1 (COM2) direccion 0x2f8 IRQ 3 
/dev/cua2, /dev/ttyS2 (COM3) direccion 0x3e8 IRQ 4 
/dev/cua3, /dev/ttyS3 (COM4) direccion 0x2e8 IRQ 3 

Si Linux no detecta ningún puerto serie cuando arranca, entonces asegúrese de que el soporte de comunicaciones serie está compilado y activo en el núcleo.

Los dispositivos /dev/ttySN son para conexiones de entrada y los dispositivos /dev/cuaN son para conexiones de salida. N es el número del puerto serie.

En este documento me referiré a COM1 como ttyS0, COM2 como ttyS1, COM3 como ttyS2, y COM4 como ttyS3. Si me refiero a un dispositivo específico en /dev, siempre lo precederé de /dev para evitar confusiones. Nótese que por defecto estos dispositivos tienen IRQs que se solapan. No puede usar todos los puertos con la configuración por defecto, debe reasignar IRQs diferentes. Vea la sección ¿Puedo usar más de dos dispositivos serie? para configurar las IRQs.

En algunas instalaciones se crean dos dispositivos extras, /dev/modem para el módem y /dev/mouse para el ratón. Los dos son enlaces simbólicos al dispositivo /dev/cuaN apropiado que usted especificó durante la instalación (a menos que tenga un bus mouse, entonces /dev/mouse apuntará al dispositivo del bus mouse).

Existen algunas discusiones sobre los méritos de /dev/mouse y /dev/modem. Yo estoy totalmente en contra del uso de estos enlaces. En particular, si está planeando usar su módem para recibir llamadas puede tener problemas debido a que los ficheros de bloqueo puede que no funcionen correctamente si usa /dev/modem. Úselos si lo desea, pero asegúrese de que apuntan al dispositivo correcto. Sin embargo, si mueve o borra este enlace, algunas aplicaciones (minicom por ejemplo) pueden necesitar una reconfiguración.

3.1 Números de dispositivo mayor y menor de los puertos serie en/dev

/dev/ttyS0 mayor 4, menor 64    /dev/cua0 mayor 5, menor 64
/dev/ttyS1 mayor 4, menor 65    /dev/cua1 mayor 5, menor 65
/dev/ttyS2 mayor 4, menor 66    /dev/cua2 mayor 5, menor 66
/dev/ttyS3 mayor 4, menor 67    /dev/cua3 mayor 5, menor 67

Nótese que todas las distribuciones deben traer estos dispositivos correctamente creados. Puede comprobarlo escribiendo:

linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*

Creación de dispositivos en /dev

Si le falta un dispositivo, tendrá que crearlo con el comando mknod. Por ejemplo, suponga que necesita crear un dispositivo para ttyS0:

linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64

Puede usar el script MAKEDEV, que está en /dev. Esto simplifica la creación de dispositivos. Por ejemplo, si necesita crear el dispositivo para ttyS0 puede escribir:

linux# cd /dev
linux# ./MAKEDEV ttyS0

Esto dirige la creación de dispositivos para entrada y salida, y debería establecer los permisos adecuados.

3.2 Notas sobre placas multipuerto no-inteligentes

Los dispositivos que su placa multipuerto usa dependen del tipo de placa que tenga. Estas están listadas con detalle en rc.serial que viene con el programa setserial. Recomiendo conseguir la última versión de setserial si está intentando usar placas multipuerto. Seguramente necesitará crear estos dispositivos. Puede usar el comando mknod, o el script MAKEDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + número de puerto''. Así, si quiere crear un dispositivo para ttyS17, debe escribir:

linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81

Note que ``64 + 17 = 81''. Si usa el script MAKEDEV, puede escribir:

linux# cd /dev
linux# ./MAKEDEV ttyS17

Nota: el manual SIIG en el listado de IO1812 para COM5-COM8 es erróneo. Debería ser COM5=0x250, COM6=0x258, COM7=0x260, y COM8=0x268.

Nota: El Registro de Estado de Interrupción de la Digi PC/8 es en 0x140.

Nota: para una AST Fourport, puede necesitar especificar skip_test en rc.serial.

3.3 Notas sobre placas multipuerto inteligentes

Lea la información que viene con el controlador. Estas placas usan dispositivos especiales, y no los estándar. Esta información varía dependiendo de su hardware.


Anterior Siguiente Indice