26.3. Terminais

Contributed by Sean Kelly.

Os terminais fornecem uma maneira conveniente e barata de acessar um sistema FreeBSD quando não estão no console do computador ou em uma rede conectada. Esta seção descreve como usar terminais com o FreeBSD.

Os sistemas originais UNIX® não tinham consoles. Em vez disso, os usuários efetuaram login e executaram programas por meio de terminais conectados as portas seriais do computador.

A capacidade de estabelecer uma sessão de login em uma porta serial ainda existe em quase todos os sistemas operacionais do tipo UNIX® hoje, incluindo o FreeBSD. Usando um terminal conectado a uma porta serial não usada, um usuário pode efetuar login e executar qualquer programa de texto que possa ser executado normalmente no console ou em uma janela xterm.

Muitos terminais podem ser conectados a um sistema FreeBSD. Um computador sobressalente mais antigo pode ser usado como um terminal conectado a um computador mais potente executando o FreeBSD. Isso pode transformar o que poderia ser um computador de usuário único em um poderoso sistema de múltiplos usuários.

O FreeBSD suporta três tipos de terminais:

Terminais Burros

Terminais burro são um hardware especializado que se conecta a computadores através de linhas seriais. Eles são chamados de dumb porque eles possuem apenas poder computacional suficiente para exibir, enviar e receber texto. Nenhum programa pode ser executado nesses dispositivos. Em vez disso, os terminais burros se conectam a um computador que executa os programas necessários.

Existem centenas de tipos de terminais burro feitos por muitos fabricantes, e praticamente qualquer tipo funciona com o FreeBSD. Alguns terminais high-end podem até exibir gráficos, mas apenas determinados pacotes de software podem aproveitar esses recursos avançados.

Terminais burro são populares em ambientes de trabalho onde os trabalhadores não precisam de acesso a aplicativos gráficos.

Computadores Atuando como Terminais

Como um terminal burro tem capacidade suficiente para exibir, enviar e receber texto, qualquer computador de reserva pode ser um terminal burro. Tudo o que é necessário é o cabo adequado e algum software de terminal emulation para ser executado no computador.

Esta configuração pode ser útil. Por exemplo, se um usuário está ocupado trabalhando no console do sistema FreeBSD, outro usuário pode fazer algum trabalho somente de texto ao mesmo tempo de um computador pessoal menos potente ligado como um terminal ao sistema FreeBSD.

Existem pelo menos dois utilitários no sistema base do FreeBSD que podem ser usados ​​para trabalhar através de uma conexão serial: cu(1) e tip(1).

Por exemplo, para conectar-se de um sistema cliente que executa o FreeBSD para a conexão serial de outro sistema:

# cu -l /dev/cuauN

Portas são numeradas a partir de zero. Isso significa que COM1 é /dev/cuau0.

Programas adicionais estão disponíveis através da coleção de ports, como comms/minicom.

Terminais X

Os terminais X são o tipo de terminal mais sofisticado disponível. Em vez de se conectar a uma porta serial, eles geralmente se conectam a uma rede como a Ethernet. Em vez de serem relegados a aplicativos somente de texto, eles podem exibir qualquer aplicativo Xorg.

Este capítulo não cobre a configuração ou uso de terminais X.

26.3.1. Configuração do Terminal

Esta seção descreve como configurar um sistema FreeBSD para ativar uma sessão de login em um terminal serial. Assume-se que o sistema reconhece a porta serial a qual o terminal está conectado e que o terminal está conectado com o cabo correto.

No FreeBSD, o init lê o /etc/ttys e inicia um processo getty nos terminais disponíveis. O processo getty é responsável por ler um nome de login e iniciar o programa login. As portas no sistema FreeBSD que permitem logins estão listadas em /etc/ttys. Por exemplo, o primeiro console virtual, ttyv0, possui uma entrada nesse arquivo, permitindo logins no console. Este arquivo também contém entradas para os outros consoles virtuais, portas seriais e pseudo-ttys. Para um terminal com fio, a entrada /dev da porta serial é listada sem a parte /dev. Por exemplo, /dev/ttyv0 está listado como ttyv0.

Por padrão o /etc/ttys configura o suporte para as quatro primeiras portas seriais, ttyu0 até ttyu3:

ttyu0   "/usr/libexec/getty std.9600"   dialup  off secure
ttyu1   "/usr/libexec/getty std.9600"   dialup  off secure
ttyu2   "/usr/libexec/getty std.9600"   dialup  off secure
ttyu3   "/usr/libexec/getty std.9600"   dialup  off secure

Ao conectar um terminal a uma destas portas, modifique a entrada padrão para definir a velocidade e o tipo de terminal necessários, para ligar o dispositivo on e, se necessário, para alterar o secure da porta. Se o terminal estiver conectado a outra porta, adicione uma entrada para a porta.

Exemplo 26.1, “Configurando Entradas de Terminal” configura dois terminais em /etc/ttys. A primeira entrada configura um Wyse-50 conectado ao COM2. A segunda entrada configura um computador antigo executando o software do terminal Procomm emulando um terminal VT-100. O computador está conectado à sexta porta serial em uma placa serial com várias portas.

