<!-- 0,1 -->
<!-- Serial,0 -->
<!-- Greg,Hankins,greg.hankins@cc.gatech.edu -->
<!-- 1.9,1997-01-02 -->
<!-- Serie -->
<!-- Jesús,Jiménez Sánchez,jesus.jimenez@writeme.com -->
<!-- 1.0,1997-06-02 -->
<!-- serie,puerto serie,módem,terminal,modem -->
<!-- Hardware,Interfaces,Serie -->

<!doctype linuxdoc system>

<article>

<title>Serie COMO de Linux

<author>por Greg Hankins, <tt><htmlurl url="mailto:greg.hankins@cc.gatech.edu"
name="greg.hankins@cc.gatech.edu"></tt> &nl; 
Traducido por Jesús Jiménez Sánchez, 
<tt><htmlurl url="mailto:jesus.jimenez@writeme.com" 
name="jesus.jimenez@writeme.com"></tt>

<DATE>v1.9, 2 Enero 1997, traducción del 2 Junio 1997

<ABSTRACT> 
Este documento describe cómo configurar los dispositivos de comunicación
serie en una máquina Linux.
</ABSTRACT>

<TOC>

<sect>Introducción
<P>

Este es el Serie COMO de Linux. Todo sobre cómo configurar módems y
terminales bajo Linux, algunos trucos de serie, y soluciones a problemas.
Este COMO está dirigido a Linux funcionando bajo un hardware basado en un
x86, aunque debe funcionar en otras arquitecturas. 

<sect1>Copyright
<P>

El Serial HOWTO de Linux es copyright (C) 1993 - 1997 de Greg Hankins. 
Los documentos HOWTO de Linux pueden ser reproducidos y distribuidos total
o parcialmente, en cualquier medio físico o electrónico, con tal que esta
nota de copyright esté en todas las copias. La redistribución comercial es
permitida y se anima a ello; de cualquier modo, al autor le <EM/gustaría/
que se le notificase este tipo de distribuciones. 

Todas las traducciones, trabajos derivados, o trabajos agregados
incorporando cualquier documento HOWTO de Linux deben estar bajo las
condiciones de esta nota de copyright. Es decir, no puede producir un
trabajo derivado de un HOWTO e imponer restricciones adicionales en su
distribución. Excepciones a estas reglas pueden ser garantizadas bajo
ciertas condiciones; por favor, contacte con el coordinador de los HOWTOs
de Linux en la dirección que se da después. 

En breve, queremos promover la diseminación de esta información a través
de todos los canales posibles. De todas maneras, deseamos retener el
copyright de los HOWTOs, y nos <EM/gustaría/ que se nos notificase
cualquier plan de redistribución de los HOWTOs. 

Para cualquier consulta, por favor, contacte con Greg Hankins, el
coordinador de los HOWTOs de Linux, en <TT><HTMLURL
URL="mailto:gregh@sunsite.unc.edu" NAME="gregh@sunsite.unc.edu"></TT> a
través del correo electrónico. 

<sect1>Nuevas versiones de este documento
<P>

Las nuevas versiones de Serial HOWTO (versión en inglés<footnote>Ver sección 
<ref id="Grupos" name="Grupos Linuxeros en España"> para las traducciones 
al Castellano</footnote>) 
se pueden conseguir en

<itemize>
<item><tt><htmlURL
url="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-HOWTO" 
NAME="ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-HOWTO"></TT>
</itemize>

y servidores espejo (<it/mirror sites/). Existen otros formatos, así como
PostScript y DVI en el directorio <TT/other-formats/. El Serial-HOWTO
también está disponible en

<itemize>
<TT><HTMLURL URL="http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html" 
NAME="http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html"></TT>
</itemize>

y se enviará a <TT><HTMLURL URL="news:comp.os.linux.answers" 
NAME="comp.os.linux.answers"></TT> mensualmente. 

<sect1>Realimentación
<P>

Por favor, envíeme cualquier pregunta, comentario, sugerencia, o material
adicional. Siempre estoy ansioso de oír lo que opinan sobre el HOWTO.
¡También estoy atento a mejoras!. Dígame exactamente qué es lo que no
entiende, o que debe aclararse. Puede contactar conmigo en <TT><HTMLURL
URL="mailto:greg.hankins@cc.gatech.edu" 
NAME="greg.hankins@cc.gatech.edu"></TT> vía email. Todas las cartas serán
contestadas, aunque puede llevarme una semana o así, dependiendo de lo
ocupado que esté. Tengo muchas cartas de <TT/root/ y sitios
desconfigurados. Por favor, envíeme el correo como una persona real, y
asegúrese de que su sistema de correo funcione, así podré contestarle. Si
no le respondo en dos semanas, por favor, vuelva a enviarme la carta de
nuevo. 

También puede contactar conmigo en:  Greg Hankins<NEWLINE> College of
Computing<NEWLINE> 801 Atlantic Drive<NEWLINE> Atlanta, GA
30332-0280<NEWLINE> a través del correo lento, y en <TT><HTMLURL
URL="http://www.cc.gatech.edu/staff/h/Greg.Hankins"
name="http://www.cc.gatech.edu/staff/h/Greg.Hankins"></tt>

Por favor, incluya el número de versión de el Serial HOWTO cuando escriba,
esta es la versión 1.9. 

<sect1>Renuncia de responsabilidad
<P>

Los resultados pueden variar. Las respuestas dadas puede que no funcionen
en todos los sistemas y con todas las configuraciones posibles. 

<sect>Hardware serie soportado
<P>

Se sabe que Linux funciona con el siguiente hardware serie.

<sect1>Placas serie normales de PC
<P>

<ITEMIZE> 
<ITEM>placas serie estándar de PC (COM1 - COM4), a los cuales los
dispositivos serie externos (módems, ratón serie, etc, ...) pueden ser
conectados. 

<ITEM>módems internos de PC estándar (COM1 - COM4)

<ITEM>Quickpath Systems Port-Folio 550e (IRQs permitidas 3, 4, 5,
      9, 10, 11, 12, y 15)
</ITEMIZE>

Nota: debido a conflictos de dirección, no puede usar COM4 y la placa de
vídeo IBM8514 simultáneamente. Esto es debido a un error en la placa
IBM8514. 

<sect1>Módems Plug and Play (PnP)
<P>

Los módems PnP funcionan con Linux. Sin embargo, recomiendo que no se usen
porque son complejos. Existen un par de cosas que puede probar: 

<ITEMIZE>
<ITEM>Intente desconectar la característica PnP en la BIOS de su
      ordenador y módem.
<ITEM>Arranque Win95, configure el módem, y vea si la configuración
      permanece cuando arranque Linux. Si no, entonces:
<ITEM>Arranque Win95, configure el módem, y entonces haga un
      <EM/arranque en caliente/ de Linux, así se preservará la
      configuración. Puede hacer esto con el cargador <TT/loadlin/.
<ITEM>Consiga las herramientas de PnP en <TT><HTMLURL 
      URL="http://www.redhat.com/linux-info/pnp" 
      NAME="http://www.redhat.com/linux-info/pnp"></TT>.
<ITEM>Y, por supuesto, puede adquirir un módem de verdad.
</ITEMIZE>

<sect1>Placas serie multipuerto no-inteligentes (con UARTs
8250/16450/16550A) 
<p>

<ITEMIZE>
<ITEM>AST FourPort y clónicas (4 puertos)
<ITEM>Accent Async-4 (4 puertos)
<ITEM>Arnet Multiport-8 (8 puertos)
<ITEM>Bell Technologies HUB6 (6 puertos)
<ITEM>Boca BB-1004 (4 puertos), BB-1008 (8 puertos), BB-2016 (16
              puertos)
<ITEM>Boca IOAT66 (6 puertos)
<ITEM>Boca 2by4 (4 puertos serie, 2 puertos paralelos)
<ITEM>Computone ValuePort V4-ISA (compatible AST FourPort)
<ITEM>Digi PC/8 (8 puertos)
<ITEM>GTEK BBS-550 (8 puertos)
<ITEM>Longshine LCS-8880, Longshine LCS-8880+ (compatible AST FourPort)
<ITEM>Moxa C104, Moxa C104+ (compatible AST FourPort)
<ITEM>PC-COMM (4 puertos)
<ITEM>SIIG I/O Expander 2S IO1812 (4 puertos)
<ITEM>STB-4COM (4 puertos)
<ITEM>Twincom ACI/550
<ITEM>Usenet Serial Board II (4 puertos)
</ITEMIZE>

En general, Linux soportará cualquier placa que use una UART 8250, 16450,
16550, 16550A (o compatible), o un módem interno que emule una de las
UARTs anteriores. 

Nota: el BB-1004 y BB-1008 no soporta líneas DCD y RI, y no se pueden usar
para recibir llamadas. Funcionan bien en otras tareas. 

<sect1>Placas serie multipuerto inteligentes
<P>

<ITEMIZE>

<ITEM>Comtrol RocketPort (36MHz ASIC; 4, 8, 16 ó 32 puertos)<NEWLINE>
contacto: <TT><HTMLURL URL="mailto:info@comtrol.com"
NAME="info@comtrol.com"></TT> o <TT><HTMLURL URL="http://www.comtrol.com"
NAME="http://www.comtrol.com"></TT><NEWLINE> estado del controlador:
soportado por Comtrol<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://tsx-11.mit.edu/pub/linux/packages/comtrol" 
NAME="ftp://tsx-11.mit.edu/pub/linux/packages/comtrol"></TT>

<ITEM>Computone IntelliPort II (16MHz 80186; 4, 8 ó 16 puertos),<NEWLINE>
IntelliPort II EXpandable (20MHz 80186; 16 - 64 puertos)<NEWLINE>
contacto: Michael H. Warfield, <TT><HTMLURL
URL="mailto:mhw@wittsend.atl.ga.us" 
NAME="mhw@wittsend.atl.ga.us"></TT><NEWLINE> estado del controlador:
pre-ALPHA

<ITEM>Cyclades Cyclom-Y (UARTs CD1400 de Cirrus Logic; 8 - 32
puertos),<NEWLINE> Cyclom-Z (25MHz MIPS R3000; 8 - 128 puertos)<NEWLINE>
contacto: <TT><HTMLURL URL="mailto:sales@cyclades.com" 
NAME="sales@cyclades.com"></TT> o <TT><HTMLURL
URL="http://www.cyclades.com"
NAME="http://www.cyclades.com"></TT><NEWLINE> estado del controlador:
soportado por Cyclades<NEWLINE>
        localización del controlador: <TT><HTMLURL
URL="ftp://ftp.cyclades.com/pub/cyclades"
NAME="ftp://ftp.cyclades.com/pub/cyclades"></TT> e incluido en el
núcleo del Linux desde la versión 1.1.75

