O COMO FAZER Linux Serial
  Revisado por David S.Lawyer bf347@lafn.org.  Original de
  Greg Hankins.  Traduzido por Conectiva Informática, .
  Revisado em 6 de Abril de 1999.
  v1. 12 de Julho de 1998.

  Este documento descreve as funcionalidades da porta serial não
  cobertas pelo COMO FAZER Terminais Texto ou COMO FAZER Programação de
  Seriais. Ele cobre mais precisamente o utilitário getty, placas
  multiseriais e modems.
  ______________________________________________________________________

  Índice geral





















































  1. Introdução

     1.1 Direitos Autorais
     1.2 COMO FAZER relacionados: a Porta Serial
     1.3 Notas de Versões
     1.4 Novas Versões Deste Documento
     1.5 Retornos
     1.6 Aviso Importante

  2. Hardware Serial Suportados

     2.1 Placas Seriais PC Padrão
     2.2 Modems Plug And Play (PnP)
     2.3 Placas Multiseriais Burras (com UARTs 8250/16450/16550A)
     2.4 Placas Multiseriais Inteligentes
     2.5 Hardware Seriais Não Suportados
        2.5.1 Winmodems Não Funcionam
        2.5.2 Programas de Controle Rockwell (RPI) que devem funcionar

  3. Quais os Nomes das Portas Seriais?

     3.1 Dispositivos: modem, mouse
     3.2 O Dispositivo cua
     3.3 Dispositivos de Portas Seriais e Números no
        3.3.1 Criando Dispositivos em
     3.4 Notas Para Placas Multiseriais Burras
     3.5 Notas Para Placas Multiseriais Inteligentes

  4. Programas Interessantes

     4.1 O que é
        4.1.1 Sobre
        4.1.2 Sobre
        4.1.3 Sobre
     4.2 O que é

  5. Como discar para fora usando um modem?

     5.1 Requisitos de Hardware
        5.1.1 Modems Externos
        5.1.2 Modems Internos
     5.2 Conversando Com Seu Modem
     5.3 Configuração de Discagem de Modem
     5.4 Controle de Fluxo por Hardware

  6. Como Discar e Receber Ligações Com o Modem Usando

     6.1 Configuração de Modem Para Discar e Receber Chamadas
     6.2 Instalando

  7. uugetty

     7.1 Configurando
        7.1.1 Modems Modernos
        7.1.2 Modems Antigos e Lentos
        7.1.3 Mensagem de Acesso
     7.2 Personalizando o

  8. Como Configurar Um Terminal Conectado a Um PC?

     8.1 Requisitos de Hardware
     8.2 Configurando
     8.3 Notas Sobre a Configuração de Um PC Como Um Terminal

  9. Posso Usar Mais de Dois Dispositivos Seriais?

     9.1 Definindo as Interrupções do Dispositivo Serial
     9.2 Configurando Endereços de Dispositivos Seriais

  10. Como Configurar Minhas Portas Seriais Para Velocidades Maiores? Qual A Velocidade Que Deve Ser Usada Com Meu Modem?

  11. Programas e Utilitários de Comunicação

  12. Dicas e Tópicos Diversos

     12.1 kermit e zmodem
     12.2 Configuração de tipos de terminais "automagicamente"
     12.3 Comando
     12.4 Imprimindo em uma impressora serial conectada
     12.5 É possível o Linux configurar dispositivos seriais automaticamente?
        12.5.1 Notas para placas multiseriais
     12.6 Usando Um  Console Serial
     12.7 Maiores velocidades em seriais

  13. Um passo adiante...

     13.1 O que são arquivos de reserva de recursos?
     13.2 ``baud'' Vs. ``bps''
     13.3 O que são UARTs?  Como elas afetam a performance?

  14. Resolução de Problemas

     14.1 Estamos recebendo a mensagem ``linha
     14.2 Durante a discagem é recebida a mensagem ``/dev/cua
     14.3 A mensagem "getty respondendo muito rapidamente: desabilitado por 5 minutos".
     14.4 Dispositivos seriais são lentos ou podem tratar os dados em somente uma direção.
     14.5 O modem congela após desligar ou
     14.6 O terminal conectado ao PC congela após se digitar o nome de acesso.
     14.7 Em altas velocidades, o modem perde dados.
     14.8 Na inicialização Linux não parece reconhecer os dispositivos seriais na forma em que eles foram configurados.
     14.9 O
     14.10 A tela está apresentando caracteres estranhos.
     14.11 (TT

  15. Outras Fontes de Informação

  16. Contribuições



  ______________________________________________________________________

  11..  IInnttrroodduuççããoo

  Este é o COMO FAZER Linux Serial. Ele cobre informações sobre portas
  seriais não disponíveis em outros COMO FAZER. Inclui como configurar
  modems sob Linux, algumas dicas e conselhos sobre como atuar em face
  de problemas conhecidos. Outro COMO FAZER  existente é destinado a
  terminais (veja ``COMO FAZER relacionados''). Esse COMO FAZER está
  endereçado a usuários de hardware Intel x86 e compatíveis, ainda que
  possa funcionar em outras arquiteturas.


  11..11..  DDiirreeiittooss AAuuttoorraaiiss

  Copyright (c) 1993 - 1997 por Greg Hankins, 1998 por David Lawyer.
  Este documento pode ser distribuído sob os termos definidos na Licença
  LDP em  http://metalab.unc.edu/LDP/COPYRIGHT.html. Este documento não
  pode ser distribuído ou modificado sem o consentimento do autor.



  11..22..  CCOOMMOO FFAAZZEERR rreellaacciioonnaaddooss:: aa PPoorrttaa SSeerriiaall


  ·  O HOWTO - Programação Serial auxilia no desenvolvimento de
     programas em linguagem C (ou partes dele) que lidam com portas
     seriais. Pode-se fazer o equivalente de um "stty ...", abrir portas
     em vários nós e mais.

  ·  O COMO FAZER - Terminais Texto aborda terminais orientados à
     caracter (terminais burros).


  11..33..  NNoottaass ddee VVeerrssõõeess

  Eu, David Lawyer, sou o novo mantenedor (Greg Hankins foi o autor
  original). Esta é uma revisão menor e eu não chequei a fundo as
  informações para verificar se estão atualizadas. Há muito trabalho a
  ser desenvolvido. Por favor nos avise sobre erros ou ausências de
  informações. No futuro, eu gostaria de dividir em 3 outros COMO FAZER:
  1. Informações sobre terminais no COMO FAZER Terminais Texto.   2.
  Informações sobre os modems em um novo COMO FAZER: Modem  3. Mais
  informações sobre portas seriais devem ser adicionadas a este COMO
  FAZER. Talvez tenhamos estas novas versões em algum momento em 1998.


  11..44..  NNoovvaass VVeerrssõõeess DDeessttee DDooccuummeennttoo

  Novas versões do COMO FAZER Serial estarão disponíveis em
  ftp://metalab.unc.edu:/pub/Linux/docs/HOWTO/Serial-HOWTO e nos sites
  espelho. Há outros formatos, como Postscript e versões DVI no
  diretório outros-formato.  O COMO FAZER Serial está também disponível
  em http://metalab.unc.edu/LDP/HOWTO/Serial-HOWTO.html e será postado
  em comp.os.linux.answers mensalmente.


  11..55..  RReettoorrnnooss

  Por favor, envie-me quaisquer questões, comentários, sugestões ou
  material adicional. Estou sempre ansioso em ouvir sobre o que você
  pensa sobre este COMO FAZER. Estou sempre na busca de melhorias. Diga-
  me exatamente o que você não entendeu ou o que deveria ser
  clarificado. Eu posso ser encontrado em bf347@lafn.org (David Lawyer)
  via correio eletrônico.


  11..66..  AAvviissoo IImmppoorrttaannttee

  A sua experiência pode variar. As respostas podem variar e não
  funcionarem adequadamente em todos os sistemas e combinações de
  configuração.


  22..  HHaarrddwwaarree SSeerriiaall SSuuppoorrttaaddooss

  Linux é conhecido por funcionar com os seguintes hardwares seriais:


  22..11..  PPllaaccaass SSeerriiaaiiss PPCC PPaaddrrããoo


  ·  Placas padrões (COM1 - COM4), aos quais dispositivos seriais
     (modems, mouse serial, etc.) podem ser conectados. Uma vez que PCs
     não são mais distribuídos com estas placas (mas tem os
     processadores para este propósito montado na placa mãe), portanto
     elas são difíceis de se encontrar em lojas de varejo.

  ·  Modems padrões PC internos (COM1 - COM4).

  ·  Sistemas Quickpath Port-Folio 550e (permite IRQs de 3, 4, 5, 9, 10,
     11, 12 e 15).

  Nota: devido aos conflitos de endereço, não se pode usar COM4 e placa
  de vídeo IBM8514 simultaneamente. Isso se deve a um problema na placa
  IBM8514.


  22..22..  MMooddeemmss PPlluugg AAnndd PPllaayy ((PPnnPP))

  Muitos modems hoje em dia são PnP e muitos irão (com algum esforço)
  funcionar com Linux. O melhor a fazer é configurar as chaves de
  seleção (jumpers) para desabilitarem o PnP. Em muitos casos, basta
  simplesmente configurar as chaves para um determinado número de porta
  serial COM e número de interrupção IRQ para desabilitar a função PnP.
  Pode-se ainda desabilitar as funções de PnP no BIOS do computador.
  Caso não seja possível desabilitar PnP pode-se então tentar:


  ·  Inicializar o sistema com Win95/98, configurar o modem e verificar
     os parâmetros que devem ser preservados na inicialização do Linux.
     Pode-se ainda:

  ·  Inicializar o sistema com Win95/98, configurar o modem e então
     executar uma _i_n_i_c_i_a_l_i_z_a_ç_ã_o _r_á_p_i_d_a Linux preservando as
     configurações dos modem. Pode-se fazer isto através do carregador
     de inicialização denominado loadlin.

  ·  Obter as ferramentas PnP a partir de http://www.redhat.com/linux-
     info/pnp.


  22..33..  PPllaaccaass MMuullttiisseerriiaaiiss BBuurrrraass ((ccoomm UUAARRTTss 88225500//1166445500//1166555500AA))

  Elas são denominadas "adaptadores seriais".
  =>  "setserial" mostra os detalhes da configuração.

  ·  AST FourPort e clones (4 portas) *

  ·  Accent Async-4 (4 portas) *

  ·  Arnet Multiport-8 (8 portas)

  ·  Bell Technologies HUB6 (6 portas)

  ·  Boca BB-1004 (4 ports), BB-1008 (8 portas), BB-2016 (16 portas) *

  ·  Boca IOAT66 (6 portas)

  ·  Boca 2by4 (4 portas seriais, 2 portas paralelas)

  ·  Byterunner

  ·  Computone ValuePort V4-ISA (compatível com AST FourPort) *

  ·  Digi PC/8 (8 portas)

  ·  GTEK BBS-550 (8 portas) Veja o mini COMO FAZER específico.

  ·  HUB-6 See Bell Technologies.

  ·  Longshine LCS-8880, Longshine LCS-8880+ (compatível com AST
     FourPort)

  ·  Moxa C104, Moxa C104+ (compatível com AST FourPort)

  ·  PC-COMM (4 ports)

  ·  Sistemas Sealevel <http://www.sealevel.com> COMM-2 (2 portas),
     COMM-4 (4 portas) e COMM-8 (8 portas)

  ·  SIIG I/O Expansão 2S IO1812 (4 portas)

  ·  STB-4COM (4 portas)

  ·  Twincom ACI/550

  ·  Usenet Serial Board II (4 portas) *

  Em geral, Linux irá suportar qualquer placa serial que use UARTs 8250,
  16450, 16550, 16550A, 16650 (ou compatíveis), ou um modem interno que
  emula alguma dos UARTs acima.

  Nota: BB-1004 e BB-1008 não suportam DCD e linhas RI e não podem ser
  utilizados em modems para discagem. Eles poderão funcionar muito bem
  em outros propósitos.


  22..44..  PPllaaccaass MMuullttiisseerriiaaiiss IInntteelliiggeenntteess

  Esteja seguro de que há um programa de controle disponível específico
  para Linux. A lista a seguir não está muito atualizada.

  ·  Comtrol RocketPort (36MHz ASIC; 4, 8, 16 ou 32 portas)
     Contato: info@comtrol.com ou http://www.comtrol.com.
     Status do programa de controle: suportado por Comtrol.
     Localização do programa de controle:
     ftp://tsx-11.mit.edu/pub/linux/packages/comtrol.

  ·  Computone IntelliPort II (16MHz 80186; 4, 8, ou 16 ports)
     IntelliPort II Expansível (20MHz 80186; 16 - 64 portas).
     Contato: Michael H. Warfield, mhw@wittsend.atl.ga.us.
     Status do programa de controle: pré-ALPHA.

  ·  Cyclades Cyclom-Y (Cirrus Logic CD1400 UARTs; 8 - 32 portas)
     Cyclom-Z (25MHz MIPS R3000; 8 - 128 portas).
     Contato: sales@cyclades.com ou http://www.cyclades.com.
     Situação do programa de controle: suportado pela Cyclades.
     Localização dos programas de controle:
     ftp://ftp.cyclades.com/pub/cyclades e incluída no kernel do Linux
     desde a versão 1.1.75.

  ·  Decision PCCOM8 (8 ports)
     Contato: pccom8@signum.se.
     Localização do programa de controle:
     ftp://ftp.signum.se/pub/pccom8.


  ·  Digi PC/Xi (12.5MHz 80186; 4, 8 ou 16 portas),
     PC/Xe (12.5/16MHz 80186; 2, 4, ou 8 portas),
     PC/Xr (16MHz IDT3041; 4 ou 8 portas),
     PC/Xem (20MHz IDT3051; 8 - 64 portas).
     Contato: sales@dgii.com ou http://www.dgii.com.
     Status do programa de controle: suportado por Digi.
     Localização dos programas de controle:
     ftp://ftp.dgii.com/drivers/linux e incluída no kernel do Linux
     desde a versão 2.0.

  ·  Digi COM/Xi (10MHz 80188; 4 ou 8 portas)
     Contato: Simon Park, si@wimpol.demon.co.uk.
     Status do programa de controle: ALPHA.
     Nota: Simon está com freqüência ausente deste endereço de correio,
     às vezes por meses devido ao seu trabalho. Mark Hatle,
     fray@krypton.mankato.msus.edu voluntariou-se para tornar o programa
     de controle se necessário. Mark não está mantendo ou suportando o
     programa de controle.


  ·  Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 portas)
     Contato: sales@equinox.com ou http://www.equinox.com.
     Status do programa de controle: suportado por Equinox.
     Localização dos programas de controle:
     ftp://ftp.equinox.com/library/sst.


  ·  GTEK Cyclone (16C654 UARTs; 6, 16 e 32 portas),
     SmartCard (24MHz Dallas DS80C320; 8 portas),
     BlackBoard-8A (16C654 UARTs; 8 portas),
     PCSS (15/24MHz 8032; 8 portas).
     Contato: spot@gtek.com ou http://www.gtek.com.
     Status do programa de controle: suportado por GTEK.
     Localização dos programas de controle: ftp://ftp.gtek.com/pub.


  ·  Hayes ESP (COM-bic; 1 - 8 portas)
     Contato: Andrew J. Robinson, arobinso@nyx.net ou
     http://www.nyx.net/~arobinso.
     Status do programa de controle: suportado pelo autor.
     Localização dos programas de controle: http://www.nyx.net/~arobinso
     e incluído no kernel do Linux desde a versão 2.1.15.


  ·  Maxpeed SS (Toshiba; 4, 8 e 16 ports)
     Contato: info@maxpeed.com ou http://www.maxpeed.com.
     Status do programa de controle: suportado por Maxpeed.
     Localização dos programas de controle: ftp://maxpeed.com/pub/ss.


  ·  Moxa C218 (12MHz 80286; 8 portas),
     Moxa C320 (40MHz TMS320; 8 - 32 portas).
     Contato: info@moxa.com.tw ou http://www.moxa.com.tw.
     Status do programa de controle: suportado por Moxa.
     Localização dos programas de controle:
     ftp://ftp.moxa.com.tw/drivers/c218-320/linux.


  ·  SDL RISCom/8 (Cirrus Logic CD180; 8 portas)
     Contato: sales@sdlcomm.com ou http://www.sdlcomm.com.
     Status do programa de controle: suportado por SDL.
     Localização dos programas de controle:
     ftp://ftp.sdlcomm.com/pub/drivers.


  ·  Specialix SIO (20MHz Zilog Z280; 4 - 32 portas),
     XIO (25MHz Zilog Z280; 4 - 32 portas).
     Contato: Simon Allen, simonallen@cix.compulink.co.uk.
     Status do programa de controle: BETA.
     Localização dos programas de controle:
     ftp://metalab.unc.edu/pub/Linux/kernel/patches/serial.


  ·  Stallion EasyIO-4 (4 portas), EasyIO-8 (8 portas), e
     EasyConnection (8 - 32 portas) - usando Cirrus Logic CD1400 UARTs,
     Stallion (8MHz 80186 CPU; 8 ou 16 portas),
     Brumby (10/12 MHz 80186 CPU; 4, 8 ou 16 portas),
     ONboard (16MHz 80186 CPU; 4, 8, 12, 16 ou 32 portas),
     EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 portas).
     Contato: sales@stallion.com ou http://www.stallion.com.
     Status do programa de controle: suportado por Stallion.
     Localização dos programas de controle:
     ftp://ftp.stallion.com/drivers/ata5/Linux e incluído no kernel do
     Linux desde a versão 1.3.27.


  Uma avaliação dos produtos Comtrol, Cyclades, Digi e Stallion foi
  apresentada no _L_i_n_u_x _J_o_u_r_n_a_l de junho de 1995. O artigo está
  disponível em http://www.ssc.com/lj/issue14.


  22..55..  HHaarrddwwaarree SSeerriiaaiiss NNããoo SSuuppoorrttaaddooss

  22..55..11..  WWiinnmmooddeemmss NNããoo FFuunncciioonnaamm

  Modems denominados ``Winmodems'', por exemplo USR Sportster Winmodem e
  IBM Aptiva MWAVE, _n_ã_o são suportados pelo Linux. Estes modems tem
  projetos proprietários que requerem programas de controle especiais
  que funcionam somente sob Windows. Evite o uso destes modems.


  22..55..22..  PPrrooggrraammaass ddee CCoonnttrroollee RRoocckkwweellll ((RRPPII)) qquuee ddeevveemm ffuunncciioonnaarr

  Modems que requerem programas de controle Rockwell RPI não podem ser
  usados completamente sob Linux uma vez que o programa de controle não
  funciona sob Linux. O RPI executa compressão e correção de erros
  usando MS software. Caso se deseje utilizar o modem sem o uso de RPI
  (e não ter correção de erros e compressão) então pode-se facilmente
  desabilitá-lo através do envio para o modem (via comando de
  inicialização) do comando RPI: +H0.


  33..  QQuuaaiiss ooss NNoommeess ddaass PPoorrttaass SSeerriiaaiiss??

  Um porta de E/S é uma forma de obter e enviar dados de/para um
  computador. Há muitos tipos de postas de E/S como portas seriais,
  paralelas, controlados de dispositivos de disco, placas Ethernet,
  etc.. Nós assumiremos que as portas seriais utilizarão modems e
  terminais que serão denominados dispositivos seriais. Cada porta
  serial deve ter um endereço de E/S e uma interrupção (IRQ). Há quatro
  portas seriais correspondentes a COM1 - COM4:


       ttyS0 (COM1) endereço 0x3f8 IRQ 4
       ttyS1 (COM2) endereço 0x2f8 IRQ 3
       ttyS2 (COM3) endereço 0x3e8 IRQ 4
       ttyS3 (COM4) endereço 0x2e8 IRQ 3




  Caso o Linux não detecte qualquer porta serial ao ser inicializado,
  esteja seguro de que o suporte serial está habilitado e compilado no
  kernel do sistema. Neste documento, referencio COM1 como ttyS0, COM2
  como ttyS1, COM3 como ttyS2 e COM4 como ttyS3. Note que, por padrão,
  estes dispositivos são sobrepostos pelos valores de IRQs. Não se pode
  usar todas as portas na configuração original, devendo-se então serem
  definidos outras IRQs. Veja a seção ``Posso Usar Mais de Duas Portas
  Seriais?''  para configuração das interrupções.





  33..11..  DDiissppoossiittiivvooss:: mmooddeemm,, mmoouussee

  Em algumas instalações, dois dispositivos extras podem ser criados,
  /dev/modem para o modem e /dev/mouse para o mouse. Ambos são ligações
  simbólicas para os devidos dispositivos no diretório /dev especificado
  durante a instalação (a menos que se tenha um mouse de barramento
  quando então o /dev/mouse apontará para o dispositivo do mouse).


  Tem havido alguma discussão sobre o mérito do /dev/mouse e /dev/modem.
  Desencorajo _f_o_r_t_e_m_e_n_t_e o uso dessas ligações. Em particular, caso se
  esteja planejando usar o modem para discagem, pode-se ter alguns
  problemas com arquivos de reserva de recursos caso se utilize o
  /dev/modem. Use-os caso deseje, mas _e_s_t_e_j_a _s_e_g_u_r_o _d_e _e_s_t_a_r _a_p_o_n_t_a_n_d_o
  _p_a_r_a _o _d_i_s_p_o_s_i_t_i_v_o _c_o_r_r_e_t_o. De qualquer forma, caso se altere ou se
  remova a ligação, algumas aplicações (minicom por exemplo) podem
  necessitar de reconfiguração.


  33..22..  OO DDiissppoossiittiivvoo ccuuaa

  Cada dispositivos ttyS tem um dispositivo cua correspondente. Houve
  alguma discussão sobre a abolição do cua, então o melhor é usar o
  ttyS. As principais diferenças entre cua e ttyS é que um simples
  comando "open" (sem certos parâmetros) em um programa de aplicação,
  fará com que cua abra a porta mesmo que os sinais de controle (como
  DCD) digam para não fazê-lo. Já stty pode ser configurado para
  verificar os sinais de controle do modem. Uma porta ttyS pode recusar-
  se a abrir a porta nestes casos, porém pode ser forçado para tal caso
  sejam fornecidos certos parâmetros para o comando "open".

  Além disso uma porta ttyS pode fazer tudo que uma porta cua faça.
  Exceto que um comando de abertura forçada resulta em um comando de
  leitura em um programa que se comportará de uma forma singular que
  pode ser evitada ao se adicionar alguns comandos extras. Eliminar cua
  pode trazer ao Linux maior compatibilidade com o padrão Posix e evita
  certos problemas com arquivos de reserva de recursos.


  33..33..  DDiissppoossiittiivvooss ddee PPoorrttaass SSeerriiaaiiss ee NNúúmmeerrooss nnoo //ddeevv



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




  Note que todas as distribuições devem com estes dispositivos
  corretamente configurados (a menos que cua seja abolido). Pode-se
  verificar a configuração através do comando:


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








  33..33..11..  CCrriiaannddoo DDiissppoossiittiivvooss eemm  //ddeevv

  Caso não se tenha o dispositivo, será necessário criá-lo com o comando
  mknod. Por exemplo suponhamos que seja necessário criar os
  dispositivos para ttyS0:


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




  Pode-se usar também o programa MAKEDEV que reside no diretório /dev, o
  qual simplifica a geração de dispositivos. Por exemplo, caso se
  necessite de um dispositivo para ttyS0 deve-se digitar:


       linux# cd /dev
       linux# ./MAKEDEV ttyS0




  Isso possibilita a criação de dispositivos para dispositivos de
  entrada e saída e deve ter as permissões corretas configuradas.


  33..44..  NNoottaass PPaarraa PPllaaccaass MMuullttiisseerriiaaiiss BBuurrrraass

  Os dispositivos usados por uma placa multiserial dependem do tipo de
  placa disponível. Algumas destas estão listadas em detalhes em
  rc.serial ou em 0setserial o qual acompanha o pacote setserial.
  Recomendo  fortemente o uso da versão mais atualizada do setserial
  caso se esteja utilizando placas multiseriais. Provavelmente será
  necessário criar estes dispositivos. Para tanto pode-se usar o comando
  mknod ou o programa MAKEDEV. Dispositivos para placas multiseriais são
  criados através da fórmula ``64 + número da porta''. Logo, caso se
  deseje criar dispositivos para ttyS17 deve-se digitar:



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




  Note que ``64 + 17 = 81''.  Usando o programa MAKEDEV deve-se digitar:


       linux# cd /dev
       linux# ./MAKEDEV ttyS17




  Nota: o manual SIIG para a lista IO1812 para COM5-COM8 está incorreto.
  Eles devem ser COM5=0x250, COM6=0x258, COM7=0x260 e COM8=0x268.

  Nota: o Registro de Status de Interrupção da Digi PC/8 está em 0x140.

  Nota: para a AST Fourport, deve-se especificar skip_test em rc.serial.



  33..55..  NNoottaass PPaarraa PPllaaccaass MMuullttiisseerriiaaiiss IInntteelliiggeenntteess

  Leia a informação que acompanha o programa de controle. Estas placas
  utilizam programas especiais e não os padrões. Esta informação varia
  dependendo do hardware.


  44..  PPrrooggrraammaass IInntteerreessssaanntteess

  44..11..  OO qquuee éé ggeettttyy ??

  getty é um programa que lida com o processo de acesso ao se conectar a
  uma máquina Linux. É preciso utilizar o programa getty, caso por
  exemplo  se deseje acessar uma máquina Linux através de um modem. Não
  é necessário utilizar getty caso se deseje discar para algum local
  externo via modem. Há três versões comumente utilizadas com Linux:
  getty_ps,mgetty e agetty. A sintaxe dos três programas difere,
  portanto deve-se estar seguro de se estar utilizando a sintaxe correta
  para o programa, para qualquer getty que se esteja utilizando.


  44..11..11..  SSoobbrree ggeettttyy__ppss


  Muitas distribuições vêm com o pacote getty_ps instalado (o Debian
  usava agetty porém agora tem utilizado mgetty). Ele contém dois
  programas: getty é usado em dispositivos de console e terminais e
  uugetty é usado com modems. Uso a versão de getty, a qual
  focalizaremos aqui.


  44..11..22..  SSoobbrree mmggeettttyy

  mgetty é a versão de getty destinada especialmente para o uso com
  modems. Pode ser usado com terminais conectados via fio, mas a
  documentação trata durante 99% a configuração de modems.
  Adicionalmente ao suporte a acessos discados, mgetty provê suporte a
  FAX e autodetecção de PPP. A documentação do mgetty (fornecida em
  formato textinfo) é boa e não necessita de complemento. Por favor
  referencie-se a ela sobre instruções de instalação. Pode-se encontrar
  informações atualizadas do mgetty em
  http://www.leo.org/~doering/mgetty/.


  44..11..33..  SSoobbrree aaggeettttyy

  agetty é a terceira variação do programa getty. É uma versão simples e
  completamente funcional do getty melhor aplicada em consoles virtuais
  ou terminais do que com modems.


  44..22..  OO qquuee éé sseettsseerriiaall ??

  setserial é o programa que permite observar e alterar diversos
  atributos de um dispositivo serial, incluindo-se o endereço da porta,
  sua interrupção e outras opções da porta serial. Pode-se descobrir
  qual a versão disponível ao se executar o programa sem fornecer
  argumentos. Caso o argumento seja algo como /dev/ttyS1, etc., então
  serão apresentadas as informações sobre esta porta.


  Quando um sistema Linux é inicializado, somente as portas ttyS{0-3}
  são configuradas, utilizando as IRQs padrão 4 e 3. Então, caso se
  tenha qualquer outra porta serial disponibilizada por outras placas ou
  se ttyS{0-3} usa uma IRQ não padronizada, então _d_e_v_e_-_s_e usar o
  programa setserial para configurar estas portas seriais. Para uma
  lista completa das opções disponíveis por favor verifique a página de
  manual on-line.


  55..  CCoommoo ddiissccaarr ppaarraa ffoorraa uussaannddoo uumm mmooddeemm??

  55..11..  RReeqquuiissiittooss ddee HHaarrddwwaarree

  Pode-se usar um modem interno ou externo. Modems internos são mais
  baratos e não usam espaço sobre a mesa. Mas os modems externos são
  mais simples de serem instalados e os indicadores luminosos fornecem
  uma dica sobre o que está acontecendo. Modems externos necessitam ser
  desligados quando não estejam sendo usados, e parecem consumir alguma
  eletricidade mesmo quando estejam desligados.


  55..11..11..  MMooddeemmss EExxtteerrnnooss

  Inicialmente esteja seguro de estar utilizando o cabo correto. Um
  modem requer cabos com fios diretos sem pinos cruzados. Qualquer loja
  de informática costuma tê-los. Esteja certo de escolher o gênero
  correto. Caso se esteja utilizando uma porta serial de padrão DB25,
  deve-se utilizar sempre DB25 macho. Tenha cuidado em não confundir com
  a porta paralela, a qual é DB25 porém fêmea. Conecte o modem em uma
  das portas seriais disponíveis. Por favor consulte o manual do modem
  para saber como fazê-lo caso você necessite de ajuda.


  55..11..22..  MMooddeemmss IInntteerrnnooss

  Para um modem interno, não há necessidade de cabos adicionais, pois
  este tipo de modem não necessita de uma porta serial, ele tem uma
  construída em si. Tudo o que se necessita é configurá-lo para que ele
  utilize uma interrupção que não esteja sendo usada e configurar os
  endereços da porta de E/S. Consulte o manual do modem caso você esteja
  com dúvidas. Veja também a seção ``Posso Usar Mais de Dois
  Dispositivos Seriais?'' caso se necessite de ajuda na escolha de
  interrupções ou endereços.

  Em algumas placas mãe será necessário desabilitar a porta serial que o
  modem esteja utilizando a fim de evitar conflitos. Isso pode ser feito
  através das chaves de configuração ou das configurações do BIOS,
  dependendo da placa mãe. Por favor consulte o seu manual.

  Caso se esteja utilizando uma placa de vídeo IBM8514, então há um
  problema que você deve conhecer. Pode-se encontrar problemas caso se
  deseje utilizar um modem em ttyS3. Caso o Linux não detecte um modem
  interno em ttyS3, pode-se usar o utilitário setserial e o modem deverá
  funcionar normalmente. Modems internos em ttyS{0-2} não deverão causar
  nenhum problema para serem detectados. Linux não executa qualquer
  auto-configuração em ttyS3 devido ao problema da placa de vídeo.


  55..22..  CCoonnvveerrssaannddoo CCoomm SSeeuu MMooddeemm

  Pode-se usar kermit, minicom ou alguns outros programas de comunicação
  para testar a configuração do modem, antes de seguir em temas mais
  complexos como SLIP ou PPP. Pode-se encontrar a versão mais atual do
  kermit em http://www.columbia.edu/kermit/. Digamos, por exemplo, que o
  modem encontre-se na porta ttyS3 e sua velocidade é de 115200 bps.
  Deve-se proceder da seguinte forma:





  linux# kermit
  C-Kermit 6.0.192, 6 Sep 96, for Linux
  Copyright (C) 1985, 1996,
  Trustees of Columbia University in the City of New York.
  Modo de transferência padrão é BINÁRIO
  Digite ? ou HELP para ajuda.
  C-Kermit>set line /dev/ttyS3
  C-Kermit>set carrier-watch off
  C-Kermit>set speed 115200
  /dev/ttyS3, 115200 bps
  C-Kermit>c
  Conectando a /dev/ttyS3, velocidade 115200.
  O caracter de fuga é Ctrl-\ (ASCII 28, FS)
  Digite o caracter de fuga seguido de C para retornar ou seguido de ? para se visualizar outras opções.
  ATE1Q0V1                           ; digite estes comandos e pressione Enter.
  OK                                 ; o modem deve responder desta forma.




  Caso o modem reconheça comandos AT, pode-se assumir que ele esteja
  funcionando adequadamente sob o Linux. Agora pode-se tentar a execução
  de uma discagem executando-se o seguinte comando:


       ATDT7654321




  onde 7654321 é o número do telefone de destino. Use ATDP no lugar de
  ATDT caso a linha seja configurada para pulso. Caso a discagem seja
  efetuada, o modem estará funcionando corretamente.

  Para retornar para a linha de comando do kermit, pressione a tecla
  Ctrl e a tecla de barra reversa, solte a tecla Ctrl e pressione C:


       Ctrl-\-C
       (De volta ao Linux)
       C-Kermit>quit
       linux#




  Isso foi um teste usando um primitivo método de comando manual. O
  método normal reside em deixar o kermit executar a discagem
  automaticamente a partir de uma base interna de modems e de funções de
  discagem, por exemplo usando um modem US Robotics (USR):
















  linux# kermit
  C-Kermit 6.0.192, 6 Sep 1997, for Linux
  Copyright (C) 1985, 1996,
  Trustees of Columbia University in the City of New York.
  Modo de transferência padrão é BINÁRIO
  Digite ? ou HELP para ajuda.
  C-Kermit>set modem type usr        ; Seleciona o tipo de modem
  C-Kermit>set line /dev/ttyS3       ; Seleciona o dispositivo de comunicação
  C-Kermit>set speed 115200          ; Configura a velocidade de discagem
  C-Kermit>dial 7654321              ; Discar
  Número: 7654321
  Dispositivo=/dev/ttyS3, modem=usr, velocidade=115200
  Ligação completada.<BEEP>
  Conectando a /dev/ttyS3, velocidade 115200
  Conectando a /dev/ttyS3, velocidade 115200.
  O caracter de fuga é Ctrl-\ (ASCII 28, FS)
  Digite o caracter de fuga seguido de C para retornar ou seguido de ? para se visualizar outras opções.

  Bem Vindo ao Linux ...

  login:




  Veja a seção ``Programas de Comunicação'' sobre   programas de
  comunicação caso sejam necessárias algumas informações adicionais
  sobre os passos acima.

  Ao se discar com o modem local, deve-se configurar a velocidade da
  porta serial para a maior possível e suportada pelo modem
  (possivelmente não maior que 115200 bps). Isso não é o mesmo que as
  velocidades anunciadas de modems como por exemplo 56 Kbps. Versões do
  Linux com uma versão da biblioteca libc superior a 5.X têm suporte a
  velocidades maiores que 115200 bps. Mesmo velocidades maiores que esta
  estão em desenvolvimento no Linux.


  55..33..  CCoonnffiigguurraaççããoo ddee DDiissccaaggeemm ddee MMooddeemm

  Somente para discagens, pode-se configurar o modem da maneira que se
  deseje. Caso se pretenda configurar o modem para receber chamadas,
  então é _o_b_r_i_g_a_t_ó_r_i_o configurá-lo na mesma velocidade que se pretenda
  utilizar o programa getty. De qualquer forma, muitos modems atualmente
  configuram as suas velocidades automaticamente para a mesma que os
  comandos estejam utilizando. Ou seja, ao se ter getty sendo executado
  a 115,200 fará com que o modem automaticamente configure a sua
  velocidade para o valor utilizado pelo programa getty, a partir do
  momento que este envie os comandos de inicialização para a porta
  serial onde o modem se encontre. Em geral, padrões de fabricação que
  habilitem correções de erro e controle de fluxo por hardware são as
  melhores configurações para modems que executem chamadas externas.
  Consulte o manual do modem para conferir estas configurações.


  55..44..  CCoonnttrroollee ddee FFlluuxxoo ppoorr HHaarrddwwaarree

  Caso o modem suporte controle de fluxo por hardware (RTS/CTS),
  recomendo fortemente o uso deste. Primeiro, deve-se habilitar o fluxo
  RTS/CTS da porta serial. Isso deve ser realizado na inicialização do
  Linux, por exemplo em /etc/rc.d/rc.local ou /etc/rc.d/rc.serial.
  Esteja seguro de que estes arquivos sejam executados a partir do
  programa rc.sysinit principal. Deve-se executar o seguinte comando
  para cada porta serial na qual se deseje habilitar o controle de fluxo
  por hardware:

       stty crtscts < /dev/ttyS3




  Caso isto não seja habilitado por padrão, deve-se habilitar ainda o
  fluxo RTS/CTS no modem. O programa de comunicação pode fazer isto.
  Consulte o manual do modem caso seja necessário e então salve as
  configurações do modem, caso ele suporte a guarda de arquivos de
  configuração.


  66..  CCoommoo DDiissccaarr ee RReecceebbeerr LLiiggaaççõõeess CCoomm oo MMooddeemm UUssaannddoo ggeettttyy__ppss

  Configure o modem para discar corretamente. Caso não se tenha lido a
  seção ``Como Discar Com Um Modem'', por favor _l_e_i_a _a_g_o_r_a! Ela contém
  informações _m_u_i_t_o importantes de configuração. _N_ã_o _é _n_e_c_e_s_s_á_r_i_o ler
  esta seção caso se deseje utilizar o modem somente para _d_i_s_c_a_r.


  66..11..  CCoonnffiigguurraaççããoo ddee MMooddeemm PPaarraa DDiissccaarr ee RReecceebbeerr CChhaammaaddaass

  Para discar e receber chamada, é _o_b_r_i_g_a_t_ó_r_i_o configurar o modem de uma
  maneira específica (novamente usando comandos AT de modem):



       E1              modo ECO ativo
       Q0              códigos de retorno ativos
       V1              modo de resposta ativo
       S0=0    jamais responder (uugetty lida com isto através da opção WAITFOR)




  Caso isso não seja configurado corretamente, os comandos INIT no
  arquivo de configuração podem falhar, perdendo-se todo o processo. Mas
  temos mais detalhes sobre arquivos de configuração:


       &C1     DCD estará ativo somente após a conexão.
       &S0     DSR estará sempre ativo.
       DTR on/off reinicializa o modem (dependendo do fabricante - RTFM).




  Este parâmetros afetam o comportamento do modem quando uma chamada é
  iniciada ou finalizada.

  Caso o modem não suporte o armazenamento de configurações, pode-se
  definir estes parâmetros através dos comandos especificados em INIT no
  arquivo de configuração. Veja a seguir maiores detalhes. Alguns modems
  vêm com chaves de configuração que afetam os conteúdos dos
  registradores. Esteja seguro de configurá-los corretamente, também.


  Iniciei uma lista de configurações específicas para diferentes tipos
  de modems. Até aqui eu tenho alguns disponíveis e caso você queira
  adicionar algumas outras configurações funcionais, por favor faça
  isto. A lista pode ser encontrada em
  ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs.


  Nota: para conseguir com que meu modem USR Courier V.34
  reinicializasse corretamente quando DTR caía, tive que configurar &D2
  e S13=1 (isto configura o bit 0 do registrador S13). Seguramente isto
  funciona bem também com modems USR Sportster V.34.


  Nota: alguns modems supra tratam DCD diferentemente de outros modems.
  Caso se esteja utilizando um Supra, tente configurar &C0 e _n_ã_o &C1.
  Deve-se também configurar &D2 para lidar corretamente com DTR.


  66..22..  IInnssttaallaannddoo ggeettttyy__ppss

  Obtenha a última versão em metalab.unc.edu:/pub/Linux/system/serial.
  Particularmente caso se deseje utilizar velocidades altas (57600 e
  115200 bps), deve-se utilizar a versão 2.0.7j ou posterior. Deve-se
  usar ainda a libc 5.x ou superior.

  Por padrão, getty_ps será configurado para estar compatível com o
  Linux FSSTND  (Padrão de Sistema de Arquivos), o que significa que os
  binários estarão em /sbin e os arquivos de configuração serão
  denominados /etc/conf.{uu}getty.ttyS_N. Isso pode não estar evidente na
  sua documentação! Deve-se ter ainda arquivos de reserva de recursos no
  diretório /var/lock.

  Caso não se utilize a compatibilidade FSSTND, os binários residirão em
  /etc, os arquivos de configuração estarão em
  /etc/default/{uu}getty.ttyS_N e os arquivos de reserva de recursos
  estarão localizados em  /usr/spool/uucp. Recomendo fazê-lo desta forma
  caso se deseje utilizar o modem em conexões tipo UUCP, uma vez que
  este terá problemas em mover os arquivos de reserva de recursos para
  um local onde eles não sejam monitorados.


  getty_ps pode usar também o  syslogd para o registro de ocorrências.
  Veja as páginas de manual on-line de syslogd(1) e syslog.conf(5) para
  configurar o syslogd caso ele ainda não esteja sendo executado.
  Mensagens são adicionadas com a prioridade definida em LOG_AUTH, erros
  usam LOG_ERR e depuração utiliza LOG_DEBUG. Caso não se deseje
  utilizar syslogd pode-se editar o arquivo tune.h nos arquivos de
  fontes de  getty_ps para utilizar um arquivo próprio para o registro
  de ocorrências, denominado por padrão /var/adm/getty.log.


  Decida se deseja utilizar a compatibilidade FSSTND e as capacidades de
  registros do syslog. Pode-se escolher por uma combinação dos dois.
  Edite o Makefile, tune.h e config.h para estarem de acordo com as suas
  decisões. Após compile e instale de acordo com as instruções incluídas
  no pacote.

  A partir deste ponto, todas as referências a getty estão relacionadas
  com getty_ps. Referências  a uugetty indicam o programa uugetty que
  vem com o pacote getty_ps. Estas instruções não funcionarão com mgetty
  ou agetty.


  77..  uuuuggeettttyy

  77..11..  CCoonnffiigguurraannddoo uuuuggeettttyy

  Esteja certo de que se tem à disposição um dispositivo com capacidade
  de envio e recepção de dados na porta serial. Caso o modem esteja em
  ttyS3 será necessário utilizar os arquivos especiais de dispositivos
  /dev/cua3, e /dev/ttyS3. Caso não se tenha os dispositivos corretos,
  veja a seção ``Criando Dispositivos Em  <tt>/dev</tt>'' sobre como
  criar arquivos de dispositivos, e proceda de acordo com o ali
  descrito. Caso se deseje habilitar a discagem do modem enquanto
  uugetty está monitorando a porta à espera de solicitações de acesso,
  deve-se usar o dispositivo /dev/cua_N ao invés de /dev/ttyS_N [cua não
  será necessário se o software foi escrito para evitar estes
  problemas].


  uugetty executa importantes verificações dos arquivos de reserva de
  recursos. Atualize o arquivo /etc/gettydefs para incluir uma entrada
  para o modem. Ao se editar este arquivo, pode-se verificar se a
  sintaxe está correta executando-se o comando:



       linux# getty -c /etc/gettydefs





  77..11..11..  MMooddeemmss MMooddeerrnnooss

  Caso se tenha um modem de 9600 bps ou velocidade superior, pode-se
  travar a porta serial em uma velocidade específica. Por exemplo:



       # Velocidade Fixa Em 115200
       F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200






  Caso o modem esteja configurado para executar controle de fluxo
  RTS/CTS por hardware, pode-se adicionar CRTSCTS as seguintes entradas:



       # Velocidade Fixa Em 115200 com controle de fluxo de hardware
       F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200





  77..11..22..  MMooddeemmss AAnnttiiggooss ee LLeennttooss

  Caso se tenha um modem lento (menos de 9.600 bps), então ao invés de
  uma linha para uma simples velocidade, são necessárias diversas linhas
  com um determinado número de velocidades. Note que estas linhas estão
  conectadas umas às outras pela última "palavra" em cada linha, como
  por exemplo #38400. Linhas em branco são necessárias entre cada
  entrada.













  # Entradas de Modems
  115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600

  57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400

  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: #115200





  77..11..33..  MMeennssaaggeemm ddee AAcceessssoo

  Caso se deseje, pode-se tornar os retornos de uugetty em interessantes
  mensagens de acesso ao sistema. Nestes exemplos, foram colocados o
  nome do sistema, a linha serial e a velocidade atual. Pode-se ter os
  seguinte itens:


              @B    Velocidade de conexão atual (avaliada quando @B é vista).
              @D    Data atual no formato MM/DD/AA.
              @L    Linha serial à qual getty está conectado.
              @S    Nome do sistema.
              @T    Hora atual, no formato HH:MM:SS (24 horas).
              @U    O número de usuários conectados ao sistema. Este é um contador do
                    número de entradas no arquivo /etc/utmp cujo conteúdo do campo
                    ut_name seja diferente de nulo.
              @V    O valor de VERSION, conforme o definido no arquivo de padrões.
              Para apresentar um caracter '@', pode-se usar '\@' ou '@@'.





  77..22..  PPeerrssoonnaalliizzaannddoo oo uuuuggeettttyy

  Há diversos parâmetros que pode-se usar em cada porta disponível. Eles
  estão implementados em diferentes arquivos de configuração para cada
  porta. O arquivo /etc/conf.uugetty será utilizado em _t_o_d_a_s as
  instâncias de uugetty enquanto /etc/conf.uugetty.ttyS_N será usado
  somente por uma porta. Arquivos padrões de exemplo podem ser
  encontrados nos arquivos fontes de getty_ps, os quais estão
  disponíveis em algumas distribuições. Devido a questões de espaço, os
  arquivos não  serão listados. Note que ao se utilizar versões mais
  antigas de getty (anteriores a 2.0.7e) ou não se esteja usando o
  FSSTND, então o arquivo padrão será /etc/default/uugetty.ttyS_N.  O
  arquivo /etc/conf.uugetty.ttyS3 de Greg tem um conteúdo similar a:













  # exemplo de um arquivo de configuração uugetty para modems compatíveis com o
  # padrão Hayes que permitam a recepção de chamadas.

  #
  # arquivos de reserva de recurso alternado; caso o arquivo exista, então
  # uugetty será reinicializado, assim como o modem.
  #
  ALTLOCK=cua3
  ALTLINE=cua3
  # linha a ser inicializada
  INITLINE=cua3
  # tempo máximo de espera para desconectar caso esteja inativo
  TIMEOUT=60
  # comandos de inicialização do modem
  # formato: <esperado> <enviar> (seqüência de conversação)
  INIT="" AT\r OK\r\n
  WAITFOR=RING
  CONNECT="" ATA\r CONNECT\s\A
  # esta linha configura o tempo de espera antes de se enviar a mensagem de acesso ao sistema
  DELAY=1
  #DEBUG=010




  Adicione a seguinte linha ao arquivo /etc/inittab, fazendo com que o
  programa uugetty seja executado na porta serial (substituindo a
  informação do ambiente - arquivos de configuração, porta, velocidade e
  tipo padrão de terminal):


       S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100




  Reinicialize o init:


       linux# init q




  Para o parâmetro velocidade no arquivo /etc/inittab pode-se usar a
  maior velocidade em bps suportada pelo modem.

  Agora o Linux estará monitorando a porta à espera de conexões. Disque
  a partir de um outro sistema e acesso o sistema Linux local.

  O uugetty disponibiliza uma série de opções. Veja a página de manual
  para uma descrição completa do getty(1m). Entre outras opções existem
  agendamento de comandos ou retorno de chamadas por exemplo.


  88..  CCoommoo CCoonnffiigguurraarr UUmm TTeerrmmiinnaall CCoonneeccttaaddoo aa UUmm PPCC??

  Veja em COMO FAZER  - Terminais de Texto para uma discussão mais
  detalhada (mas ainda incompleta) sobre terminais. AS instruções nesta
  seção funcionarão para terminais conectados, assim como para outros
  computadores ligados em uma porta serial de sua máquina Linux.





  88..11..  RReeqquuiissiittooss ddee HHaarrddwwaarree

  Esteja seguro de se ter o tipo de cabo correto. Um cabo que anula
  modems adquirido em uma típica loja de informática pode ser o
  suficiente, mas não funcionará com parâmetros de controle de fluxo por
  hardware. Mas deve ser um cabo de tipo _n_u_l_l _m_o_d_e_m. Muitas lojas de
  computadores anunciam este cano como de "impressoras seriais". Esteja
  certo de usar a porta serial correta, a conexão macho DB25 ou DB9, e
  não a porta paralela (DB25 fêmea ou Centronics).


  Para um conector DB25, o mínimo necessário será:


        PC DB25 Macho                 Terminal DB25
          TxD   Transmissão de Dados  2 --> 3     RxD   Recepção de Dados
          RxD   Recepção de Dados     3 <-- 2     TxD   Transmissão de Dados
          SG    Sinal Terra           7 --- 7     SG    Sinal Terra



  Esta configuração de cabo de modem nulo funciona perfeitamente entre
  dois computadores que usem sinais de negociação de hardware RTS/CTS,
  mas muitos terminais usam negociação DTR que podem ser configuradas no
  Linux com "stty". Uma solução é usar stty crtscts e conectar o pino 20
  do terminal  (DTR) com o pino 5 do PC (CTS).


  PC DB25 Macho                   Terminal DB25
  TxD   Transmissão de Dados      2 --> 3    RxD   Recepção de Dados
  RxD   Recepção de Dados         3 <-- 2    TxD   Transmissão de Dados
  RTS   Solicitação de Envio      4 --> 5    CTS   Autorizado a Enviar
  CTS   Autorizado a Enviar       5 <-- 4    RTS   Solicitação de Envio
  DSR   Dados Prontos             6
                                  |
  DCD   Detecção de Portadora     8 <-- 20   DTR   Terminal de Dados Pronto
  SG    Sinal Terra               7 --- 7    SG    Sinal Terra
                                  6          DSR   Dados Prontos                                  |
  DTR   Terminal de Dados Pronto 20 --> 8    DCD   Detecção de Portadora



  Caso a porta utilize um conector do tipo DB9, tente a seguinte
  configuração de cabo:

  PC DB9                                  Terminal DB25
  RxD   Recepção de Dados     2 <-- 2     TxD   Transmissão de Dados
  TxD   Transmissão de Dados  3 --> 3     RxD   Recepção de Dados
  SG    Sinal Terra           5 --- 7     SG    Sinal Terra



  Alternativamente, um cabo de modem nulo DB)'DB25 pode ser usado (não
  deverá funcionar com negociação por hardware, conforme descrito
  anteriormente):











  PC DB9                       Terminal DB25
  RxD   Recepção de Dados      2 <-- 2     TxD   Transmissão de Dados
  TxD   Transmissão de Dados   3 --> 3     RxD   Recepção de Dados
                                     6     DSR   Conjunto de Dados Prontos
                                     |
  DTR   Dados Prontos          4 --> 8     DCD   Detecção de Portadora
  GND   Sinal Terra            5 --- 7     GND   Sinal Terra
  DCD   Detecção de Portadora  1
                               |
  DSR   Dados Prontos          6 <-- 20    DTR   Dados Prontos
  RTS   Requisição para Enviar 7 --> 5     CTS   Autorizado a Enviar
  CTS   Autorizado a Enviar    8 <-- 4     RTS   Requisição Para Enviar
  (RI   Indicador de Campainha 9 desnecessário)


  (Sim, os pinos 3 e 3 _r_e_a_l_m_e_n_t_e têm significados opostos em conectores
  DB9 em relação a conectores DB25).

  Caso não se esteja usando uma cabo de modem nulo completo, deve-se
  seguir o seguinte procedimento: no conector do lado do computador,
  conecte RTS e CTS junto e conecte ainda DSR, DCD e DTR juntos. Desta
  forma, quando o computador necessitar de um sinal de negociação, ele o
  obterá de si próprio.

  Agora que temos o tipo de cabo correto, conecte o terminal ao
  computador. Caso seja possível diga ao terminal para ignorar os sinais
  de controle do modem. Tente utilizar 9600 bps, 8 data bits, 1 stop
  bit, sem bits de paridade para a configuração do terminal (ou habilite
  a paridade caso se deseje uma conexão mais sofisticada).


  88..22..  CCoonnffiigguurraannddoo ggeettttyy  ((ppaarrttee ddoo ggeettttyy__ppss ))

  Consulte o manual do getty para maiores informações sobre outros
  programas como agetty. Adicione as entradas em getty para utilizar o
  terminal em /etc/gettydefs caso elas ainda não estejam configuradas:


       # 38400 bps Entrada de Terminal Burro
       DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400

       # 19200 bps Entrada de Terminal Burro
       DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200

       # 9600 bps Entrada de Terminal Burro
       DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600




  Caso se deseje, pode-se fazer com que getty liste informações
  interessantes na mensagem de acesso ao sistema. Nestes exemplo, temos
  o nome do sistema e a linha serial. Pode-se adicionar outras
  informações, como por exemplo:












  @B    Velocidade de conexão atual (avaliada quando @B é vista).
  @D    Data atual no formato MM/DD/AA.
  @L    Linha serial à qual getty está conectado.
  @S    Nome do sistema.
  @T    Hora atual, no formato HH:MM:SS (24 horas).
  @U    O número de usuários conectados ao sistema. Este é um contador do
        número de entradas no arquivo /etc/utmp cujo conteúdo do campo
        ut_name seja diferente de nulo.
  @V    O valor de VERSION, conforme o definido no arquivo de padrões.
  Para apresentar um caracter '@', pode-se usar '\@' ou '@@'.




  Ao se editar o arquivo /etc/gettydefs, é possível verificar sua
  sintaxe através do comando:


       linux# getty -c /etc/gettydefs





  Esteja seguro de que não haja nenhum arquivo de configuração getty ou
  uugetty para a porta serial do terminal conectado a
  (/etc/default/{uu}getty.ttyS_N ou /etc/conf.{uu}getty.ttyS_N), pois isto
  irá provavelmente inrferir com a execução de getty em um terminal.
  Remova este arquivo caso ele exista.

  Edite o arquivo /etc/inittab para que o programa getty seja executado
  na porta serial (substituindo a informação atual: porta, velocidade e
  tipo de terminal padrão):


       S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100




  Reinicialize o init:


       linux# init q




  Neste ponto deve estar visível um indicador de linha de comandos no
  terminal. Pode-se pressionar Enter para se obter o comando do
  terminal.


  88..33..  NNoottaass SSoobbrree aa CCoonnffiigguurraaççããoo ddee UUmm PPCC CCoommoo UUmm TTeerrmmiinnaall


  Muitas pessoas configuram PCs como terminais conectados a máquinas
  Linux. Por exemplo, antigos PCs 8088 ou 80286 PCs são muito adequados
  para este propósito. Tudo o que se necessita é um disco de
  inicialização DOS contendo uma versão compatível com o terminal-PC e
  um programa de comunicação adequado. O kermit funciona bem pra este
  propósito, por exemplo. Pode-se encontrar versões pré-compiladas do
  kermit para praticamente todos os tipos de Sistemas Operacionais
  existentes em http://www.columbia.edu/kermit/. Outros programas
  populares de comunicação são o telix e o procomm, e funcionarão muito
  bem. Esteja seguro de informar a porta serial correta na configuração
  das comunicações do terminal-PC.


  99..  PPoossssoo UUssaarr MMaaiiss ddee DDooiiss DDiissppoossiittiivvooss SSeerriiaaiiss??

  Não será necessário ler esta seção, a menos que se deseje usar três ou
  mais dispositivos seriais (assumindo que não se esteja utilizando uma
  placa multiserial).

  O número de portas seriais que se pode utilizar é limitada pelo número
  de interrupções (IRQs) e endereços da porta de E/S utilizados. Esta
  não é uma limitação do Linux, mas sim do barramento do PC. Cada
  dispositivo serial deve ter definido seu endereço e interrupção
  próprias. Caso dois dispositivos compartilhem a mesma interrupção o
  seu funcionamento somente se dará de forma adequada caso ambos não
  estejam funcionando simultaneamente (em muitos casos, os dois
  programas não podem sequer serem executados ao mesmo tempo). Um
  dispositivo serial pode ser uma porta, um modem interno ou uma placa
  multiserial.


  Placas multiseriais são especialmente desenhadas para terem múltiplas
  portas que compartilham a mesma IRQ para todas as portas seriais da
  placa. Linux obtém dados a partir delas usando um endereço de E/S
  diferente para cada porta da placa.


  99..11..  DDeeffiinniinnddoo aass IInntteerrrruuppççõõeess ddoo DDiissppoossiittiivvoo SSeerriiaall

  Um PC normalmente vem configurado com ttyS0 e ttyS2 na IRQ 4 e ttyS1 e
  ttyS3 na IRQ 3. Pode-se verificar quais as IRQs estão em uso através
  do comando: setserial /dev/ttyS2, etc.. A observação do arquivo
  /proc/interrupts mostrará algumas delas. Para utilizar mais de dois
  dispositivos seriais será necessário redefinir um interrupção. Uma boa
  opção é redefinir um interrupção da porta paralela. Um PC normalmente
  vem com IRQ 5 e IRQ 7 configuradas como interrupções das portas
  paralelas, mas pouca gente utiliza as duas. Pode-se então utilizar uma
  das interrupções em dispositivos seriais e ainda assim utilizar uma
  das portas paralelas com uma impressora, por exemplo. O programa
  setserial será utilizado nesta tarefa. Adicionalmente, pode ser
  necessário lidar com chaves de configuração na placa. Para tanto
  verifique a sua documentação. Configure as chaves para a IRQ desejada
  para cada porta.


  Deve-se configurar as portas, de forma haja uma e somente uma
  interrupção relacionada com um e somente um  dispositivo serial. A
  seguir apresentamos um exemplo do arquivo /etc/rc.d/rc.local, o qual
  deve ser feito em um arquivo que seja executado na inicialização:


       /sbin/setserial /dev/ttyS0 irq 3        # mouse serial
       /sbin/setserial /dev/ttyS1 irq 4        # terminal burro Wyse
       /sbin/setserial /dev/ttyS2 irq 5        # modem Zoom
       /sbin/setserial /dev/ttyS3 irq 9        # modem USR




  IRQs padrões:






                IRQ  0    Timer canal 0
                IRQ  1    Teclado
                IRQ  2    Controladora 2
                IRQ  3    Porta Serial 2
                IRQ  4    Porta Serial 1
                IRQ  5    Porta Paralela 2
                IRQ  6    Unidade de disquete
                IRQ  7    Porta paralela 1
                IRQ  8    Relógio
                IRQ  9    Redirecionada para IRQ2
                IRQ 10    não definida
                IRQ 11    não definida
                IRQ 12    não definida
                IRQ 13    Co-processador Matemático
                IRQ 14    Controladora de Disco Rígido 1
                IRQ 15    Controladora de Disco Rígido 2



  Não há uma receita ideal de como escolher as interrupções a serem
  utilizadas. Somente esteja seguro de que ela não esteja sendo usada
  pela placa mãe ou qualquer outra placa. IRQs 2, 3, 4, 5 ou 7
  constituem boas possibilidades; "não definida" significa que
  atualmente nenhum padrão foi definido para estas IRQs. Note também que
  IRQ 2 é igual a IRQ 9. Pode-se então utilizar IRQ 2 ou 9 que o
  programa de controle da serial atuará adequadamente. Caso se tenha uma
  placa serial com um conector 16 bits, pode-se usar também IRQs 10, 11,
  12 ou 15.


  Esteja seguro de não utilizar IRQs 0, 1, 6, 8, 13 ou 14! Elas são
  utilizadas pela placa mãe e ficará muito desapontada ao ser usurpada
  de suas interrupções. Ao finalizar confira tudo novamente no arquivo
  /proc/interrupts e esteja seguro de que não há conflitos.


  99..22..  CCoonnffiigguurraannddoo EEnnddeerreeççooss ddee DDiissppoossiittiivvooss SSeerriiaaiiss

  A seguir, deve-se configurar os endereços das portas. Verifique o
  manual da placa no que se refere às chaves de configuração. Assim como
  interruptores, somente pode haver um dispositivo serial para cada
  endereço. As portas normalmente são configuradas da seguinte forma:


       ttyS0 address 0x3f8
       ttyS1 address 0x2f8
       ttyS2 address 0x3e8
       ttyS3 address 0x2e8




  Escolha qual endereço se deseja para cada dispositivo serial e
  configure as chaves adequadamente. Meu modem está em ttyS3, o mouse em
  ttyS0 e o terminal em ttyS2.

  Durante a inicialização do sistema, Linux verifica as portas seriais
  nos endereços definidos. A IRQ checada pelo Linux pode não
  corresponder a IRQ configurada através das chaves. Não se preocupe com
  isso. Linux não executa qualquer processo de detecção de IRQs no
  início do sistema, pois este processo é falho e pode se facilmente
  "enganado". Utilize o programa  setserial para informar ao Linux qual
  porta IRQ é utilizada. Pode-se checar o arquivo /proc/ioports para
  verificar quais os endereços de portas de E/S estão em uso após a
  inicialização do Linux.

  1100..  CCoommoo CCoonnffiigguurraarr MMiinnhhaass PPoorrttaass SSeerriiaaiiss PPaarraa VVeelloocciiddaaddeess MMaaiioorreess??
  QQuuaall AA VVeelloocciiddaaddee QQuuee DDeevvee SSeerr UUssaaddaa CCoomm MMeeuu MMooddeemm??

  Esta seção deve ajudá-lo a descobrir qual a velocidade a ser utilizada
  ao se usar o modem com o programa de comunicação, ou com o programa
  getty. Normalmente basta configurar a velocidade para um parâmetro
  fornecido por getty ou por um menu no programa de comunicações (ou no
  arquivo de configuração). Se por alguma razão isto não funcionar para
  velocidades maiores, há uma forma alternativa através do fornecimento
  de opções especiais para o programa setserial:   com as opções spd_hi
  ou spd_vhi fornecidas para setserial, a configuração a  38400 irá na
  verdade configurar a velocidade para 57600(spd_hi) ou 115200
  (spd_vhi).

  Esteja certo de ter no mínimo uma UARTs para velocidades maiores.
  Seguem algumas velocidades sugeridas:

  ·  Caso se tenha um modem 28.8 Kbps (V.34), 33.6 Kbps (V.34) ou 56
     Kbps (V.90) use a velocidade de 115200 bps.

  ·  Caso se tenha um modem 14.4 Kbps (V.32 bis) com uma compressão V.42
     bis use a velocidade de 57.600 bps.

  ·  Caso se tenha um modem 9.600 bps (V.32) com compressão de dados
     V.42 bis, use a velocidade de 38.400 bps.

  ·  Caso se tenha um modem mais lento que 9.600 bps (V.32), configure a
     velocidade para a maior mais suportada pelo modem. Por exemplo, 300
     bps (V.21/Bell 103), 1200 bps (V.22/Bell 212A) ou 2400 bps
     (V.22bis).

  Teste o modem inicialmente na linha de comando e quando tudo estiver
  funcionando, coloque-o nos arquivos /etc/rc.d/rc.serial,
  /etc/rc.d/rc.local ou em /etc/rc.boot/0setserial fazendo com que eles
  sejam executados no momento da inicialização do sistema. Esteja seguro
  de estar usando um caminho válido para o comando setserial e um nome
  de dispositivo válido. Pode-se verificar a configuração de uma porta
  serial através do comando:


       setserial -a /dev/ttyS3





  1111..  PPrrooggrraammaass ee UUttiilliittáárriiooss ddee CCoommuunniiccaaççããoo

  Segue uma lista de alguns softwares de comunicação que podem ser
  obtidos via FTP, caso não estejam presentes na distribuição.


  ·  ecu - um programa de comunicação.

  ·  C-Kermit <http://www.columbia.edu/kermit/> - portável, programável,
     comunicação serial e TCP/IP incluindo transferência de arquivos e
     conversões de conjunto de caracteres.

  ·  minicom - similar ao programa de comunicações telix.

  ·  procomm - programa de comunicações similar ao procomm com zmodem.

  ·  seyon - programa de comunicação baseado no XWindow.

  ·  xc - pacotes de comunicações xcomm.

  ·  Outros programas úteis são term e SLiRP. Eles oferecem
     funcionalidades TCP/IP usando uma conta de acesso a um ambiente de
     trabalho.

  ·  O screen é outro programa multisessão. Comporta-se como se tivesse
     consoles virtuais.

  ·  O callback é um programa que permite a chamada permite as chamadas
     de retorno efetuadas pelo modem.

  ·  O mgetty+fax é lido com fax e provê uma alternativa a ps_getty.

  ·  O ZyXEL é um programa de controle para modems ZyXEL U-1496. Lido
     com recebimento de chamadas, discagem, segurança no recebimento de
     chamadas de retorno e caixa de postal com voz.

  ·  Os softwares SLIP e PPP podem ser encontradas em
     ftp://metalab.unc.edu/pub/Linux/system/network/serial.

  ·  Outras coisas podem ser encontradas em
     ftp://metalab.unc.edu/pub/Linux/system/serial e
     ftp://metalab.unc.edu/pub/Linux/apps/serialcomm ou um de seus
     muitos espelhos. Estes são os diretórios onde os programas para
     portas seriais são mantidos.


  1122..  DDiiccaass ee TTóóppiiccooss DDiivveerrssooss

  Seguem aqui algumas dicas que podem ser muito úteis:


  1122..11..  kkeerrmmiitt ee zzmmooddeemm

  Para usar zmodem com kermit, adicione o seguinte conteúdo ao arquivo
  .kermrc:


       define rz !rz < /dev/ttyS3 > /dev/ttyS3
       define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3




  Esteja seguro de colocar a porta correta do modem. Então para
  utilizá-lo, basta digitar rz ou sz <nome_do_arquivo> e o indicador de
  linha de comandos kermit.


  1122..22..  CCoonnffiigguurraaççããoo ddee ttiippooss ddee tteerrmmiinnaaiiss ""aauuttoommaaggiiccaammeennttee""

  Para configurar os tipos de terminais automaticamente ao se conectar
  ao sistema, adicione o tipo de terminal como uma entrada no arquivo
  /etc/inittab. Caso se tenha um terminal vt100 em ttyS1, pode-se
  adicionar ``vt100'' ao comando getty:


       S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100




  Outros gettys têm opções similares. Pode-se usar o comando tset, o
  qual pode estabelecer as características do terminal durante o acesso
  do usuário e não depende de nenhum padrão.


  1122..33..  CCoommaannddoo llss  eemm ccoorreess eemm ccoonneexxõõeess sseerriiaaiiss


  Caso o ls esteja gerando problemas na emulação de terminal com
  funcionalidades em cor, desabilite-as. Os comandos  ls --color e ls
  --colour utilizam as funcionalidades de cores. Algumas instalações têm
  o comando ls configurado para cores por padrão. Verifique os arquivos
  /etc/profile e /etc/csh.cshrc como nomes alternativos do comando ls.
  Pode-se criar nomes alternativos ao ls com o formato ls --no-color,
  caso não se deseje alterar os padrões do sistema.


  1122..44..  IImmpprriimmiinnddoo eemm uummaa iimmpprreessssoorraa sseerriiaall ccoonneeccttaaddaa


  Há um programa chamado vtprint, disponível em
  ftp://ftp.sdsu.edu/pub/vtprint e http://www.sdsu.edu/~garrett.

  Outro programa com funcionalidades similares é chamado xprt. Ele pode
  ser encontrados em ftp://metalab.unc.edu/pub/Linux/system/printing.


  1122..55..  ÉÉ ppoossssíívveell oo LLiinnuuxx ccoonnffiigguurraarr ddiissppoossiittiivvooss sseerriiaaiiss
  aauuttoommaattiiccaammeennttee??

  Sim. Caso a configuração já não tenha sido realizada desta forma,
  pode-se configurar o Linux para detectar e configurar dispositivos
  seriais automaticamente ao ser inicializado. Caso necessário deve-se
  adicionar a seguinte linha:



       /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig




  ao arquivo /etc/rc.d/rc.local,  /etc/rc.d/rc.serial ou em
  /etc/rc.boot/0setserial. Isto deve ser realizado para cada porta
  serial que se deseje autoconfigurar. Esteja seguro de fornecer um nome
  de dispositivo que realmente exista na sua máquina.


  1122..55..11..  NNoottaass ppaarraa ppllaaccaass mmuullttiisseerriiaaiiss

  Para endereços de placas e IRQs, observe os arquivos rc.serial ou
  /etc/rc.boot/0setserial que acompanham o programa setserial. Eles
  trazem uma série de detalhes sobre placas multiseriais, incluindo-se
  endereços de E/S e nomes de dispositivos.


  1122..66..  UUssaannddoo UUmm  CCoonnssoollee SSeerriiaall

  Existe um artigo no número 36 da revista _L_i_n_u_x _J_o_u_r_n_a_l,
  http://www.ssc.com/lj/issue36/index.html, que explica como usar um
  console serial. Veja também o COMO FAZER Terminais Texto.


  1122..77..  MMaaiioorreess vveelloocciiddaaddeess eemm sseerriiaaiiss

  Caso se esteja obtendo baixas velocidades e erros em uma porta serial
  em um sistema com dispositivos de discos (E)IDE, pode-se utilizar o
  programa hdparm. É um utilitário que pode modificar parâmetros (E)IDE,
  incluindo desmascaramento de outras IRQs durante uma interrupção de
  disco. Este procedimento irá incrementar a performance de tempo de
  resposta e ajudará a eliminar os erros de espera. Esteja certo de ler
  as páginas de manual on-line muito cuidadosamente, uma vez que algumas
  combinações de dispositivos e controladoras não funcionam muito bem e
  podem corromper o sistema de arquivos.

  Verifique também um utilitário chamado irqtune o qual irá mudar a
  prioridade do IRQ de um dispositivo, por exemplo a porta serial a qual
  um modem esteja conectado. Este procedimento poderá incrementar a
  velocidade da porta serial do sistema local. O FAQ do irqtune está
  disponível em  http://www.best.com/~cae/irqtune.


  1133..  UUmm ppaassssoo aaddiiaannttee......

  Esta seção não necessita ser lida, mas pode fornecer algumas
  informações adicionais e um melhor conceito do Unix e do mundo das
  telecomunicações.


  1133..11..  OO qquuee ssããoo aarrqquuiivvooss ddee rreesseerrvvaa ddee rreeccuurrssooss??

  Arquivos de reserva de recursos são arquivos simples que indicam que
  um dispositivo em particular está em uso no momento. Eles são mantidos
  no diretórios /usr/spool/uucp ou /var/lock.  Arquivos de reserva do
  Linux são denominados LCK.._n_o_m_e, onde _n_o_m_e é a denominação do
  dispositivo ou o nome do site UUCP. Certos processos criam estes
  arquivos, passando a ter então acesso exclusivo aos dispositivos. Por
  exemplo caso se faça uma conexão discada com o modem, um arquivo de
  reserva de recursos avisa aos outros processos que o modem já está
  sendo usado. Muitos programas verificam a existência deste tipo de
  arquivo e tentam determinar se o arquivo ainda é válido através da
  checagem da existência do processo que criou o arquivo junto à tabela
  de processos em execução. Caso o arquivo encontrado seja válido, ou
  seja,  o processo que criou o arquivo de reserva ainda esteja sendo
  executado, o novo processo deve ser finalizado. Caso o processo que
  criou o arquivo não esteja em execução, o novo programa removerá o
  arquivo e utilizará o dispositivo criando o seu próprio arquivo de
  reserva de recurso. Alguns programas simplesmente finalizam avisando
  que o dispositivo está em uso, sem verificar a tabela de processos.


  1133..22..  ````bbaauudd'''' VVss.. ````bbppss''''

  ``baud'' e ``bps'' são talvez os termos mais mal usados no campo da
  computação e telecomunicações. Muitas pessoas usam estes termos
  indiscriminadamente, como se fossem idênticos, quando na verdade não
  são.

     bbaauudd
        A taxa de bauds é a medida de quantas vezes em um segundo um
        sinal, por exemplo um enviado por um modem (mmoodulador-
        ddeemmodulador) é alterado. Por exemplo uma taxa de bauds de 1200
        significa dizer que um sinal muda a cada 833 microsegundos.
        Taxas de bauds comuns são 50, 75, 110, 300, 600, 1200 e 2400.
        Muitos modems de alta velocidade rodam a uma taxa de 2.400
        bauds. Devido à limitação de banda em linhas de voz, taxas
        maiores são muito difíceis de serem obtidas e somente funcionam
        em linhas de voz de alta qualidade. Múltiplos bits podem ser
        codificados por baud a fim de se obter taxas de envio de bits
        superiores a taxa de bauds. ``Baud'' tem seu nome em homenagem a
        Emile Baudot, o inventor da impressora telegráfica assíncrona.


     bbppss
        A taxa de bps (bits por segundo) significa  quantos bits por
        segundo foram transmitidos. Taxas comuns de bps eram
        oficialmente conhecidas como 50, 75, 110, 300, 1200, 2400, 9600.
        Hoje temos ainda 14.4 Kbps, 28.8 Kbps, 33.6 Kbps e 56 Kbps;
        estes valores não correspondem às taxas no cabo que interliga o
        modem à porta serial, que são (além das antigas velocidades de
        modems citadas acima): 19.2 Kbps, 38.4 Kbps, 57.6 Kbps  e
        115.2Kbps.  Usando modems com compressão V.42 bis (que pode
        chegar até uma taxa de 4:1), taxas de até 115.2 Kbps tornam-se
        possíveis.


  Então, se um modem de alta velocidade está obtendo 2.400 bauds, como
  eles podem enviar dados a 14.400 bps ou ainda mais? Os modems atingem
  uma taxa de bps maior que a taxa de bauds através da codificação de
  diversos bits em cada mudança de sinal ou mudança de fase. Ou seja
  quando 2 ou mais bits são codificados por baud, a taxa de bps supera a
  taxa de bauds. Caso o modem conecte-se a 14.400 bps, ele está enviando
  6 bits por mudança de fase a 2.400 bauds.

  Como tudo isso começou? Quando os antigos modems de baixa velocidade
  eram os mais rápidos disponíveis, a taxa de bps era efetivamente igual
  à taxa de bauds. Um bit era enviado a cada mudança de fase. Podia-se
  usar bps ou baud indiscriminadamente, uma vez que eles tinham o mesmo
  valor. Por exemplo, um modem de 300 bps tinha também uma taxa de bauds
  igual a 300. Isso começou a mudar quando modems mais rápidos surgiram
  e a taxa de bits superou a de bauds.


  1133..33..  OO qquuee ssããoo UUAARRTTss??  CCoommoo eellaass aaffeettaamm aa ppeerrffoorrmmaannccee??

  UARTs (Transmissor e Receptor Assíncrono Universal ou UUniversal
  AAsynchronous RReceiver TTransmitter) são chips localizados na placa
  serial do PC (caso se utilize uma)  ou na placa mãe. A função da UART
  pode ser executada também por por chips que executam outras funções. O
  propósito da UART é converte dados para bits, enviá-los pela linha
  serial e reconstruir os dados novamente na outra extremidade da linha.
  UARTs lidam com dados divididos em pedaços de bytes, os quais são
  convenientemente o tamanho dos caracteres ASCII.

  Suponhamos que se tenha um terminal conectado a um PC. Ao se digitar
  um caractere, o terminal envia o caracter ao transmissor (também um
  UART). O transmissor envia o byte em uma linha serial, um bit de cada
  vez, em uma velocidade específica. Na ponta do PC, a UART receptora
  recebe todos os bits, recompondo o byte e o disponibiliza em um
  buffer.

  Há dois tipos diferentes de UARTs. As chamadas UARTs burras - 8250 e
  16450, e UARTs FIFO - 16550A. Para entender as suas diferenças,
  inicialmente vamos examinar o que acontece quando uma UART envia ou
  recebe um byte.

  A UART por si só não faz absolutamente nada com os dados, ela
  simplesmente os envia ou os recebe. Para UARTS originais, a CPU obtém
  uma interrupção a partir do dispositivo serial toda vez que um byte é
  enviado ou recebido. A CPU então move o byte recebido para fora do
  buffer da UART para algum lugar na memória ou fornece outro byte a
  UART para ser enviado. As UARTs 8250 e 16450 têm somente um byte de
  buffer,  o que significa que cada vez que 1 byte é recebido ou
  enviado, a CPU será interrompida. Em baixas velocidades, isso funciona
  bem, porém em taxas maiores a CPU se torna tão ocupada lidando com a
  UART que não lhe resta muito tempo para lidar com outras tarefas. Em
  alguns casos, a CPU não consegue atender o serviço de interrupções
  adequadamente, fazendo com que o byte recebido anteriormente seja
  sobrescrito, uma vez que eles estejam chegando em uma velocidade maior
  da que eles possam ser tratados.

  É nesse momento que a UART 16550A se torna muito útil. Estes chips vêm
  com FIFOs de 16 bytes, o que significa que eles podem receber ou
  transmitir até 14 bytes antes de interromper a CPU. Não somente podem
  esperar, assim como podem transferir os 14 bytes de uma só vez. Apesar
  da interrupção não estar sempre configurada para receber todos os 14
  bytes em uma única transferência, esta vantagem ainda é significativa
  sobre outros tipos de UART, os quais têm somente um 1 byte de buffer.
  A CPU recebe menos interrupções e é livre para outras coisas. Dados
  não são perdidos e tudo funciona perfeitamente (existe uma UART 16550,
  mas ela é tratada como uma 16450 uma vez que tem problemas).

  Em geral, UARTs 8250 e 16450 devem ser adequadas para velocidades de
  até 38.400 bps. Para velocidades maiores, possivelmente se tenha perda
  de dados. Outros sistema operacionais de PC como DOS não são
  multitarefas, podendo então lidarem de maneira mais otimizada com
  UARTs mais antigas. Esta é a causa porque não se percebe a perda de
  dados até que se passe a utilizar o Linux.

  Placas multiseriais inteligentes e equipamentos que não usem UARTs
  utilizam chips DSP para disponibilizarem buffers e controle que
  liberam ainda mais a CPU. Por exemplo as placas Cyclades Cyclom e
  Stallion EasyIO  usam uma UART RISC Cirrus Logic CD1400, e muitas
  placas usam CPUs 80186 ou ainda CPUs RISC especiais para lidar com E/S
  serial.

  Tenha em mente que UARTs do tipo burras não são ruins, elas
  simplesmente não conseguem lidar com velocidades de transmissão
  maiores. Não se deve ter nenhum problema em se conectar um mouse ou um
  terminal a essas UARTs. Porém para modems de alta velocidade uma UART
  16550A é uma necessidade.

  Muitos do PCs mais novos  (486s, Pentiums ou superiores) vêm com uma
  UART 16550A (nota: no momento da tradução deste COMO FAZER podemos
  afirmar que praticamente inexistem equipamentos novos sendo fabricados
  com UARTs burras). Caso se tenha um equipamento realmente antigo pode-
  se atualizá-lo através da aquisição de chips 16550A e da substituição
  das UARTs antigas. Porém se a funcionalidade está agregada a outros
  chips, a substituição não será possível. Caso uma UART 16450 esteja
  conectada à placa, a atualização pode ser simples, uma vez que ambas
  são compatíveis pino a pino em seus conectores. Pode ser mais simples
  simplesmente comprar uma placa serial na Internet (poucas lojas têm
  este tipo de produto atualmente).


  1144..  RReessoolluuççããoo ddee PPrroobblleemmaass

  1144..11..  EEssttaammooss rreecceebbeennddoo aa mmeennssaaggeemm ````lliinnhhaa NNNNNN  ddoo iinniittttaabb éé
  iinnvváálliiddaa''''..

  Esteja certo de usar a sintaxe correta da versão disponível do init.
  Diferentes programas init podem ter sintaxes diversas no arquivo
  /etc/inittab. Esteja certo de estar usando a sintaxe correta da versão
  disponível do getty.


  1144..22..  DDuurraannttee aa ddiissccaaggeemm éé rreecceebbiiddaa aa mmeennssaaggeemm ````//ddeevv//ccuuaa NN ::
  ddiissppoossiittiivvoo oouu rreeccuurrssoo ooccuuppaaddooss''''..

  Este problema pode acontecer quando DCD ou o  DTR não estão
  corretamente configurados. DCD somente pode ser configurado quando
  houver uma conexão estabelecida (ou seja quando se recebe uma
  chamada), e não quando getty estiver monitorando a porta serial.
  Esteja seguro de que o modem está configurado para somente ativar o
  DCD quando houver uma conexão estabelecida.  DTR deve ser configurado
  sempre que a porta estiver em uso, como por exemplo sendo monitorada
  pelo getty, kermit,  ou algum outro programa de comunicação.


  Outra causa comum de erros de dispositivos ocupados, se dá quando se
  configura a porta serial para usar uma interrupção já em uso por algum
  outro dispositivo. Cada vez que um dispositivo é inicializado ele
  solicita ao Linux permissão para usar a interrupção de hardware. O
  sistema operacional mantém controle sobre qual interrupção é designada
  para quem, e caso a interrupção já esteja sendo utilizada, o
  dispositivo não poderá ser adequadamente inicializado. O dispositivo
  não tem como informar exatamente este tipo de ocorrência, exceto ao se
  tentar utilizar a interrupção, quando retornará a mensagem de erro de
  dispositivo em uso. Verifique as interrupções de todas as placas
  (serial, Ethernet, SCSI, etc.), buscando os conflitos de IRQs.


  1144..33..  AA mmeennssaaggeemm ""ggeettttyy rreessppoonnddeennddoo mmuuiittoo rraappiiddaammeennttee:: ddeessaabbiilliittaaddoo
  ppoorr 55 mmiinnuuttooss""..

  Esteja certo de que o modem está configurado corretamente. Observe os
  registradores E e Q.  Isso pode ocorrer quando o modem estiver
  trocando informações com o programa getty.

  Esteja seguro de estar chamando getty corretamente a partir do
  /etc/inittab. Usar a sintaxe ou nomes de dispositivos incorretos irá
  provocar sérios problemas.

  Verifique se o arquivo /etc/gettydefs possui a sintaxe correta através
  do comando:


       linux# getty -c /etc/gettydefs





  Isto pode acontecer quando a inicialização do uugetty apresenta alguma
  falha. Veja a seção ``getty ou uugetty ainda não funciona''.


  1144..44..  DDiissppoossiittiivvooss sseerriiaaiiss ssããoo lleennttooss oouu ppooddeemm ttrraattaarr ooss ddaaddooss eemm
  ssoommeennttee uummaa ddiirreeççããoo..


  Possivelmente existe um conflito de IRQ. Esteja seguro de que não há
  IRQs em uso por mais de um dispositivo. Verifique todas as placas
  (serial, Ethernet, SCSI, etc.).  Esteja seguro de que as chaves de
  configuração e os parâmetros do comando setserial estão corretos para
  todos os dispositivos seriais. Verifique ainda se não há conflitos em
  /proc/ioports e /proc/interrupts.


  1144..55..  OO mmooddeemm ccoonnggeellaa aappóóss ddeesslliiggaarr oouu uuuuggeettttyy  nnããoo rreessppoonnddee..


  Isso pode acontecer caso o modem não seja reinicializado quando a DTR
  é desligada. Eu vi os indicadores luminosos RD e SD ficarem "loucos"
  quando isto aconteceu comigo, ou seja, o modem precisa ser
  reinicializado. Muitos modems compatíveis com o padrão Hayes suportam
  esta funcionalidade através do parâmetro &D3, mas não o meu US
  Robotics Courier, o qual teve que ser configurado com &D2 e S13=1.
  Verifique o manual do modem.


  1144..66..  OO tteerrmmiinnaall ccoonneeccttaaddoo aaoo PPCC ccoonnggeellaa aappóóss ssee ddiiggiittaarr oo nnoommee ddee
  aacceessssoo..


  ·  Caso se esteja utilizandogetty: Provavelmente não se tem uma
     entrada do parâmetro CLOCAL no arquivo /etc/gettydefs  para o
     terminal e provavelmente não se está usando um cabo de modem null
     completo. Será necessário configurar CLOCAL, o qual indica ao Linux
     que os sinais de controle de modem devem ser ignorados. Segue um
     exemplo de como fazer isto:


       # 38400 bps - Entrada de Terminal Burro
       DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400

       # 19200 bps - Entrada de Terminal Burro
       DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200

       # 9600 bps - Entrada de Terminal Burro
       DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600




  A seguir, finalize com o comando kill o processo  getty fazendo com
  que um novo seja acionado utilizando as novas configurações.

  ·  Caso se esteja utilizando agetty: Adicione  o indicador -L à linha
     agetty no arquivo /etc/inittab. Isso fará com que os sinais de
     controle de modem seja ignorados. A seguir reinicialize o init
     através do comando init q. Eles devem ter a seguinte aparência:


        s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100






  1144..77..  EEmm aallttaass vveelloocciiddaaddeess,, oo mmooddeemm ppeerrddee ddaaddooss..

  Caso se esteja tentando usar o modem em uma velocidade superior a
  38.400 bps e não se tem uma UART 16550A, deve-se atualizá-la. Veja a
  seção ``O que são UARTs?'' a qual aborda o tema.


  1144..88..  NNaa iinniicciiaalliizzaaççããoo LLiinnuuxx nnããoo ppaarreeccee rreeccoonnhheecceerr ooss ddiissppoossiittiivvooss
  sseerriiaaiiss nnaa ffoorrmmaa eemm qquuee eelleess ffoorraamm ccoonnffiigguurraaddooss..

  Esta é a única afirmação correta. Linux não faz qualquer detecção na
  sua inicialização, mas somente a detecção das portas seriais. Ignore o
  que quer que ele diga sobre IRQ porque ele está simplesmente assumindo
  os padrões, o que se deve ao fato desta detecção inicial não ser
  confiável. Porém quando o programa setserial altera as IRQ, o
  resultado pode ser visto na tela de inicialização.

  Então, mesmo que se tenha o ttyS2 configurado na IRQ 5, ainda assim
  veremos:


       Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A




  na inicialização do Linux.

  Deve-se usar o programa setserial para indicar qual a IRQ que está
  sendo usada.
  1144..99..  OO rrzz  ee//oouu oo sszz  nnããoo ffuunncciioonnaamm aaoo ssee ccoonneeccttaarr oo LLiinnuuxx aa uumm
  mmooddeemm..

  Caso o Linux procure por /dev/modem ao se tentar transferir arquivos,
  verifique o arquivo /etc/profile ou /etc/csh.cshrc. Pode haver uma
  grande quantidade de nomes alternativos em algumas distribuições, mais
  notadamente na Slackware. Essas abreviações conflitam com os programas
  zmodem. Retire-os ou faça as devidas correções.


  1144..1100..  AA tteellaa eessttáá aapprreesseennttaannddoo ccaarraacctteerreess eessttrraannhhooss..

  Isso ocorre quando se envia dados binários para consoles virtuais ou
  algumas vezes em conexões seriais. Isso pode ser corrigido ao se
  digitar echo ^v^[c. Para caracteres de controle sem os devidos pares,
  pode-se digitar:


       linux% echo <ctrl>v<esc>c





  1144..1111..  ggeettttyy  oouu uuuuggeettttyy  aaiinnddaa nnããoo ffuunncciioonnaamm

  Existe a opção DEBUG que acompanha o getty_ps. Edite o arquivo
  /etc/conf.{uu}getty.ttyS_N e adicione DEBUG=_N_N_N, onde _N_N_N é uma das
  seguintes combinações de números de acordo com o que se deseje
  depurar:


       D_OPT   001            opções de configuração.
       D_DEF   002            processamento padrão de arquivos.
       D_UTMP  004            processamento de utmp/wtmp.
       D_INIT  010            inicialização da linha (INIT).
       D_GTAB  020            processamento do arquivo gettytab.
       D_RUN   040            outros diagnósticos em tempo de execução.
       D_RB    100            depuração de chamada de retorno.
       D_LOCK  200            processamento de arquivo de reserva uugetty.
       D_SCH   400            processamento de agendamento.
       D_ALL   777            tudo.




  Configurar DEBUG=010 é uma boa opção de início.

  Caso se esteja executando syslogd, as informações de depuração serão
  apresentadas em /tmp/getty:ttyS_N  para a depuração do getty e em
  /tmp/uugetty:ttyS_N para o uugetty. Verifique no arquivo de depuração o
  que está acontecendo. Muitas vezes serão necessários novos parâmetros
  no arquivo de configuração assim como nova configuração  do modem.

  Pode-se ainda tentar o uso de  mgetty. Algumas pessoas podem ter mais
  sorte com isso.


  1155..  OOuuttrraass FFoonntteess ddee IInnffoorrmmaaççããoo


  ·  Páginas de manual on-line para: agetty(8), getty(1m), gettydefs(5),
     init(1), login(1), mgetty(8), setserial(8).

  ·  Manual de modem ou terminal.

  ·  COMO FAZER NET-3: tudo sobre redes, incluindo SLIP, CSLIP e PPP.

  ·  COMO FAZER PPP: auxílio com o  PPP.

  ·  COMO FAZER Impressão: para a configuração da impressão serial.

  ·  COMO FAZER Programação Serial: aborda alguns aspectos da
     programação de portas seriais.

  ·  COMO FAZER Terminal: tudo necessário sobre o programa term.

  ·  COMO FAZER Terminal Texto: como eles funcionam, como instalá-los e
     configurá-los.

  ·  COMO FAZER UPS: configurando sensores UPS a uma porta serial.

  ·  COMO FAZER UUCP: para informações e configuração UUCP.

  ·  Grupos de Notícias:


        comp.os.linux.answers
        FAQs, COMO FAZER, READMEs, etc. sobre Linux.

        comp.os.linux.hardware
        Compatibilidade de hardware com o sistema operacional Linux.

        comp.os.linux.networking
        Rede e comunicação sob Linux.

        comp.os.linux.setup
        Instalação e administração do sistema Linux.

        comp.terminals







  ·  A lista de discussão sobre seriais em Linux. Para inscrever-se,
     envie uma mensagem para  majordomo@vger.rutgers.edu, com o texto
     ``subscribe linux-serial'' no corpo da mensagem. Caso se envie uma
     mensagem com a expressão ``help'' será enviada a mensagem de ajuda.
     O servidor atende ainda a muitas outras listas Linux. Envie o
     comando ``lists'' para obter uma relação de todas as listas
     disponíveis.


  ·  Um documento que discute a comunicação serial e placas multiseriais
     está disponível no site Cyclades em http://www.cyclades.com.

  ·  FAQs sobre Modems:
     Navas 28800 Modem FAQ
     <http://web.aimnet.com/~jnavas/modem/faq.html>.
     Curt's High Speed Modem Page
     <http://www.teleport.com/~curt/modems.html>.

  ·  Programação Serial: Como Fazer Programação Serial:
     Advanced Programming in the UNIX Environment <http://heg-
     school.aw.com/cseng/authors/stevens/advanced/advanced.nclk>, por W.
     Richard Stevens (ISBN 0-201-56317-7; Addison-Wesley).
     POSIX Programmer's Guide <http://www.ora.com/catalog/posix/>, por
     Donald Levine (ISBN 0-937175-73-0; O'Reilly).

  1166..  CCoonnttrriibbuuiiççõõeess


  A maior parte do COMO FAZER original foi escrito por Greg Hankins,
  greg.hankins@cc.gatech.edu.  Ele ainda reescreveu muitas das
  contribuições visando manter a continuidade no estilo do documento.
  Ele comenta: "Obrigado a todos que contribuíram com o desenvolvimento
  deste documento, cuja lista tornou-se muito extensa (algo como mais de
  cem). Agradecimentos especiais a Ted T'so por responder as questões
  sobre programas de controle de dispositivos seriais, Kris Gleason que
  mantinha o getty_ps e Gert Döring que mantém mgetty".