Capítulo 14. Comunicações Seriais

Esta seção responde a perguntas comuns sobre comunicação serial com o FreeBSD.

14.1. Como obtenho o prompt de boot: em um console serial?
14.2. Como sei se o FreeBSD encontrou minhas portas seriais ou placas de modem?
14.3. Como eu acesso as portas seriais no FreeBSD? (específico de x86)
14.4. Como habilitar o suporte para uma placa serial com várias portas?
14.5. Posso definir os parâmetros seriais padrões para uma porta?
14.6. Por que não consigo executar o comando tip ou o cu?

14.1.

Como obtenho o prompt de boot: em um console serial?

Veja esta seção do Handbook.

14.2.

Como sei se o FreeBSD encontrou minhas portas seriais ou placas de modem?

Quando o kernel do FreeBSD for inicializado, ele irá sondar as portas seriais para as quais o kernel está configurado. Observe atentamente as mensagens de inicialização ou execute este comando após o sistema estar ativo e em execução:

% grep -E '^(sio|uart)[0-9]' < /var/run/dmesg.boot
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A

Este exemplo mostra duas portas seriais. O primeiro está no IRQ4, endereço de porta 0x3f8, e possui um chip UART tipo 16550A. O segundo usa o mesmo tipo de chip, mas está no IRQ3 e está no endereço de porta 0x2f8. As placas de modem internas são tratadas como portas seriais, exceto pelo fato de sempre terem um modem conectado à porta.

O kernel GENERIC inclui suporte para duas portas seriais usando as mesmas configurações de IRQ e endereço de porta no exemplo acima. Se estas configurações não forem adequadas para o sistema, ou se houver mais placas de modem ou portas seriais do que o kernel está configurado, reconfigure usando as instruções em construindo um kernel para mais detalhes.

14.3.

Como eu acesso as portas seriais no FreeBSD? (específico de x86)

A terceira porta serial, sio2, ou COM3, está em /dev/cuad2 para dispositivos dial-out e em /dev/ttyd2 para dispositivos dial-in. Qual é a diferença entre essas duas classes de dispositivos?

Ao abrir /dev/ttydX no modo de bloqueio, um processo aguardará o dispositivo cuadX correspondente ficar inativo e, em seguida, aguardar a ativação da linha de detecção. Quando o dispositivo cuadX é aberto, ele garante que a porta serial não esteja em uso pelo dispositivo ttydX. Se a porta estiver disponível, ela a rouba do dispositivo ttydX. Além disso, o dispositivo cuadX não se importa com a detecção da portadora. Com este esquema e um modem de resposta automática, os usuários remotos podem efetuar login e os usuários locais ainda podem discar com o mesmo modem e o sistema cuidará de todos os conflitos.

14.4.

Como habilitar o suporte para uma placa serial com várias portas?

A seção sobre configuração do kernel fornece informações sobre como configurar o kernel. Para uma placa serial com várias portas, coloque uma linha sio(4) para cada porta serial na placa no device.hints(5). Mas coloque os especificadores de IRQ em apenas uma das entradas. Todas as portas no cartão devem compartilhar um IRQ. Para consistência, use a última porta serial para especificar o IRQ. Além disso, especifique a seguinte opção no arquivo de configuração do kernel:

options COM_MULTIPORT

O exemplo a seguir /boot/device.hints é para uma placa serial AST de 4 portas no IRQ 12:

hint.sio.4.at="isa"
hint.sio.4.port="0x2a0"
hint.sio.4.flags="0x701"
hint.sio.5.at="isa"
hint.sio.5.port="0x2a8"
hint.sio.5.flags="0x701"
hint.sio.6.at="isa"
hint.sio.6.port="0x2b0"
hint.sio.6.flags="0x701"
hint.sio.7.at="isa"
hint.sio.7.port="0x2b8"
hint.sio.7.flags="0x701"
hint.sio.7.irq="12"

Os flags indicam que a porta principal possui um número menor 7 ( 0x700 ) e todas as portas compartilham um IRQ ( 0x001 ).

14.5.

Posso definir os parâmetros seriais padrões para uma porta?

Veja a seção Comunicações Seriais no Handbook do FreeBSD .

14.6.

Por que não consigo executar o comando tip ou o cu?

Os utilitários tip(1) and cu(1) só podem acessar o diretório /var/spool/lock via usuário uucp e grupo dialer . Use o grupo dialer para controlar quem tem acesso ao modem ou sistemas remotos adicionando contas de usuário ao dialer.

Como alternativa, todos podem ser configurados para executar tip(1) e cu(1) digitando:

# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.