<ITEM>Digi PC/Xi (12.5MHz 80186; 4, 8, ó 16 puertos),<NEWLINE> PC/Xe
(12.5/16MHz 80186; 2, 4, u 8 puertos),<NEWLINE> PC/Xr (16MHz IDT3041; 4 u
8 puertos),<NEWLINE> PC/Xem (20MHz IDT3051; 8 - 64 puertos)<NEWLINE>
contacto: <TT><HTMLURL URL="mailto:sales@dgii.com" 
NAME="sales@dgii.com"></TT> o <TT><HTMLURL URL="http://www.dgii.com" 
NAME="http://www.dgii.com"></TT><NEWLINE> estado del controlador:
soportado por Digi<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://ftp.dgii.com/drivers/linux" 
NAME="ftp://ftp.dgii.com/drivers/linux"></TT> e incluido en el núcleo de
Linux desde la versión 2.0

<ITEM>Digi COM/Xi (10MHz 80188; 4 u 8 puertos)<NEWLINE> contacto: Simon
Park, <TT><HTMLURL URL="mailto:si@wimpol.demon.co.uk" 
NAME="si@wimpol.demon.co.uk"></TT><NEWLINE> estado del controlador:
ALPHA<NEWLINE> nota: Simon está a menudo desconectado del correo durante
meses debido a su trabajo. Mark Hatle, <TT><HTMLURL
URL="mailto:fray@krypton.mankato.msus.edu"
NAME="fray@krypton.mankato.msus.edu"></TT> se ha ofrecido voluntario
cortésmente para tener el controlador disponible por si usted lo necesita. 

<ITEM>Equinox SuperSerial Technology (30MHz ASIC; 2 - 128
puertos)<NEWLINE> contacto: <TT><HTMLURL URL="mailto:sales@equinox.com" 
NAME="sales@equinox.com"></TT> or <TT><HTMLURL
URL="http://www.equinox.com"  NAME="http://www.equinox.com"></TT><NEWLINE>
estado del controlador: soportado por Equinox<NEWLINE> localización del
controlador: <TT><HTMLURL URL="ftp://ftp.equinox.com/library/sst"
NAME="ftp://ftp.equinox.com/library/sst"></TT>

<ITEM>GTEK Cyclone (16C654 UARTs; 6, 16 y 32 puertos),<NEWLINE> SmartCard
(24MHz Dallas DS80C320; 8 puertos),<NEWLINE> BlackBoard-8A (16C654 UARTs;
8 puertos),<NEWLINE> PCSS (15/24MHz 8032; 8 puertos)<NEWLINE> contacto:
<TT><HTMLURL URL="mailto:spot@gtek.com"  NAME="spot@gtek.com"></TT> o
<TT><HTMLURL URL="http://www.gtek.com" 
NAME="http://www.gtek.com"></TT><NEWLINE> estado del controlador:
soportado por GTEK<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://ftp.gtek.com/pub"  NAME="ftp://ftp.gtek.com/pub"></TT>

<ITEM>Hayes ESP (8 - 64 puertos)<NEWLINE> contacto: Andrew J. Robinson,
<TT><HTMLURL URL="mailto:arobinso@nyx.net"  NAME="arobinso@nyx.net"></TT>
o <TT><HTMLURL URL="http://www.nyx.net/&tilde;arobinso" 
NAME="http://www.nyx.net/&tilde;arobinso"></TT><NEWLINE> estado del
controlador: BETA<NEWLINE>
        localización del controlador: <TT><HTMLURL
URL="http://www.nyx.net/&tilde;arobinso"
NAME="http://www.nyx.net/&tilde;arobinso"></TT> e incluido en el
núcleo del Linux desde la versión 2.1.15

<ITEM>Maxpeed SS (Toshiba; 4, 8 y 16 puertos)<NEWLINE> contacto:
<TT><HTMLURL URL="mailto:info@maxpeed.com"  NAME="info@maxpeed.com"></TT>
o <TT><HTMLURL URL="http://www.maxpeed.com" 
NAME="http://www.maxpeed.com"></TT><NEWLINE> estado del controlador:
soportado por Maxpeed<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://maxpeed.com/pub/ss"  NAME="ftp://maxpeed.com/pub/ss"></TT>

<ITEM>Moxa C218 (12MHz 80286; 8 puertos),<NEWLINE> Moxa C320 (40MHz
TMS320; 8 - 32 puertos)<NEWLINE> contacto: <TT><HTMLURL
URL="mailto:info@moxa.com.tw"  NAME="info@moxa.com.tw"></TT> o
<TT><HTMLURL URL="http://www.moxa.com.tw"
NAME="http://www.moxa.com.tw"></TT><NEWLINE> estado del controlador:
soportado por Moxa<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://ftp.moxa.com.tw/drivers/c218-320/linux" 
NAME="ftp://ftp.moxa.com.tw/drivers/c218-320/linux"></TT>

<ITEM>SDL RISCom/8 (CD180 de Cirrus Logic; 8 puertos)<NEWLINE> contacto:
<TT><HTMLURL URL="sales@sdlcomm.com" NAME="sales@sdlcomm.com"></TT> or
<TT><HTMLURL URL="http://www.sdlcomm.com"
NAME="http://www.sdlcomm.com"></TT><NEWLINE> estado del controlador:
soportado por SDL<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://ftp.sdlcomm.com/pub/drivers" 
NAME="ftp://ftp.sdlcomm.com/pub/drivers"</TT>

<ITEM>Omega COMM-8 (8 puertos)<NEWLINE> contacto: Vance Petree,
<TT><HTMLURL URL="mailto:vpetree@infi.net"  NAME="vpetree@infi.net"></TT>

<ITEM>Specialix SIO (20MHz Zilog Z280; 4 - 32 puertos),<NEWLINE> XIO
(25MHz Zilog Z280; 4 - 32 puertos)<NEWLINE> contacto: Simon Allen,
<TT><HTMLURL URL="mailto:simonallen@cix.compulink.co.uk" 
NAME="simonallen@cix.compulink.co.uk"></TT><NEWLINE> estado del
controlador: BETA<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial" 
NAME="ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial"></TT>

<ITEM>Stallion EasyIO-4 (4 puertos), EasyIO-8 (8 puertos), y<NEWLINE>
EasyConnection (8 - 32 puertos) - cada uno con UARTs CD1400 de Cirrus
Logic,<NEWLINE> Stallion (8MHz 80186 CPU; 8 o 16 puertos),<NEWLINE> Brumby
(10/12 MHz 80186 CPU; 4, 8 o 16 puertos),<NEWLINE> ONboard (16MHz 80186
CPU; 4, 8, 12, 16 o 32 puertos),<NEWLINE> EasyConnection 8/64 (25MHz 80186
CPU; 8 - 64 puertos)<NEWLINE> contacto: <TT><HTMLURL
URL="mailto:sales@stallion.com"  NAME="sales@stallion.com"></TT> o
<TT><HTMLURL URL="http://www.stallion.com"
NAME="http://www.stallion.com"></TT><NEWLINE> estado del controlador:
soportado por Stallion<NEWLINE> localización del controlador: <TT><HTMLURL
URL="ftp://ftp.stallion.com/drivers/ata5/Linux" 
NAME="ftp://ftp.stallion.com/drivers/ata5/Linux"></TT> e incluido en el
núcleo del Linux desde la versión 1.3.27 </ITEMIZE> <P> Una revisión de
los productos de Comtrol, Cyclades, Digi y Stallion fue imprimida en Junio
de 1995 en la distribución de <EM/Linux Journal/. El artículo está
disponible en <TT><HTMLURL URL="http://www.ssc.com/lj/issue14"
NAME="http://www.ssc.com/lj/issue14"></TT>. 

<sect1>Hardware serie no soportado
<P>
Los módems que afirman ser ``Winmodems'', por ejemplo el USR Sporster Winmodem
e IBM Aptiva MWAVE, <EM/no/ están soportados por Linux.  Estos módems usan
diseños propietarios que requieren controladores especiales de Windows.
Evite este tipo de módems. Además, evite los módems que requieran los
controladores Rockwell RPI por las mismas razones. 

Las placas serie inteligentes que requieran controladores no disponibles
para Linux tampoco funcionarán . 

<sect>¿Cuáles son los nombres de los puertos serie?
<P>

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: 

<TSCREEN><VERB> 
/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 
</VERB></TSCREEN> 

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 <TT>/dev/ttyS</TT><EM/N/ son para conexiones de entrada y
los dispositivos <TT>/dev/cua</TT><it/N/ son para conexiones de salida.
<EM/N/ es el número del puerto serie. 

En este documento me referiré a COM1 como <TT/ttyS0/, COM2 como
<TT/ttyS1/, COM3 como <TT/ttyS2/, y COM4 como <TT/ttyS3/. Si me refiero a
un dispositivo específico en <TT>/dev</TT>, siempre lo precederé de
<TT>/dev</TT> 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 <REF ID="irqaddr" NAME="¿Puedo usar más de dos dispositivos
serie?"> para configurar las IRQs. 

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

Existen algunas discusiones sobre los méritos de <TT>/dev/mouse</TT> y
<TT>/dev/modem</TT>. Yo estoy <EM/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 <TT>/dev/modem</TT>. Úselos si lo
desea, pero <EM/asegúrese de que apuntan al dispositivo correcto/. Sin
embargo, si mueve o borra este enlace, algunas aplicaciones (<TT/minicom/
por ejemplo) pueden necesitar una reconfiguración.

<sect1>Números de dispositivo mayor y menor de los puertos serie en
<TT>/dev</TT>
<P>

<TSCREEN><VERB>
/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
</VERB></TSCREEN>

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

<TSCREEN><VERB>
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*
</VERB></TSCREEN>

<sect2>Creación de dispositivos en <TT>/dev</TT><label id="dev">
<P>

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

<TSCREEN><VERB>
linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
</VERB></TSCREEN>

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

<TSCREEN><VERB>
linux# cd /dev
linux# ./MAKEDEV ttyS0
</VERB></TSCREEN>

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

<sect1>Notas sobre placas multipuerto no-inteligentes
<P>

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

<TSCREEN><VERB>
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
</VERB></TSCREEN>

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

<TSCREEN><VERB>
linux# cd /dev
linux# ./MAKEDEV ttyS17
</VERB></TSCREEN>

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 <TT/skip_test/ en
<TT/rc.serial/. 

<sect1>Notas sobre placas multipuerto inteligentes
<P>

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. 

<sect>Programas interesantes que debería conocer

<sect1>¿Qué es <TT/getty/?
<P>

<TT/getty/ es un programa que controla el proceso de login cuando se
conecta a una máquina Unix. Puede necesitar <TT/getty/ si quiere que sea
posible llamar a su máquina Linux con un módem. No necesita <TT/getty/ si
lo único que quiere es llamar con su modem. Existen tres versiones que son
normalmente usadas con Linux: <TT/getty_ps/, <TT/mgetty/ y <TT/agetty/. La
sintaxis de estos programas difieren, así que asegúrese de comprobar que
está usando la sintaxis correcta para el <TT/getty/ que esté usando. 

