Essa seção cobre as perguntas mais comuns sobre comunicação serial com o FreeBSD. PPP e SLIP são abordados na seção Capítulo 12, Redes.
15.1. | Como eu posso dizer se o FreeBSD encontrou minhas portas seriais? |
Assim que o kernel do FreeBSD é carregado, ele irá varrer as portas seriais do seu sistema procurando dispositivos nas portas configuradas no kernel. Pode-se observar atentamente as mensagens que o sistema exibe, ou então executar o seguinte comando: % dmesg | grep sio assim que o sistema estiver em funcionamento e execução. Aqui estão alguns exemplos dos resultados do comando executado acima: sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A Eles mostram duas portas seriais. A primeira
está na irq 4, está usando o endereço
de porta O kernel
| |
15.2. | Como eu posso dizer se o FreeBSD encontrou minha placa de fax modem? |
Refira-se à resposta da pergunta anterior. | |
15.3. | Eu acabei de atualizar para a versão 2.0.5 e as
minhas
|
Não se preocupe, eles foram incluídos
com os dispositivos
| |
15.4. | Como eu acesso as portas seriais no FreeBSD? |
A terceira porta serial, Você utiliza
| |
15.5. | Como eu habilito suporte para uma placa serial de múltiplas portas? |
Novamente, a seção de
configuração do
kernel provê
informações sobre a
configuração de seu
kernel. Para uma placa
serial de múltiplas portas, coloque uma linha
sio(4) para cada porta serial da placa, no arquivo de
configuração do
kernel. Mas coloque o irq
e as espeficicações do vetor apenas em uma
das entradas. Todas as portas da placa devem compartilhar
uma irq. Para consistência, utilize a última
porta serial para especificar a irq. Além disso,
especifique a opção
O exemplo seguinte é para uma placa serial AST 4-portas na irq 7: options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr As flags indicam que a porta master tem um
“minor number” 7 ( | |
15.6. | O FreeBSD pode trabalhar com placas seriais de múltiplas portas compartilhando irqs? |
Ainda não. Você deverá utilizar uma irq diferente para cada placa. | |
15.7. | Posso definir os parâmetros seriais padrão para uma porta? |
O
# stty -a -f /dev/ttyd1 Ao alterar as configurações para esse dispositivo, elas se manterão em efeito até que o dispositivo seja fechado. Quando ele for reaberto, vai para o estado padrão. Para fazer mudanças nos ajustes padrão, pode-se abrir e ajustar as configurações do “estado inicial” do dispositivo. Por exemplo, para ligar o modo CLOCAL, 8 bits, e o controle de fluxo XON/XOFF padrão para a ttyd5, faça: # stty -f /dev/ttyid5 clocal cs8 ixon ixoff Um bom lugar para fazer isso é no
Você pode prevenir certas
configurações de serem modificadas por uma
aplicação fazendo ajustes no dispositivo de
“lock state”. Por exemplo, para travar a
velocidade do # stty -f /dev/ttyld5 57600 Agora, uma aplicação, ao abrir o
Naturalmente você deve garantir que os
dispositivos de estado inicial e o estado de trava
( | |
15.8. | Como eu habilito logins dial-up no meu modem? |
Então você quer tornar-se um provedor de
serviços internet, não é? Primeiro,
você precisa de um ou mais modems que auto-respondam
às chamadas. Seu modem precisa confirmar o
“carrier detect” quando ele for detectado e
não fazê-lo todo o tempo. Ele
precisará desligar o telefone e resetar a si mesmo
quando a linha DTR (Data Terminal
Ready) alternar de ligado para desligado. Ele
provavelmente deve utilizar o controle de fluxo
Para muitos modems compatíveis com o conjunto de comandos do Hayes este comando criará estas configurações e as armazenará na memória não volátil: AT &C1 &D3 &K3 &Q6 S0=1 &W Veja a seção enviando comandos AT abaixo para mais informações sobre como fazer estas configurações sem o auxílio de um programa de terminal MS-DOS. Depois, faça uma entrada em
ttyd1 "/usr/libexec/getty std.57600" dialup on insecure Esta linha indica que a segunda porta serial
( É uma prática comum utilizar
Após efetuar as operações no
# kill -HUP 1 Esse comando forçará a releitura do
arquivo % ps -ax | grep '[t]tyd1' Você deve ver algo como: 747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1 | |
15.9. | Como eu conecto um terminal burro ao meu FreeBSD? |
Se você esta usando outro computador como um terminal de seu sistema FreeBSD, consiga um cabo “null modem” para ser usado entre as duas portas seriais. Se você esta utilizando um terminal próprio, veja as instruções que o acompanham. Então, modifique o
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure Esse exemplo mostra que a porta em
| |
15.10. | Por que eu não posso executar o
|
Em seu sistema, os programas tip(1) e cu(1)
são provavelmente executáveis somente pro
Alternativamente, você pode permitir a todos no seu sistema executarem o tip(1) e o cu(1) digitando: # chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip | |
15.11. | Meu modem modelo Hayes não é suportado - o que eu posso fazer? |
De fato a manpage para o tip(1) esta
desatualizada. Há um discador generico do Hayes
já incorporado. Apenas insira
O drive do Hayes não é inteligente o
bastante para reconhecer algumas das avançadas
características dos modems mais novos - mensagens
como Além disso, o timeout para discagem com o
tip(1) é de 60 segundos. Seu modem deve
utilizar um valor menor, senão o tip pensará
que existe um problema de comunicação.
Tente De fato, como o tip(1) não foi compilado
para suportar HAYES, essa funcionalidade não
é completamente suportada. A solução
é editar o arquivo Edite a linha | |
15.12. | Como posso entrar nestes comandos AT? |
Faça o que é chamado de uma entrada
“direta” no seu
cuaa0:dv=/dev/cuaa0:br#19200:pa=none Utilize a taxa de velocidade mais alta que seu modem
suportar na capacidade br. Então digite
Se não existir nenhum
# cd /dev
# sh MAKEDEV cuaa0 Ou utilize cu como # cu -l com a | |
15.13. | Porque o sinal |
O sinal pn=\@ | |
15.14. | Como eu posso discar um número de telefone pela linha de comando? |
Coloque o que é chamado de uma entrada
“genérica” no arquivo
tip115200|Disque para qualquer número em 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Disque para qualquer número em 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: Depois você pode fazer algo como cu115200|Use o cu para discar qualquer número em 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: e digite | |
15.15. | Tenho que definir a taxa de bits por segundo sempre que fazer isso? |
Coloque uma entrada para | |
15.16. | Como posso facilmente acessar vários hosts
através de um |
Ao invés de esperar até a
conexão, digitando pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: permitirá a você digitar | |
15.17. | O “tip” pode tentar discar mais de uma linha por vez? |
Normalmente esse é um problema tradicional onde uma universidade possue várias linhas de modems e vários milhares de estudantes tentando usá-las... Faça uma entrada para sua universidade
em big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none: Então, liste os números de telefones
para a universidade em big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114 O tip(1) tentará usar cada um na ordem listada, e depois desistirá. Se você quer manter-se tentando, execute o tip(1) em um loop while. | |
15.18. | Por que eu tenho que pressionar duas vezes o CTRL+P para enviar CTRL+P uma única vez? |
CTRL+P
é o padrão para “force
character”, utilizado para dizer ao tip(1)
que o próximo caracter é um dado literal.
Você pode definir o force character para qualquer
outro caracter com o escape Digite Você pode ter o “force character”
que você quiser especificando o seguinte em seu
arquivo force= single-char | |
15.19. | Por que tudo o que eu digito inesperadamente está em CAIXA ALTA? |
Você deve ter pressionado CTRL+A,
o “raise character do tip(1)”,
especialmente projetado para pessoas com teclas
Caps Lock que não funcionam. Use
o Aqui está um exemplo de arquivo
force=^^
raisechar=^^ O ^^ é obtido com SHIFT+CTRL+6. | |
15.20. | Como eu posso transferir arquivos com o
|
Se você está conversando com outro
sistema Unix, você pode enviar e receber arquivos
com ~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>] Não há nenhuma checagem de erro, então você provavelmente deve usar um outro protocolo, como o zmodem | |
15.21. | Como eu posso executar o zmodem com o tip? |
Primeiro, instale um dos programas zmodem da
coleção de Para receber arquivos, inicie o programa de envio no
destino remoto. Então, pressione ENTER e digite
Para enviar arquivos, inicie o programa do lado
remoto. Depois, aperte ENTER e digite | |
15.22. | O FreeBSD pode vir a não encontrar minhas portas seriais, mesmo quando as configurações estão corretas? |
Sim, se sua placa-mãe for Acer UARTS. Elas não escaneiam corretamente o barramento serial, não permitindo que o FreeBSD encontre as Serial Input/Output (sio) da placa. O patch disponível em www.lemis.com pode corrigir esse problema. |
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Para perguntas sobre FreeBSD, leia a
documentação antes de contatar
<questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para
<doc@FreeBSD.org>.