Página seguinte
Página anterior
Índice
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 .
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.
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.
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 .
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.
- Caso se esteja utilizando
getty :
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
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.
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.
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.
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
Existe a opção DEBUG que acompanha o getty_ps . Edite o arquivo /etc/conf.{uu}getty.ttyS N e adicione DEBUG= NNN, onde NNN é 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.
Página seguinte
Página anterior
Índice
|