<sect2>Acerca de <TT>getty_ps</TT>
<P>	

Esta versión de <TT/getty/ fue originalmente escrita por Paul Sutcliffe
 Jr., <TT>paul@devon.lns.pa.us</TT>. Muchas distribuciones vienen
con el paquete <TT/getty_ps/ instalado. El paquete <TT/getty_ps/
contiene dos programas. <TT/getty/ se usa para la consola, y
dispositivos de terminal - y <TT/uugetty/ se usa para los módems. Yo
uso esta versión de <TT/getty/, así que me concentraré en el paquete
<TT/getty_ps/ en este COMO.

<sect2>Acerca de <TT/mgetty/
<P>

<TT/mgetty/ es una versión de <TT/getty/ escrita por Gert D&ouml;ring,
<TT><HTMLURL URL="mailto:gert@greenie.muc.de" 
NAME="gert@greenie.muc.de"></TT>, para ser usada con el módem.  Además de
permitir acceso telefónico, <TT/mgetty/ también da soporte de FAX con
<TT/sendfax/, que acompaña a <TT/mgetty/. La documentación de <TT/mgetty/
es bastante buena, y no necesita ningún suplemento.  Por favor, diríjase a
ella para las instrucciones de instalación.  Puede encontrar la última
información sobre <TT/mgetty/ en <TT><HTMLURL
URL="http://www.leo.org/&tilde;doering/mgetty/" 
NAME="http://www.leo.org/&tilde;doering/mgetty/"></TT>. 

<sect2>Acerca de <TT/agetty/
<P>

<TT/agetty/ es la tercera variación de <TT/getty/. Fue originalmente
escrita por W.Z. Venema, <TT/wietse@wzv.win.tue.nl/. Es una simple, y
completamente funcional, implementación de <TT/getty/ que va mejor con las
consolas virtuales o los terminales que con los módems. 

<sect1>¿Qué es <TT/setserial/?
<P>

<TT/setserial/ es un programa que le permite ver y modificar los distintos
atributos de un dispositivo serie, incluyendo las direcciones de los
puertos, las interrupciones, y otras opciones de los puertos serie. Fue
inicialmente escrito por Rick Sladkey, y fue bastante modificado por Ted
T'so, <TT>tytso@mit.edu</TT>, que actualmente lo mantiene. Puede saber que
versión tiene ejecutando <TT/setserial/ sin argumentos. Recomiendo
conseguir la última versión de algún servidor FTP de Linux. 

Cuando su sistema Linux arranca, sólo son configurados <TT/ttyS{0-3}/,
usando las IRQs 3 y 4 por defecto. Por eso, si tiene cualquier otro puerto
serie en otras placas o si <TT/ttyS{0-3}/ tiene una IRQ no estándar,
<EM/debe/ usar este programa para configurar esos puertos serie. Para la
lista completa de opciones, consulte la página man. 

<sect>¿Cómo puedo llamar con mi módem?<label id="dialout">

<sect1>Requerimientos de hardware
<P>

Primero, asegúrese de que tiene el cable correcto. El módem requiere un
cable directo, sin pins cruzados. Cualquier tienda de informática puede
tenerlo. Asegúrese de tener el género correcto. Si está usando el puerto
serie DB25, siempre debe ser el DB25 macho. No lo confunda con el puerto
paralelo, que es el DB25 hembra. Conecte su módem a uno de los puertos
serie. Consulte el manual de su módem para saber cómo hacerlo si necesita
ayuda. 

<sect2>Notas sobre módems internos
<P>

Para un módem interno, no necesitará un cable. Un módem interno no
necesita un puerto serie, tiene uno interno. Todo lo que necesita hacer es
configurarlo para usar una interrupción que no esté siendo usada, y
configurar la dirección de E/S del puerto. Consulte el manual de su módem
si se atasca. Además, vea la sección <REF ID="irqaddr" NAME="¿Puedo usar
más de dos dispositivos serie?"> si necesita ayuda para elegir las
interrupciones y las direcciones. 

En en algunas placas madres tendrá que desconectar el puerto serie que el
módem está suplantando para evitar conflictos. Esto se puede hacer con los
puentes o en la configuración de la BIOS, dependiendo de su placa madre.
Consulte el manual de su placa madre. 

Debido a un error en la placa de vídeo IBM8514, puede tener problemas si
quiere poner su módem interno en <TT/ttyS3/. Si Linux no detecta su módem
interno en <TT/ttyS3/, puede usar <TT>setserial</TT> y el módem funcionará
bien. Los módems internos conectados en <TT/ttyS{0-2}/ no deben tener
ningún problema para ser detectados. Linux no efectúa ninguna
autoconfiguración en <TT/ttyS3/ debido a este error en la placa de vídeo. 

<sect1>Hablando con el módem
<P>

Use <TT/kermit/ o algún otro programa simple de comunicaciones para probar
la configuración, antes de meterse en programas de comunicación más
complejos. (Por razones legales, <TT/kermit/ no se distribuye en las
distribuciones comerciales. Puede encontrar la última versión de
<TT/kermit/ en <TT><HTMLURL
URL="ftp://sunsite.unc.edu/pub/Linux/apps/comm" 
NAME="ftp://sunsite.unc.edu/pub/Linux/apps/comm"></TT> y servidores
espejo). Por ejemplo, digamos que su módem está en <TT>ttyS3</TT>, y su
velocidad es 38400 bps. Puede hacer lo siguiente: 

<TSCREEN><VERB>
linux# kermit
C-Kermit 5A(188), 23 Nov 92, POSIX
Type ? or HELP for help
C-Kermit>set line /dev/cua3
C-Kermit>set speed 38400
/dev/cua3, 38400 bps
C-Kermit>c
Connecting to /dev/cua3, speed 38400.
The escape character is Ctrl-\ (ASCII 28, FS)
Type the escape character followed by C to get back,
or followed by ? to see other options.
ATV1
OK
<ctrl>-\-C
(Back at linux)
C-Kermit>quit
linux#
</VERB></TSCREEN>

Si su módem responde a los comandos <TT/AT/, puede suponer que está
funcionando correctamente en lo que respecta a Linux. Intente llamar a
otro módem. Si no le gusta <TT/kermit/, pruebe uno de los programas de
comunicaciones más avanzados. Mire en la sección <REF ID="comms"
NAME="Programas De Comunicaciones"> sobre programas de comunicaciones si
necesita una guía. 

Cuando llame con su módem, configure la velocidad a la más alta que éste
soporte. Las versiones de Linux con una versión de <TT/libc/ superior a
5.x tienen soporte para velocidades de hasta 115200 bps. <TT/libc/
normalmente está en <TT>/lib</TT>, así que mire allí para saber que versión
tiene. Si Linux no reconoce una velocidad de 57600 ó 115200 bps, entonces
debe usar el programa <TT/setserial/ para configurar el puerto serie a una
velocidad mayor.  Vea la sección <REF ID="spdhi" NAME="¿Cómo configurar el
puerto serie para velocidades altas?"> para saber cómo hacer esto.
Después, configure la velocidad a 38400 bps en el programa de
comunicaciones. 

<sect1>Configuración del módem para llamar
<P>

Si sólo va a hacer llamadas, puede configurar el módem como quiera.  Si
tiene la intención de usar el módem para recibir llamadas, <EM/debe/
configurar el módem a la misma velocidad a la que quiera que funcione
<TT/getty/. Es decir, si quiere usar <TT/getty/ a 38400 bps, ponga la
velocidad a 38400 bps cuando configure el módem. Esto se hace para
prevenir desajustes entre el ordenador y el módem. En general, la
configuración de fábrica, que activa la corrección de errores y el control
de flujo por hardware, es la mejor configuración para hacer llamadas,
consulte el manual de su módem para activar estas opciones. 

A mi me gusta ver los códigos resultantes, por eso activo <TT/Q0/ -
devuelve los códigos resultantes. Para activar esto en mi módem, tengo que
preceder el nombre de registro con el comando <TT/AT/.  Usando <TT/kermit/
u otro programa de comunicaciones, conéctelo al módem y escriba:
<TT/ATQ0/. 

También me gusta ver lo que escribo, por eso activo <TT/E1/ - activa el
eco de comandos. Si su módem tiene capacidad de compresión de datos,
probablemente quiera activarlo.  Consulte el manual de su módem para más
ayuda, y una lista de opciones completa. Si su módem puede grabar la
configuración activa, asegúrese de guardarla (se suele hacer con
<TT>AT&amp;W</TT>, pero varia entre los fabricantes de módems), si no
tendrá que configurar los registros cada vez que active el módem, o lo
reinicie. 

<sect1>Control de flujo por hardware
<P>

Si su módem soporta el control de flujo por hardware (RTS/CTS), le
recomiendo que lo use. Esto es particularmente importante para módems que
soporten la compresión de datos. Primero, tendrá que activar el control de
flujo RTS/CTS del puerto serie. Es mejor hacerlo en el arranque, en el
fichero <TT>/etc/rc.d/rc.local</TT> o <TT>/etc/rc.d/rc.serial</TT>.
¡Asegúrese de que estos ficheros son llamados desde el fichero principal
<TT/rc.sysinit/!. Necesita hacer lo siguiente para cada puerto serie en
que quiera activar el control de flujo por hardware: 

<TSCREEN><VERB>
stty crtscts < /dev/cuaN
</VERB></TSCREEN> 

También debe activar el control de flujo RTS/CTS en el módem.  Consulte el
manual de su módem para saber cómo hacerlo, ya que varía entre fabricantes
de módems. Asegúrese de guardar la configuración del módem si éste soporta
el almacenamiento del perfil. 

<sect>¿Cómo puedo llamar y recibir llamadas con mi módem usando <TT/getty_ps/?
<P>

Consiga que su módem llame correctamente. Si no ha leído la sección <REF
ID="dialout" NAME="¿Cómo puedo llamar con mi módem?">, <EM/¡léala ahora!/.
Contiene información de configuración <EM/muy/ importante. No necesita
leer esta sección si lo único que quiere hacer es llamar con el módem. 

<sect1>Configuración del módem para llamar y recibir llamadas
<P>

Para llamar y recibir llamadas, <EM/tiene/ que configurar el módem de un
cierto modo (de nuevo, usando los comandos <TT/AT/ del módem): 

<TSCREEN><VERB>
E1	activa el eco de comandos
Q0	devuelve los codigos resultantes
V1	habilita el codigo de resultados largos (texto)
S0=0	nunca contesta (uugetty hace esto con la opcion WAITFOR)
</VERB></TSCREEN>›

Si no configura esto correctamente, la cadena <TT/INIT/ de su fichero de
configuración puede fallar, echando a perder el proceso completo.  Pero,
más sobre ficheros de configuración después ... 