Exemplo 26.1. Configurando Entradas de Terminal
ttyu11  "/usr/libexec/getty std.38400"2  wy503  on4  insecure5
ttyu5   "/usr/libexec/getty std.19200"  vt100  on insecure

1

O primeiro campo especifica o nome do dispositivo do terminal serial.

2

O segundo campo informa ao getty para inicializar e abrir a linha, definir a velocidade da linha, solicitar um nome de usuário e, em seguida, executar o programa login. O tipo de getty type configura características na linha do terminal, como taxa e paridade bps. Os tipos de getty disponíveis estão listados em /etc/gettytab. Em quase todos os casos, os tipos de getty que começam com std funcionarão para terminais conectados, já que essas entradas ignoram a paridade. Há uma entrada std para cada taxa de bps de 110 a 115200. Consulte gettytab(5) para mais informações.

Ao definir o tipo de getty, certifique-se de coincidir com as configurações de comunicação usadas pelo terminal. Para este exemplo, o Wyse-50 não usa paridade e se conecta a 38400 bps. O computador não usa paridade e se conecta a 19200 bps.

3

O terceiro campo é o tipo de terminal. Para portas dial-up, unknown ou dialup é normalmente usado, pois os usuários podem discar praticamente com qualquer tipo de terminal ou software. Como o tipo de terminal não muda para terminais com fio, um tipo de terminal real de /etc/termcap pode ser especificado. Para este exemplo, o Wyse-50 usa o tipo de terminal real enquanto o computador executando o Procomm está configurado para emular um VT-100.

4

O quarto campo especifica se a porta deve estar ativada. Para ativar logins nessa porta, este campo deve ser definido como on.

5

O campo final é usado para especificar se a porta é segura. Marcar uma porta como secure significa que ela é confiável o suficiente para permitir que root faça login a partir dessa porta. As portas inseguras não permitem logins root. Em uma porta insegura, os usuários devem efetuar login de contas não privilegiadas e, em seguida, usar o su ou um mecanismo semelhante para obter privilégios de superusuário, conforme descrito em Seção 3.3.1.3, “A conta de superusuário”. Por razões de segurança, recomenda-se alterar esta configuração para insecure.


Depois de fazer qualquer alteração em /etc/ttys, envie um sinal SIGHUP (hangup) para o processo init para forçá-lo a reler seu arquivo de configuração:

# kill -HUP 1

Como o init é sempre o primeiro processo executado em um sistema, ele sempre tem um processo ID de 1.

Se tudo estiver configurado corretamente, todos os cabos estiverem no lugar e os terminais ligados, um processo getty deverá estar em execução em cada terminal e as solicitações de login deverão estar disponíveis em cada terminal.

26.3.2. Solução de Problemas da Conexão

Mesmo com a mais meticulosa atenção aos detalhes, algo poderia dar errado ao configurar um terminal. Aqui está uma lista de sintomas comuns e algumas correções sugeridas.

Se nenhum prompt de login aparecer, verifique se o terminal está conectado e ligado. Se for um computador pessoal atuando como um terminal, verifique se ele está executando o software de emulação de terminal na porta serial correta.

Certifique-se de que o cabo esteja conectado firmemente ao terminal e ao computador do FreeBSD. Certifique-se de que é o tipo certo de cabo.

Certifique-se de que o terminal e o FreeBSD concordem com as configurações de taxa e paridade de bps. Para um terminal de exibição de vídeo, verifique se os controles de contraste e brilho estão ativados. Se for um terminal de impressão, verifique se o papel e a tinta estão em bom estado.

Use ps para certificar-se de que um processo getty esteja em execução e atendendo ao terminal. Por exemplo, a listagem a seguir mostra que um getty está sendo executado na segunda porta serial, ttyu1, e está usando a entrada std.38400 em /etc/gettytab:

# ps -axww|grep ttyu
22189  d1  Is+    0:00.03 /usr/libexec/getty std.38400 ttyu1

Se nenhum processo getty estiver em execução, certifique-se de que a porta esteja ativada em /etc/ttys. Lembre-se de executar kill -HUP 1 após modificar /etc/ttys.

Se o processo getty estiver em execução, mas o terminal ainda não exibir um prompt de login ou se exibir um prompt, mas não aceitar entrada digitada, o terminal ou cabo poderá não suportar handshaking de hardware. Tente alterar a entrada em /etc/ttys de std.38400 para 3wire.38400 e, em seguida, execute kill -HUP 1 depois de modificar o /etc/ttys. A entrada 3wire é semelhante a std, mas ignora handshaking de hardware. Pode ser necessário reduzir a taxa de transmissão ou ativar o controle de fluxo de software ao usar 3wire para evitar buffer overflows.

Se aparecer lixo em vez de um prompt de login, certifique-se de que o terminal e o FreeBSD concordem com as configurações de taxa e paridade de bps. Verifique os processos getty para certificar-se de que o tipo correto getty esteja em uso. Se não, edite /etc/ttys e execute kill -HUP 1.

Se os caracteres aparecerem duplicados e a senha aparecer quando digitada, alterne o terminal ou o software de emulação de terminal de half duplex ou local echo para full duplex.

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>.