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/˜arobinso" NAME="http://www.nyx.net/˜arobinso"></TT><NEWLINE> estado del controlador: BETA<NEWLINE> localización del controlador: <TT><HTMLURL URL="http://www.nyx.net/˜arobinso" NAME="http://www.nyx.net/˜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ö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/˜doering/mgetty/" NAME="http://www.leo.org/˜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&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/&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/&C0/ y <EM/no/ <TT/&C1/. También debe poner <TT/&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 <nombre_de_fichero></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/˜garrett" NAME="http://www.sdsu.edu/˜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/&D3/, pero en mi USR Courier, he tenido que poner <TT/&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/˜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ö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>