<TSCREEN><VERB>
&ero;C1	DCD se activa solamente despues de conectar
&ero;S0	DSR siempre esta activo
DTR activa/desactiva el reinicio del modem (depende del fabricante - RTFM)
</VERB></TSCREEN>

Esto afecta a lo que hace su módem cuando inicia o finaliza una llamada. 

Si su módem no puede almacenar el perfil, puede usar la cadena <TT/INIT/
de su fichero de configuración. Véalo más adelante.  Algunos módems tienen
interruptores DIP que afectan a la configuración de los registros.
Asegúrese de que estén configurados correctamente. 

He iniciado una colección de configuraciones para diferentes tipos de
módems. Hasta ahora sólo tengo unos pocos, si desea enviarme una
configuración que funcione, por favor, ¡hágalo!.  Puede conseguirla en
<TT><HTMLURL URL="ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs" 
NAME="ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs"></TT>. 

Nota: para conseguir que mi módem USR Courier V.34 se reinicie
correctamente cuando se desactiva el DTR, he tenido que activar
<TT/&amp;D2/ y <TT/S13=1/ (esto activa el bit 0 del registro S13).  Se ha
confirmado que esto funciona igualmente en módems USR Sportster V.34. 

Nota: algunos módems Supra tratan el DCD de modo diferente a otros módems.
Si está usando un Supra, pruebe a poner <TT/&amp;C0/ y <EM/no/
<TT/&amp;C1/. También debe poner <TT/&amp;D2/ para manejar el DTR
correctamente. 

<sect1>Instalación de <TT>getty_ps</TT>
<P>

Consiga la última versión en <TT><HTMLURL
URL="ftp://sunsite.unc.edu:/pub/Linux/system/Serial" 
NAME="sunsite.unc.edu:/pub/Linux/system/Serial"></TT>.  Por defecto,
<TT/getty_ps/ se configura para usar la norma FSSTND (<bf/F/ile<bf/S/ystem
<bf/ST/a<bf/ND/ard) de Linux, lo cual significa que los binarios estarán
en <TT>/sbin</TT>, y los ficheros de configuración se llamarán
<TT>/etc/conf.{uu}getty.ttyS</TT><EM/N/.  ¡Esto no está claro en la
documentación!. También se espera que los ficheros de bloqueo estén en
<TT>/var/lock</TT>. Asegúrese de que existe el directorio
<TT>/var/lock</TT>. 

Si no quiere usar la norma FSSTND, los binarios pueden ir en
<TT>/etc</TT>, los ficheros de configuración pueden ir en
<TT>/etc/default/{uu}getty.ttyS</TT><EM/N/, y los ficheros de bloqueo
pueden ir en <TT>/usr/spool/uucp</TT>. Recomiendo hacer las cosas de esto
modo si está usando UUCP, porque UUCP puede tener problemas si mueve los
ficheros de bloqueo a donde no los busca. 

<TT/getty_ps/ también puede usar <TT/syslogd/ para guardar los mensajes.
Vea las páginas man de <TT/syslogd(1)/ y <TT/syslog.conf(5)/ para
configurar <TT/syslogd/, si no lo tiene funcionando todavía. Los mensajes
se guardan con prioridad LOG_AUTH, los errores usan LOG_ERR, y la
depuración usa LOG_DEBUG. Si no quiere usar <TT/syslogd/ puede editar
<TT/tune.h/ en los ficheros fuente de <TT/getty_ps/ para usar otro fichero
de almacenamiento en su lugar, llamado <TT>/var/adm/getty.log</TT> por
defecto. 

Decida si quiere usar la norma FSSTND y la capacidad syslog. También puede
elegir una combinación de ambos. Edite los ficheros <TT/Makefile/,
<TT/tune.h/ y <TT/config.h/ para reflejar sus decisiones. Después compile
e instale siguiendo las instrucciones incluidas en el paquete. 

A partir de este punto, todas las referencias a <TT/getty_ps/ se referirán
a <TT/getty_ps/. Las referencias a <TT/uugetty/ se referirán a
<TT/uugetty/ que viene con el paquete <TT/getty_ps/.  Estas instrucciones
no funcionarán en <TT/mgetty/ o <TT/agetty/. 

<sect1>Configurando <TT/uugetty/
<P>

Para recibir llamadas y llamar con su módem, vamos a usar <TT/uugetty/.
<TT/uugetty/ hace importantes comprobaciones de los ficheros de bloqueo.
Actualice <TT>/etc/gettydefs</TT> para incluir las entradas de los módems
si todavía no están allí (nótese que cada entrada apunta a otra, esto no
es para velocidades fijas - las líneas en blanco son necesarias entre cada
entrada): 

<TSCREEN><VERB>
# Entradas del modem
38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200

19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600

9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400

2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #1200

1200# B1200 CS8 # B1200 SANE -ISTRIP HUPCL #@S @L @B login: #300

300# B300 CS8 # B300 SANE -ISTRIP HUPCL #@S @L @B login: #38400
</VERB></TSCREEN>

Si tiene un módem de 9600 bps o más rápido con compresión de datos, puede
bloquear la velocidad del puerto serie y permitir que el módem controle
las transiciones a otras velocidades. Entonces, en vez de la serie
descendente de líneas listadas antes, <TT>/etc/gettydefs</TT> sólo
necesita contener una línea para el módem: 

<TSCREEN><VERB>
# velocidad fijada a 38400
F38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #F38400

# velocidad fijada a 19200
F19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #F19200

# velocidad fijada a 9600
F9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #F9600
</VERB></TSCREEN>

Si tiene configurado su modem con control de flujo por hardware RTS/CTS,
puede añadir <TT/CRTSCTS/ a las entradas: 

<TSCREEN><VERB>
# velocidad fijada a 38400 con control de flujo por hardware
F38400# B38400 CS8 CRTSCTS # B38400 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F38400

# velocidad fijada a 19200 con control de flujo por hardware
F19200# B19200 CS8 CRTSCTS # B19200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F19200

F9600# B9600 CS8 CRTSCTS # B9600 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F9600
</VERB></TSCREEN>

Si quiere, puede hacer que <TT/uugetty/ escriba cosas interesantes en el
mensaje de login. En los ejemplos, tenemos el nombre del sistema, la línea
serie, y la velocidad actual en bps. Puede añadir otras cosas: 

<TSCREEN><VERB>
       @B    Velocidad actual en bps (calculada en el momento que se lee @B).
       @D    Fecha actual, en MM/DD/AA.
       @L    Linea serie a la cual está conectado getty.
       @S    Nombre del sistema.
       @T    Hora actual, en HH:MM:SS (24 horas).
       @U    Numero de usuarios actualmente conectados. Esto es, el numero
             de entradas en el fichero /etc/utmp que tienen un campo ut_name
             no nulo.
       @V    Valor de VERSION, dado en el fichero de opciones por defecto.
       Para que se vea el carácter '@', use '\@' o '@@'.
</VERB></TSCREEN>

Después, asegúrese de que tiene un dispositivo de entrada y otro de salida
para el puerto serie en que esté el módem. Si tiene el módem en
<TT/ttyS3/, necesitará los dispositivos <TT>/dev/cua3</TT> y
<TT>/dev/ttyS3</TT>. Si no tiene los dispositivos adecuados, vea la
sección <REF ID="dev" NAME="Creación De Dispositivos En <TT>/dev</TT>">
para saber como crearlos. 

<sect1><TT/uugety/ a medida
<P>

Existen un montón de parámetros que puede configurar para cada puerto.
Están implementados en distintos ficheros de configuración para cada
puerto. El fichero <TT>/etc/conf.uugetty</TT> será usado por <EM/cada/
ejecución de <TT/uugetty/, y <TT>/etc/conf.uugetty.ttyS</TT><EM/N/ será
usado solamente para ese puerto. Se pueden encontrar ejemplos de ficheros
de configuración por defecto en los ficheros fuentes de <TT/getty/, que
viene con la mayoría de las distribuciones de Linux. Debido a lo que
ocupan, no lo vamos a listar aquí. Nótese que si está usando una versión
antigua de <TT/getty/ (anterior a la 2.0.7e), o no está usando FSSTND,
entonces el fichero por defecto debe ser
<TT>/etc/default/uugetty.ttyS</TT><EM/N/. Mi fichero
<TT>/etc/conf.uugetty.ttyS3</TT> es como sigue: 

<TSCREEN><VERB>
# ejemplo de fichero de configuracion de uugetty para un modem compatible 
# Hayes para permitir las conexiones a traves de módem 
# 
# fichero de bloqueo alternativo a comprobar ... si este fichero de bloqueo
# existe, entonces uugetty se ejecuta de nuevo y el modem se reinicia
ALTLOCK=cua3
ALTLINE=cua3
# línea a inicializar
INITLINE=cua3
# tiempo para desconectar si está inactivo ...
TIMEOUT=60
# cadena de inicializacion del modem ...
# formato: <esperado> <enviado> ... (secuencia de chat)
INIT="" AT\r OK\r\n
WAITFOR=RING
CONNECT="" ATA\r CONNECT\s\A
# esta linea configura el tiempo de espera antes de enviar el mensaje de login
DELAY=1
#DEBUG=010
</VERB></TSCREEN>

Añada la siguiente línea a <TT>/etc/inittab</TT>, así <TT/uugetty/ se
ejecutará en el puerto serie (sustituyéndolo por la información correcta
para su entorno - localización del fichero de configuración, puerto,
velocidad, y tipo de terminal por defecto): 

<TSCREEN><VERB>
S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F38400 vt100
</VERB></TSCREEN>

Vuelva a ejecutar <TT/init/: 

<TSCREEN><VERB>
linux# init q 
</VERB></TSCREEN>

En el parámetro de velocidad de <TT>/etc/inittab</TT>, debe poner la
velocidad en bps más alta que soporte su módem. Ya que <TT/uugetty/ no
soporta velocidades de 57600 ó 115200 bps, debe usar el programa
<TT>setserial</TT> para configurar el puerto serie a una velocidad
superior. Vea la sección <REF ID="spdhi" NAME="¿Cómo puedo configurar el
puerto serie para velocidades altas?"> para saber cómo hacer esto.
Entonces, ponga 38400 bps en <TT>/etc/inittab</TT>. 

Ahora Linux vigilará el puerto serie por posibles conexiones.  Llame desde
otro sitio y conéctese a su sistema Linux. 

<P>

<TT/uugetty/ tiene muchas opciones, vea la página man de <TT/getty(1m)/
para una descripción completa. Además de otras cosas hay una
característica de planificación y otra de rellamada. 

<sect>¿Cómo puedo tener un terminal conectado a mi PC?
<P>

Las instrucciones de esta sección sirven para la conexión de terminales,
así como otros ordenadores a un puerto serie de su sistema Linux. 

<sect1>Hardware requerido
<P>

