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/ttyS
N son para conexiones de entrada y
los dispositivos /dev/cua
N 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/cua
N
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.
/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*
/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.
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
.
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.