Asegúrese de tener el cable correcto. Un cable de módem nulo comprado en
cualquier tienda de informática puede valer. ¡Pero debe ser un cable de
<EM/modem nulo/!. Muchas tiendas de informática venden este tipo de cable
como cable serie de impresora. Asegúrese de estar usando el puerto serie,
el DB25 o el DB9 macho, y no el puerto paralelo (DB25 hembra o
Centronics). 

Para un conector DB25, necesita como mínimo:

<VERB>
DB25 macho en el PC			DB25 en el Terminal
TxD   Transmision de datos  2 --> 3	RxD   Recepcion de datos
RxD   Recepcion de datos    3 <-- 2	TxD   Transmision de datos
SG    Tierra		    7 --- 7	SG    Tierra
</VERB>

Si quiere tener señales de sincronización del hardware, debe tener
un cable completo de módem nulo:

<VERB>
DB25 macho del PC			DB25 del terminal
TxD  Transmision de datos   2 --> 3	RxD  Recepcion de datos
RxD  Recepcion de datos     3 <-- 2	TxD  Transmision de datos
RTS  Peticion de envio      4 --> 5	CTS  Listo para envio
CTS  Listo para envio       5 <-- 4	RTS  Peticion de envio
DSR  Modem listo	    6
			    |
DCD  Deteccion de portadora 8 <-- 20	DTR  Terminal listo
SG   Tierra		    7 --- 7     SG   Tierra
				  6	DSR  Modem listo
				  |
DTR  Terminal listo	   20 --> 8	DCD  Deteccion de portadora
</VERB>

Si tiene un conector DB9 en el puerto serie, intente lo siguiente:

<VERB>
DB9 del PC				DB25 del terminal
RxD  Recepcion de datos     2 <-- 2	TxD  Transmision de datos
TxD  Transmision de datos   3 --> 3	RxD  Recepcion de datos
SG   Tierra 		    5 --- 7	SG   Tierra
</VERB>

Alternativamente, un cable completo DB9-DB25 de módem nulo:

<VERB>
DB9 del PC				DB25 del terminal
RxD  Recepcion de datos     2 <-- 2	TxD  Transmision de datos
TxD  Transmision de datos   3 --> 3	RxD  Recepcion de datos
				  6	DSR  Modem listo
				  |
DTR  Terminal listo	    4 --> 8	DCD  Deteccion de portadora
GND  Tierra		    5 --- 7	GND  Tierra
DCD  Deteccion de portadora 1
			    |
DSR  Modem listo	    6 <-- 20	DTR  Terminal listo
RTS  Peticion de envio	    7 --> 5	CTS  Listo para envio
CTS  Listo para envio	    8 <-- 4	RTS  Peticion de envio
(RI  Indicador de llamada   9, no se necesita)
</VERB>

(Efectivamente, ¡los pins 2 y 3 <EM/realmente/ tienen significados
opuestos en los conectores DB9 a los que tienen en los conectores DB25!)

Si no está usando un cable completo de módem nulo, deberá hacer el
siguiente truco: en la parte del conector que va al ordenador, conecte
juntos RTS y CTS, y además conecte juntos DSR, DCD y DTR. De este modo,
cuando el ordenador busque una cierta señal de sincronismo, la cogerá (de
él mismo). 

Ahora que tiene el tipo de cable adecuado, conecte el terminal al
ordenador. Si puede, dígale al terminal que ignore las señales de control
de módem. Pruebe a configurar el terminal a 9600 bps, 8 bits de datos, 1
bit de parada y sin bit de paridad. 

<sect1>Configurando <TT/getty/
<P>

Añada las siguientes entradas en <TT>/etc/gettydefs</TT> para usar
<TT/getty/ en su terminal, si todavía no están allí: 

<TSCREEN><VERB>
# Entrada para un terminal no-inteligente a 38400 bps
DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400

# Entrada para un terminal no-inteligente a 19200 bps
DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200

# Entrada para un terminal no-inteligente a 9600 bps
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600
</VERB></TSCREEN>

Si lo desea, puede hacer que <TT/getty/ imprima cosas interesantes en el
mensaje de login. En los ejemplos, imprime el nombre del sistema y la línea
serie. Puede añadir más cosas: 

<TSCREEN><VERB>
@B    Velocidad actual en bps (calculada en el momento que se lee @B).
@D    Fecha actual, en MM/DD/AA.
@L    Linea serie a la cual esta conectado getty.
@S    Nombre del sistema.
@T    Hora actual, en HH:MM:SS (24 horas).
@U    Numero de usuarios actualmente conectados. Esto es, el numero
      de entradas en el fichero /etc/utmp que tienen un campo ut_name
      no nulo.
@V    Valor de VERSION, dado en el fichero de opciones por defecto.
Para que se vea el caracter '@', use '\@' o '@@'.

</VERB></TSCREEN>

Asegúrese de que no existe un fichero de configuración de <TT/getty/ o
<TT/uugetty/ para el puerto serie al que está conectado el terminal
(<TT>/etc/default/{uu}getty.ttyS</TT><EM/N/ o
<TT>/etc/conf.{uu}getty.ttyS</TT><EM/N/), ya que probablemente esto
interferirá si ejecuta <TT/getty/ en un terminal. Borre el fichero si
existe. 

Edite el fichero <TT>/etc/inittab</TT> para ejecutar <TT/getty/ en un
puerto serie (substituya la información por la correcta para su entorno -
puerto, velocidad, y tipo de terminal por defecto): 

<TSCREEN><VERB>
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100
</VERB></TSCREEN>

Vuelva a ejecutar <TT/init/:

<TSCREEN><VERB>
linux# init q 
</VERB></TSCREEN>

Ahora, debería estar viendo una petición de login en el terminal.  Debe
pulsar return para conseguir la atención del terminal. 

<sect1>Notas sobre cómo configurar un PC como terminal
<P>
	
Mucha gente configura otros PCs como terminales conectados a un sistema
Linux. Por ejemplo, un viejo 8088 u 80286 es perfecto para este propósito.
Todo lo que necesita es un disco de arranque de DOS que contenga una
versión de DOS apropiada para un terminal-PC, y un programa de
comunicaciones para ejecutar en el terminal-PC. 

<TT/kermit/ funciona muy bien para esto. Puede encontrar versiones
precompiladas de <TT/kermit/ para casi todos los SO que existen en
<TT><HTMLURL URL="ftp://watsun.cc.columbia.edu/pub/ftp/kermit" 
NAME="ftp://watsun.cc.columbia.edu/pub/ftp/kermit"></TT>. Otros programas
de comunicaciones populares de DOS, como <TT/Telix/ y <TT/procomm/
funcionan igual de bien. Asegúrese de introducir la información del puerto
serie en la configuración de comunicaciones del terminal-PC. 

<sect>¿Puedo usar más de dos dispositivos serie?<label id="irqaddr">
<P>

No necesita leer esta sección, a menos que quiera usar tres o más
dispositivos serie... (suponiendo que tiene una placa multipuerto). 

Suponiendo que tiene otro puerto serie sin usar, sí, puede. El número de
puertos serie que puede usar está limitado por el número de interrupciones
(IRQs) y direcciones de puertos de E/S que tengamos disponibles. Esto no
es una limitación de Linux, es una limitación del bus del PC. Cada
dispositivo serie debe tener asignado una interrupción propia y una
dirección. Un dispositivo serie puede ser un puerto serie, un módem
interno, o una placa serie multipuerto. 

Las placas serie multipuerto están especialmente diseñadas para tener
múltiples puertos serie que comparten la misma IRQ. Linux obtiene los
datos de ellos usando una dirección de E/S para cada puerto de la placa. 

<sect1>Eligiendo las interrupciones de los dispositivos serie
<P>

El PC normalmente viene con <TT/ttyS0/ y <TT/ttyS2/ en la IRQ 4, y
<TT/ttyS1/ y <TT/ttyS4/ en la IRQ 3. Puede saber que IRQs están usándose
viendo <TT>/proc/interrupts</TT>. Para usar más de dos dispositivos serie,
debe reasignar las interrupciones. Una buena elección es reasignar una
interrupción del puerto paralelo. El PC normalmente viene con IRQ 5 e IRQ
7 configuradas como interrupciones para los puertos paralelos, pero poca
gente usa dos puertos paralelos. Puede reasignar una de las interrupciones
a un dispositivo serie, y aún usar felizmente un puerto paralelo. 
Necesitará el programa <TT/setserial/ para hacer esto. Además, tendrá que
jugar con los puentes de su placa, vea los documentos de su placa. Ponga
los puentes para la IRQ que quiera para cada puerto. 

Necesitará configurar algunas cosas, ya que hay una, y solamente una
interrupción para cada dispositivo serie. Así es como tengo mi
configuración en <TT>/etc/rc.d/rc.local</TT> - debe hacerlo donde quiera
que tenga su fichero de inicialización: 

<TSCREEN><VERB>
/sbin/setserial /dev/cua0 irq 3	     # mi raton serie
/sbin/setserial /dev/cua1 irq 4	     # mi terminal Wyse no-inteligente
/sbin/setserial /dev/cua2 irq 5	     # mi modem Zoom
/sbin/setserial /dev/cua3 irq 9	     # mi modem USR
</VERB></TSCREEN>

Asignación estándar de IRQ:

<VERB>
              IRQ  0    Reloj en el canal 0
              IRQ  1    Teclado
              IRQ  2    Cascada para el controlador 2 
              IRQ  3    Puerto serie 2
              IRQ  4    Puerto serie 1
              IRQ  5    Puerto paralelo 2
              IRQ  6    Disquetera
              IRQ  7    Puerto paralelo 1
              IRQ  8    Reloj de tiempo real (24 horas)
              IRQ  9    Redireccionada a IRQ 2
              IRQ 10    no asignada
              IRQ 11	no asignada
              IRQ 12	no asignada
              IRQ 13    Coprocesador matematico
              IRQ 14    Controlador de disco duro 1
              IRQ 15    Controlador de disco duro 2
</VERB>
<P>

No existen realmente un Modo Correcto de hacer las cosas cuando se eligen
las interrupciones. Sólo asegúrese de que no las está usando la placa
madre, o cualquier otra placa. 2, 3, 4, 5, ó 7 son buenas elecciones. 
``no asignada'' significa que actualmente nada estándar usa estas IRQs.
Nótese también que la IRQ 2 es la misma que la IRQ 9. Puede llamarlo 2 ó
9, el controlador serie lo entenderá. Si tiene una placa serie con un
conector de 16 bits, también puede usar las IRQ 10, 11, 12 ó 15.  

¡Sólo asegúrese de no usar las IRQs 0, 1, 6, 8, 13 ó 14!. Estas son usadas
por la placa madre. La hará muy desgraciada si coge sus IRQs. Cuando lo
haga, compruebe otra vez <TT>/proc/interrupts</TT> y asegúrese de que no
haya conflictos. 

<sect1>Configurando las direcciones de los dispositivos serie
<P>

El siguiente paso es configurar la dirección del puerto. Vea el manual de
su placa para configurar los puentes. Como las interrupciones, puede haber
sólo un dispositivo serie en cada dirección. Los puertos suelen venir
configurados de la siguiente manera: 

<TSCREEN><VERB>
ttyS0 direccion 0x3f8
ttyS1 direccion 0x2f8
ttyS2 direccion 0x3e8
ttyS3 direccion 0x2e8
</VERB></TSCREEN>

Elija la dirección que desee para cada dispositivo serie que tenga y
configure los puentes en concordancia. Tengo mi módem en <TT/ttyS3/, el
ratón en <TT>ttyS0</TT>, y el terminal en <TT/ttyS2/. 

Cuando arranque de nuevo, Linux debería ver los puertos serie en las
direcciones en las que lo ha definido. La IRQ que Linux ve puede que no
corresponda a la IRQ que ha configurado con los puentes. No se preocupe
por esto. Linux no hace ninguna detección de IRQ mientras arranca, porque
la detección de IRQ no es fiable y puede ser falsa. Use <TT/setserial/
para decirle a Linux que IRQ está usando el puerto. Puede ver
<TT>/proc/ioports</TT> para saber que direcciones del puerto de E/S está
usando Linux después de arrancar. 

<sect>¿Cómo puedo configurar el puerto serie para velocidades altas? ¿qué
velocidad debo usar con mi módem?<label id="spdhi">
<P>

Esta sección le ayudará a calcular la velocidad a usar cuando use su módem
con un programa de comunicaciones, o con un programa <TT/getty/. 

<ITEMIZE>

<ITEM>Si tiene algo más lento que un módem de 9600 bps (V.32), configure
la velocidad a la más alta que su módem soporte. Por ejemplo 300 bps
(V.21/Bell 103), 1200 bps (V.22/Bell 212A), ó 2400 bps (V.22bis). 

<ITEM>Si tiene un módem de 9600 bps (V.32), con compresión de datos
V.42bis, ponga la velocidad a 38400 bps .  La compresión V.42bis tiene una
velocidad <EM/teórica/ de 4:1, es decir ``4 * 9600 = 38400''. 

<ITEM>Si tiene un módem de 14400 bps (V.32bis), con compresión de datos
V.42bis, use <TT/setserial/ con el parámetro <TT/spd_hi/ para configurar
el puerto serie a 57600 bps (4 * 14400 = 57600). 

Use el parámetro <TT/spd_hi/ si tiene un módem a 28800 ó 33600 bps (V.FC o
V.34) (4 * 28800 = 115200). 

Después, use la velocidad de 38400 bps en su programa de comunicaciones, o
en <TT>/etc/inittab</TT>. Esta es ahora la velocidad más alta que ha
configurado. Asegúrese de tener UARTs 16550A. 

Si su versión de libc es por lo menos 5.x, debe haber velocidades llamadas
57600 y 115200. <TT/libc/ está en <TT>/lib</TT>, así que mire allí para
saber que versión tiene. Puede usar esto directamente (sin usar
<TT/setserial/), si sus aplicaciones han sido compiladas para usarlas.
Existen muchas distribuciones por ahí, así que lo mejor que puede hacer es
probar las velocidades más altas si tiene una versión reciente de una
distribución Linux. 
</ITEMIZE>

Compruebe primero la configuración de <TT/setserial/ en la línea de
comandos, y después cuando esté funcionando, póngalo en
<TT>/etc/rc.d/rc.serial</TT> o <TT>/etc/rc.d/rc.local</TT>, yo he puesto
<TT/ttyS3/ a 115200 bps escribiendo: 

<TSCREEN><VERB>
/sbin/setserial /dev/cua3 spd_vhi
</VERB></TSCREEN>

Asegúrese de estar usando un path válido para <TT/setserial/, y un nombre
válido para el dispositivo. Puede comprobar la configuración de un puerto
serie ejecutando: 

<TSCREEN><VERB>
setserial -a /dev/cuaN
</VERB></TSCREEN>

<sect>Programas de comunicaciones y utilidades<label id="comms">
<P>

Una vez que todo esté funcionando, puede querer echar un vistazo a
programas más avanzados. Todos están asequibles en los servidores
habituales de FTP, si no vienen ya con su distribución. 

<ITEMIZE>
<ITEM><TT/ecu/ - un programa de comunicaciones
<ITEM><TT/minicom/ - programa de comunicaciones parecido a <TT/telix/
<ITEM><TT/procomm/ - programa de comunicaciones con zmodem parecido a <TT/procomm/
<ITEM><TT/seyon/ - programa de comunicaciones basado en X
<ITEM><TT/xc/ - paquete de comunicaciones xcomm
</ITEMIZE>

Estos programas ofrecen más herramientas que <TT/kermit/ solo, incluyendo
agenda telefónica, auto-marcado y cosas por el estilo. 

<ITEMIZE>

<ITEM>Otros programas muy útiles son <TT/term/ y <TT/SLirP/. Ofrecen
funcionalidad TCP/IP usando una cuenta de la shell. 

<ITEM><TT/screen/ es otro programa multi-sesión. Se comporta igual que las
consolas virtuales. 

<ITEM><TT/callback/ es un programa que hace que su módem le llame al lugar
de donde usted le ha llamado. 

<ITEM><TT/getty+fax/ controla las cosas del FAX, y provee un <TT/getty/
alternativo. 

<ITEM><TT/ZyXEL/ es un programa de control para los módems ZyXEL U-1496.
Controla las llamadas entrantes, llamadas de respuesta de seguridad,
enviar FAX, y funciones de buzón de voz. 

<ITEM>El software de SLIP y PPP se puede encontrar en <TT><HTMLURL
URL="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial" 
NAME="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial"></TT>. 

<ITEM>Se puede encontrar otras cosas en <TT><HTMLURL
URL="ftp://sunsite.unc.edu/pub/Linux/system/Serial" 
NAME="ftp://sunsite.unc.edu/pub/Linux/system/Serial"></TT> y <TT><HTMLURL
URL="ftp://sunsite.unc.edu/pub/Linux/apps/comm" 
NAME="ftp://sunsite.unc.edu/pub/Linux/apps/comm"></TT> o uno de los muchos
servidores espejo. Estos son los directorios donde se están manteniendo
los programas serie. 

</ITEMIZE>

<sect>Trucos serie y misceláneas
<P> 

Aquí vienen algunos trucos serie que puede encontrar útiles ...

<sect1><TT/kermit y zmodem/
<P>

Para usar zmodem con <TT/kermit/, añada lo siguiente a <TT/.kermc/: 

<TSCREEN><VERB>
define rz !rz < /dev/cuaN > /dev/cuaN
define sz !sz \%0 > /dev/cuaN < /dev/cuaN
</VERB></TSCREEN>

Asegúrese de poner el puerto correcto en el que está el módem.  Después,
para usarlo, solamente escriba <TT/rz/ o <TT>sz
&lt;nombre_de_fichero&gt;</TT> en la línea de comandos de <TT/kermit/. 

<sect1>Activando los tipos de terminal automágicamente
<P>

Para activar automágicamente un tipo de terminal cuando se conecte,
añádalo al fichero <TT>/etc/inittab</TT>. Si tengo un terminal vt100 en
<TT/ttyS1/, debo añadir ``vt100'' al comando <TT/getty/: 

<TSCREEN><VERB>
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100
</VERB></TSCREEN>

También puede conseguir <TT/tset/ en <TT><HTMLURL
URL="ftp://sunsite.unc.edu:/pub/Linux/system/Terminal-management" 
NAME="ftp://sunsite.unc.edu:/pub/Linux/system/Terminal-management"></TT> o
en un servidor espejo. Vea los documentos que vienen con <TT/tset/ para
aprender como usarlo. <TT/tset/ puede establecer las características de un
terminal cuando usted se conecte, y no depende de ninguna opción por
defecto. 

<sect1><TT/ls/ en color en conexiones serie
<P>

Si <TT/ls/ está causando problemas en la emulación del terminal con la
opción de color, desconéctela. <TT/ls --color/, y <TT/ls --colour/ usan
las características de color. Algunas instalaciones tienen <TT/ls/
preparado para usar el color por defecto. Busque en <TT>/etc/profile</TT>
y <TT>/etc/csh.cshrc</TT> alias de <TT/ls/.  También puede ponerle el
alias <TT/ls --no-color/ a <TT/ls/, si no quiere cambiar la configuración
por defecto del sistema. 

<sect1>Imprimiendo en una impresora conectada a un terminal
<P>	

Hay un programa llamado <TT/vtprint/ que hace esto, escrito por Garrett
D'Amore, <TT>garrett@sdsu.edu</TT>. Está disponible en <TT><HTMLURL
URL="ftp://ftp.sdsu.edu/pub/vtprint" 
NAME="ftp://ftp.sdsu.edu/pub/vtprint"></TT>, y en <TT><HTMLURL
URL="http://www.sdsu.edu/&tilde;garrett" 
NAME="http://www.sdsu.edu/&tilde;garrett"></TT>. Lo siguiente ha sido
extraído del fichero <TT/README/ que viene con el programa: 

<quote>
vtprint es un programa que permite a los usuarios imprimir desde un
anfitrión Unix remoto a una impresora conectada a un terminal local o
emulador, lo cual es perfecto para imprimir ficheros en casa, etc. (Sólo
con ficheros de texto, creo.) 
</quote>

<sect1>¿Puede linux configurar los dispositivos serie automágicamente?
<P>

Sí. Para conseguir que Linux detecte y configure los dispositivos serie
automáticamente al arrancar, añada la línea: 

<TSCREEN><VERB>
/sbin/setserial /dev/cuaN auto_irq skip_test autoconfig
</VERB></TSCREEN>

al fichero <TT>/etc/rc.d/rc.local</TT> o <TT>/etc/rc.d/rc.serial</TT>. 
Haga esto para cada puerto serie que quiera que se autoconfigure. 
Asegúrese de poner un nombre de dispositivo que realmente exista en su
máquina. 

<sect2>Notas sobre placas multipuerto
<P>

Para direcciones de placas, e IRQs, mire en <TT/rc.serial/ que viene con
el programa <TT/setserial/. Trae muchos detalles sobre placas multipuerto,
incluyendo las direcciones de E/S y los nombres de los dispositivos. 

<sect>Un paso más ...
<P>

Esta sección no necesita ser leída, pero puede ayudarle a comprender algo
mejor el Unix, y el mundo de las telecomunicaciones. 

<sect1>¿Qué son los ficheros de bloqueo?
<P>

Un fichero de bloqueo es simplemente un fichero que dice que dispositivo
se está usando. Están en <TT>/usr/spool/uucp</TT>, o <TT>/var/lock</TT>.
Los ficheros de bloqueo en Linux se llaman <TT/LCK../<EM/nombre/, donde
<EM/nombre/ puede ser un nombre de dispositivo, o un nombre de un sitio
UUCP. Ciertos procesos crean estos bloqueos para así poder tener acceso
exclusivo a un dispositivo, por ejemplo, si llama con su módem, aparecerá
un bloqueo para que otros procesos sepan que alguien está usando
actualmente el módem. Los bloqueos principalmente contienen el PID del
proceso que tiene bloqueado el dispositivo. Muchos programas comprueban si
un dispositivo está bloqueado, e intentan determinar si ese bloqueo es
todavía válido buscando en la tabla de procesos el que tiene bloqueado el
dispositivo. Si el bloqueo es válido, el programa se cerrará (o debería
cerrarse). Si no, algunos programas borran el bloqueo viejo, y usan el
dispositivo, creando su propio bloqueo. Otros programas solamente se
cierran y dicen que el dispositivo está usándose. 

<sect1>``baudios'' Vs. ``bps''
<P>

``baudios'' y ``bps'' son, quizás, unos de los términos peor usados
en el campo de los ordenadores y telecomunicaciones. Mucha gente usa
estos términos indiferentemente, ¡cuando de hecho no son lo mismo!.

<DESCRIP>

<TAG/baudios/ La velocidad en baudios es una medida de cuantas veces por
segundo cambia una señal, por ejemplo una señal enviada por un módem
(<BF/mo/ulador-<BF/dem/odulador). Es decir, una velocidad de 1200 baudios
implica que una señal cambia cada 833 microsegundos. Las velocidades de
los módems normales son 50, 75, 110, 300, 600, 1200, y 2400. La mayoría de
los módems rápidos van a 2400 baudios. Debido a limitaciones del ancho de
banda en las líneas telefónicas de voz, las velocidades superiores a 2400
baudios son difíciles de alcanzar, y sólo funcionan en líneas telefónicas
de alta calidad.  Se pueden codificar varios bits por baudio, para
conseguir velocidades que excedan la velocidad del baudio. Se llama
``baudio'' en honor a Emile Baudot, inventor de la impresora asíncrona del
telégrafo (teletipo). 

<TAG/bps/ La velocidad en bps es una medida de cuantos bits por segundo
son transmitidos. Las velocidades en bps de los módem normales son 50, 75,
110, 300, 1200, 2400, 9600, ... 115200. Usando módems con compresión
V.42bis (compresión máxima 4:1), son posibles velocidades
<EM>teóricas</EM> de hasta 115200 bps. Esto es lo que la mayoría de la
gente quiere decir cuando mal usan la palabra ``baudios''. 
</DESCRIP>	

Así, si módems de alta velocidad están funcionando a 2400 baudios, ¿cómo
pueden enviar 14400 bps?. Los módems alcanzan una velocidad en bps mayor
que la velocidad en baudios codificando varios bits en cada cambio de
señal, o cambio de fase. De este modo, cuando 2 o más bits son codificados
por baudio, la velocidad en bps supera a la velocidad en baudios. Si su
módem se conecta a 14400 bps, estará enviando 6 bits en cada cambio de
fase, a 2400 baudios. 

¿Cómo empezó esta confusión?. Bien, volviendo a cuando los módems lentos
eran módems de alta velocidad, la velocidad en bps realmente era igual a
la velocidad en baudios. Un bit podía ser codificado por cambio de fase.
La gente podía usa bps y baudios intercambiándolos, porque eran el mismo
número. Por ejemplo, un módem de 300 bps también tenía una velocidad de
300 baudios. Todo esto cambió cuando llegaron los módems más rápidos, y la
velocidad en bits superó a la velocidad en baudios. 

<sect1>¿Qué son las UARTs? ¿Cómo afectan al rendimiento?<label id="uart">
<P>

Las UARTs (<BF/U/niversal <BF/A/syncronous <BF/R/eceiver <BF/T/ransmitter)
son circuitos integrados de la placa serie del PC.  Su propósito es
convertir los datos a bits, enviarlos a la línea serie, y después
reconstruir los datos en el otro terminal. Las UARTs tratan los datos en
bloques del tamaño de un byte, que además es, convenientemente, el tamaño
de los caracteres ASCII. 

Digamos que tiene un terminal conectado a su PC. Cuando escriba un
carácter, el terminal da el carácter a su transmisor (también una UART).
El transmisor envía ese byte a la línea serie, un bit cada vez, a una
determinada velocidad. En el otro PC, la UART que recibe, coge todos los
bits, reconstruye el byte y lo coloca en el búfer. 

Existen dos tipos diferentes de UARTs. Probablemente ha oído algo sobre
las UARTs no inteligentes - la 8250 y 16450, y las UARTs FIFO - la 16550A.
Para entender las diferencias, examinemos primero qué ocurre cuando una
UART ha enviado o recibido un byte. 

La UART no puede hacer nada con los datos por sí misma, sólo los envía y
los recibe. La CPU recibe una interrupción del dispositivo serie cada vez
que se recibe o envía un byte. Entonces la CPU mueve el byte recibido
desde el búfer de la UART a algún lugar de la memoria, o le da a la UART
otro byte a enviar. Las UARTs 8250 y 16450 sólo tienen un búfer de 1 byte.
Esto significa, que cada vez que se envía o recibe 1 byte, se interrumpe a
la CPU.  A velocidades bajas, está bien. Pero, a velocidades de
transferencia alta, la CPU está demasiado ocupada tratando con la UART, y
no le deja tiempo de atender otras tareas. En algunos casos, la CPU no
puede atender la interrupción a tiempo, y se sobreescribe el byte, debido
a que llegan demasiado rápido. 

Ahí es cuando son útiles las UARTs 16550A. Estos integrados tienen un
búfer FIFO de 16 bytes. Esto significa que pueden recibir o transmitir
hasta 16 bytes antes de tener que interrumpir a la CPU.  La CPU no sólo
puede esperar, sino que puede entonces transferir los 16 bytes de una sola
vez. Aunque es raro que el umbral de interrupción esté a 16, esto es una
ventaja significante frente a las otras UARTs, que sólo tienen un búfer de
1 byte. La CPU recibe menos interrupciones, y está libre para hacer otras
cosas. No se pierden datos, y todo el mundo es feliz. (También existe una
UART 16550, pero es tratada como un 16450 ya que no funciona bien.) 

En general, las UARTs 8250 y 16450 deben valer para velocidades de hasta
38400 bps. A velocidades mayores que 38400 bps, puede empezar a tener
pérdida de datos. Otros sistemas operativos de PC (definición usada aquí
vagamente) como DOS no son multitarea, por eso deben ser capaces de
habérselas mejor con 8250 ó 16450. Por eso es por lo que algunas personas
no sufren pérdidas de datos, hasta que cambian a Linux. 

Las placas sin UART y las multipuerto inteligentes usan integrados DSP
para hacer las tareas de búfer y control adicional, esto libera mucho más
la CPU. Por ejemplo, las placas Cyclades Cyclom y Stallion EasyIO usan una
UART Cirrus Logic CD1400, y muchas placas usan CPUs 80186 o incluso CPUS
RISC especiales, para controlar la E/S serie. 

Tenga en mente que este tipo de UART no inteligentes no son malas,
simplemente no son buenas para velocidades altas. No debe tener problemas
conectando un terminal, o un ratón a estas UARTs. Pero, para un módem de
alta velocidad, la 16550A es imprescindible. 

Puede comprar placas serie con la UART 16550A por un poco más de dinero,
solamente pregunte al vendedor que tipo de UART tiene la placa. O si
quiere actualizar su placa, simplemente compre el chip 16550A y
reemplácelo por su UART 16450. Son compatibles patilla a patilla. Algunas
placas traen la UART en zócalo para este propósito, si no, puede soldarlo.
Nótese que probablemente se ahorrará un montón de problemas consiguiendo
una placa nueva, si tiene el dinero, cuestan menos de 5000 ptas. 

<sect1>¿Cuál es la diferencia real entre los dispositivos
<TT>/dev/cua</TT><EM/N/ Y <TT>/dev/ttyS</TT><EM/N/? 
<P>

La única diferencia es el modo en que se abren los dispositivos. Los
dispositivos para recibir llamadas <TT>/dev/ttyS</TT><EM/N/ se abren en
modo bloqueante, hasta que se haya detectado la portadora (CD)  (esto es,
alguien conecta). Así, cuando alguien quiere usar el dispositivo
<TT>/dev/cua</TT><EM/N/, no hay conflictos con un programa que esté
vigilando el dispositivo <TT>/dev/ttyS</TT><EM/N/ (a menos que alguien
esté conectado, por supuesto). 

Las múltiples entradas <TT>/dev</TT>, permiten operaciones sobre el mismo
dispositivo físico con diferentes características de operación.  También
permite a los programas <TT/getty/ estándar coexistir con cualquier otro
programa serie, sin que <TT/getty/ tenga que ser reajustado con bloqueos
de ningún tipo. Es especialmente útil ya que los ficheros de bloqueo de
los núcleos Unix estándar, y los bloqueos de UUCP son de aviso y no de
obligatoriedad. 

<sect>Eliminando problemas

<sect1>Me dice: ``line <EM/NNN/ of inittab invalid''
<P>

Asegúrese de estar usando la sintaxis correcta para su versión de
<TT/init/. Las diferentes versiones de <TT/init/ que hay por ahí usan
sintaxis diferentes en el fichero <TT>/etc/inittab</TT>.  Asegúrese de
estar usando la sintaxis correcta para su versión de <TT/getty/. 

<sect1>Cuando intento llamar, dice: ``/dev/cua<EM/N/: Device or resource
busy'' (dispositivo o recurso ocupado) 
<P>

Este problema puede surgir cuando DCD o DTR no están activados
correctamente. DCD sólo debe activarse cuando haya una conexión en curso
(ej: alguien ha llamado a este sistema), no cuando <TT/getty/ esté
vigilando el puerto. Compruebe el módem para asegurarse de que está
configurado para activar DCD sólo cuando haya una conexión. DTR debe estar
activo siempre que alguien esté usando, o vigilando la línea, como
<TT/getty/, <TT/kermit/, o algún otro programa de comunicaciones. 

Otra causa común de los errores de ``device busy'' (dispositivo ocupado),
es que haya configurado el puerto serie con una interrupción que ya esté
siendo usada. Cuando cada dispositivo se inicializa, le pide permiso a
Linux para usar las interrupciones hardware.  Linux sigue la pista de a
quién se le ha asignado cada interrupción, y si la interrupción ya está
siendo usada será imposible que el dispositivo se inicialice
correctamente. El dispositivo realmente no tiene muchas formas de avisarle
de que esto está ocurriendo, excepto que cuando intente usarlo, dará un
mensaje de error ``device busy''.  Compruebe las interrupciones de todas
las placas (serie, ethernet, SCSI, etc). Busque conflictos de IRQ. 

<sect1>Me dice: ``Id S<EM/N/ respawning too fast: disabled for 5 minutes''
(Id S<EM/N/ reiniciado demasiado rápido: desconectado durante 5 minutos) 

Asegúrese de que el módem está configurado correctamente. Mire los
registros <TT/E/ y <TT/Q/.
Esto puede ocurrir cuando el módem está negociando con <TT/getty/.

Asegúrese de estar llamando correctamente a <TT/getty/ desde
<TT>/etc/inittab</TT>. Si usa una sintaxis o nombre de dispositivo
incorrectos puede causar graves problemas. 

Esto también puede ocurrir cuando esté fallando la inicialización de
<TT/uugetty/. 

<sect1>Los dispositivos serie son lentos, o los dispositivo serie sólo
pueden enviar en una dirección
<P> 	

Probablemente tenga un conflicto de IRQ. Asegúrese de que no se están
compartiendo IRQs. Compruebe todas las placas (serie, ethernet, SCSI,
etc). Asegúrese de que los puentes, y los parámetros de <TT/setserial/ son
los correctos en todos los dispositivos serie.  Revise también
<TT>/proc/ioports</TT> y <TT>/proc/interrupts</TT> por si hubiera
conflictos. 

<sect1>Mi módem se bloquea después de colgar, o <TT/uugetty/ no se reinicia.
<P>	

Esto puede ocurrir cuando no se reinicia el módem al desactivar el DTR. He
visto que los LEDs RD y SD de mi módem se vuelven locos cuando esto
ocurre. Debe tener el módem reiniciado. Muchos módems compatible Hayes
hacen esto con <TT/&amp;D3/, pero en mi USR Courier, he tenido que poner
<TT/&amp;D2/ y <TT/S13=1/. Mire en el manual de su módem. 

<sect1>Tengo un terminal conectado al PC, pero después de escribir un
nombre de registro, sólo se bloquea
<P>

<ITEMIZE>
<ITEM>Si está usando <TT/getty/:  Probablemente no tendrá puesto
<TT/CLOCAL/ en ninguna línea de <TT>/etc/gettydefs</TT> para el terminal,
y probablemente no está usando un cable completo de módem nulo. Necesita
<TT/CLOCAL/, el cual le dice a Linux que ignore las señales del control
del módem.  Debería parecerse a esto: 

<TSCREEN><VERB>
# 38400 bps, entrada para un Terminal no inteligente
DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400

# 19200 bps, entrada para un Terminal no inteligente
DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200

# 9600 bps, entrada para un Terminal no inteligente
DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600
</VERB></TSCREEN>

Después, elimine el proceso <TT/getty/ con el comando <TT>kill</TT> y se
generará un proceso nuevo con la nueva entrada. 

<ITEM>Si está usando <TT/agetty/:  Añada el parámetro <TT/-L/ a la línea
de <TT/agetty/ en <TT>/etc/inittab</TT>. Esto hará que ignore las señales
de control del módem. Después ejecute de nuevo <TT/init/ escribiendo
<TT/init q/.  La línea debería ser como esta: 

<TSCREEN><VERB>
s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
</VERB></TSCREEN>

</ITEMIZE>

<sect1>A velocidades altas, mi módem pierde datos
<P>

Si está intentando usar el módem a más de 38400 bps, y no tiene una UART
16550A, debe conseguirla. Vea la sección <REF ID="uart"  NAME="¿Qué son
las UARTs?"> para saber más sobre las UARTs. 

<sect1>Al arrancar, linux no informa a los dispositivos serie de cómo los
he configurado
<P>

Esto es verdad. Linux no realiza ninguna detección de IRQ al arrancar,
sólo hace la detección de los dispositivos serie. Así que no haga caso de
lo que diga sobre las IRQs, ya que asume que son las IRQs estándar. Esto
se hace porque la detección de IRQs no es fiable, y puede ser falsa. 

Así, aún cuando tengo mi <TT/ttyS2/ en la IRQ5, me sale

<TSCREEN><VERB>
Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A
</VERB></TSCREEN>
cuando Linux arranca.

Tiene que usar <TT/setserial/ para decirle a Linux la IRQ que está usando.
Después de que Linux arranque, puede mirar en el fichero
<TT>/proc/interrupts</TT> para ver que IRQs se han configurado realmente. 

<sect1><TT/rz/ y/o <TT/sz/ no funcionan cuando llamo a mi máquina linux
con un módem
<P>

Si Linux busca <TT>/dev/modem</TT> cuando intenta enviar un fichero, mire
en <TT>/etc/profile</TT>, y <TT>/etc/csh.cshrc</TT>. Algunas
distribuciones definen ahí muchos alias, sobre todo Slackware. Estos alias
echan a perder los programas zmodem. Elimínelos o corríjalos. 

<sect1>En mi pantalla están saliendo caracteres muy graciosos
<P>

Esto ocurre en las consolas virtuales cuando envía datos binarios a la
pantalla, o a veces en conexiones serie.  La forma de arreglar esto es
escribiendo <TT>echo ^v^[c</TT>. Para los que son incapaces de identificar
los caracteres de control, es: 

<TSCREEN><VERB>
linux% echo <ctrl>v<esc>c
</VERB></TSCREEN>

<sect1><tt>getty</tt> o <tt>uugetty</tt> no funciona todavia<label id="nowork">
<P>

Existe la opción <TT/DEBUG/ que viene con <TT/getty_ps/. Edite el fichero
de configuración <TT>/etc/conf.{uu}getty.ttyS</TT><EM/N/ y añada
<TT/DEBUG=/<EM/NNN/. Donde <EM/NNN/ es una de las combinaciones numéricas
siguiente, dependiendo de lo que quiera depurar: 

<TSCREEN><VERB>
D_OPT   001            activacion de las opciones
D_DEF   002            procesamiento del fichero de opciones por defecto
D_UTMP  004            procesamiento de utmp/wtmp
D_INIT  010            inicializacion de la linea (INIT)
D_GTAB  020            procesamiento del fichero gettytab
D_RUN   040            otros diagnosticos de ejecucion
D_RB    100            depuracion de rellamada
D_LOCK  200            procesamiento de bloqueo de uugetty
D_SCH   400            procesamiento de tareas
D_ALL   777            todo lo anterior
</VERB></TSCREEN>

Poniendo <TT/DEBUG=010/ es una buena forma de empezar.

Si está ejecutando <TT/syslogd/, la información de depuración aparecerá en
los ficheros log. Si no está usando <TT/syslogd/ la información aparecerá
en <TT>/tmp/getty:tyyS</TT><EM/N/ si depura <TT/getty/ y
<TT>/tmp/uugetty:ttyS</TT><EM/N/ si usa <TT/uugetty/, y en
<TT>/var/adm/getty.log</TT>. Mire la información de depuración y vea que
está ocurriendo. Probablemente necesitará ajustar algunos parámetros del
fichero de configuración, y reconfigurar el módem. 

También lo puede intentar con <TT/mgetty/. Algunas personas tienen mejores
resultados con él. 

<sect>Otras fuentes de información
<P>

<ITEMIZE>

<ITEM>páginas man de: <TT/agetty(8)/, <TT/getty(1m)/, <TT/gettydefs(5)/,
<TT/init(1)/, <TT/login(1)/, <TT/mgetty(8)/, <TT/setserial(8)/

<ITEM>El manual del módem
<ITEM>NET-2 HOWTO: todo sobre redes, incluido SLIP, CSLIP, y PPP
<ITEM>PPP HOWTO: ayuda para PPP
<ITEM>Printing HOWTO: para configurar una impresora serie
<ITEM>Term HOWTO: todo lo que quería saber sobre el programa <TT/term/
<ITEM>UPS HOWTO: configuración de una UPS conectada al puerto serie
<ITEM>UUCP HOWTO: información sobre como configurar UUCP

Grupos de noticias de Usenet:

<TSCREEN><VERB>
comp.os.linux.answers
FAQs, How-To's. READMEs, etc. sobre Linux.
comp.os.linux.hardware
Compatibilidad de hardware con el sistema operativo Linux.
comp.os.linux.networking
Redes y comunicaciones bajo Linux.
comp.os.linux.setup
Instalación de Linux y administracion de sistemas.
</VERB></TSCREEN>

<ITEM>La lista de correo serie en Linux. Para apuntarse, mande un mail
a <TT><HTMLURL URL="mailto:majordomo@vger.rutgers.edu" 
NAME="majordomo@vger.rutgers.edu"></TT>, con ``<TT/subscribe
linux-serial/'' en el cuerpo del mensaje, obtendrá un mensaje de ayuda. El
servidor también ofrece otras listas de Linux. Envíe el comando
``<TT/lists/'' para obtener una lista de las listas de correo. 

<ITEM>Un <it/libro blanco/ para discutir sobre comunicaciones serie y
placas serie multipuerto está a su disposición en Cyclades en <TT><HTMLURL
URL="http://www.cyclades.com" NAME="http://www.cyclades.com"></TT>.

<ITEM>Modem FAQs:<NEWLINE> <htmlurl
URL="http://web.aimnet.com/&tilde;jnavas/modem/faq.html" NAME="Navas 28800
Modem FAQ"><NEWLINE>

</ITEMIZE>

<sect>Contribuciones
<P>	

Es imposible escribir este HOWTO solo. Aunque una gran parte de este HOWTO
lo he escrito yo, he tenido que reescribir muchas contribuciones para
mantener la continuidad del estilo y flujo de escritura. Gracias a todos
los que han contribuido o comentado algo, la lista de personas es
demasiado larga para ponerla aquí (más de cien). En especial quiero darle
las gracias a Ted T'so por responder a preguntas sobre los controladores
serie, a Kris Gleason que suele mantener <TT/getty_ps/, y a Gert
D&ouml;ring que mantiene <TT/mgetty/. 

<sect>Anexo: El INSFLUG <label id="Grupos">
<p>

El <em/INSFLUG/ forma parte del grupo internacional 
<it/Linux Documentation Project/, 
encargándose de las traducciones al castellano de los Howtos (Comos),
así como la producción de documentos originales en aquellos casos
en los que no existe análogo en inglés.

En el <bf/INSFLUG/ se orienta preferentemente a la traducción de documentos
breves, como los <em/COMOs/ y <em/PUFs/ (<bf/P/reguntas de
<bf/U/so <bf/F/recuente, las <it/FAQs/. <tt/:)/ ), etc.

Diríjase a la sede del INSFLUG para más información al respecto.

En la sede del INSFLUG encontrará siempre las <bf/últimas/ versiones 
de las traducciones:  <tt><htmlurl url="http://www.insflug.org" 
name="www.insflug.org"></tt>. Asegúrese de comprobar cuál es la última versión 
disponible en el Insflug antes de bajar un documento de un servidor réplica.

Se proporciona también una lista de los servidores
réplica (<it/mirror/) del Insflug más cercanos a Vd.,  
e información relativa a otros recursos en castellano.

Francisco José Montilla, <tt><htmlurl url="mailto:pacopepe@insflug.org"
name="pacopepe@insflug.org"></tt>.

</article>
