Console Serial · 5 min read · Feb 02, 2026

Configurando um console serial

Configurando um console serial

Este tutorial mostrará como configurar um console serial em um sistema Linux e conectá-lo via um cabo null modem. Isso é bastante útil se o seu servidor Linux estiver em uma configuração sem cabeça (sem teclado ou monitor), pois permite que você obtenha facilmente um console no sistema se houver algum problema com ele (especialmente problemas de rede, quando o SSH não está disponível). No final, o menu GRUB aparecerá pela conexão serial, assim como as mensagens de inicialização (saída ao iniciar o sistema). Estou usando Debian Etch no servidor e Ubuntu Edgy no meu cliente, embora isso deva funcionar em qualquer distribuição Linux.

Primeiros passos

Uma das coisas mais importantes que precisamos verificar é se você realmente tem uma porta serial no servidor :). Dê uma olhada na parte de trás do seu servidor e veja se ele tem uma porta serial de 9 pinos. A maioria das placas-mãe tem uma ou duas portas seriais. No sistema, verifique se o Linux está reconhecendo as portas seriais:

root@server:~# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) é um 16550A
00:08: ttyS0 at I/O 0x3f8 (irq = 4) é um 16550A

Isso mostra que meu sistema tem uma porta serial, ttyS0 (lembre-se disso para mais tarde).

Configuração do GRUB

O próximo passo é editar a configuração do GRUB, para que ele envie suas mensagens para o console serial. Uma das coisas mais importantes é definir uma senha, caso contrário, qualquer um pode conectar um cabo serial, editar a linha de configuração do GRUB enquanto o sistema está inicializando (via a tecla “e”), e obter acesso root. Quando uma senha é definida, a edição interativa do menu será desativada, a menos que a senha correta seja inserida. Para definir a senha, primeiro precisamos obter a versão criptografada dela.

Execute grub e use o comando “md5crypt” para criptografar a senha:

grub> md5crypt

Senha: **
Criptografado: $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1

Copie a versão criptografada da senha (precisamos dela para o próximo passo) e, em seguida, digite quit para sair.

Agora, precisamos editar a configuração do GRUB. Edite o arquivo /boot/grub/menu.lst (digitando nano /boot/grub/menu.lst) e encontre esta seção:

## password ['--md5'] passwd
   # Se usado na primeira seção de um arquivo de menu, desabilite toda a edição interativa
   # controle (editor de entrada do menu e linha de comando) e entradas protegidas pelo
   # comando 'lock'
   # e.g. password topsecret
   #      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
   # password topsecret

Abaixo disso, adicione:

password --md5 $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1   
terminal --timeout=10 serial console

Substitua $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1 pela forma criptografada da sua senha. A segunda linha informa ao GRUB para inicializar a porta serial a 38.400 bps (mesma velocidade que o console padrão), 8 bits de dados, sem paridade e 1 bit de parada (basicamente, as configurações padrão). Observe que –unit=0 significa que ele usará a primeira porta serial (ttyS0). Se você estiver usando a segunda porta serial (ttyS1), mude para –unit=1. A última linha informa ao GRUB para mostrar seu menu tanto na linha serial quanto no console (monitor).

Agora, também precisamos editar as seções do kernel, para que elas enviem mensagens para o console serial. No final de cada linha do kernel, adicione console=tty0 console=ttyS0,38400n8 (substitua ttyS0 pela porta serial correta). No meu caso, acabou parecendo:

title           Debian GNU/Linux, kernel 2.6.18-4-vserver-686
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-4-vserver-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-4-vserver-686 (modo de usuário único)
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-4-vserver-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-3-686
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-3-686
   savedefault
title           Debian GNU/Linux, kernel 2.6.18-3-686 (modo de usuário único)
   root            (hd0,1)
   kernel          /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
   initrd          /initrd.img-2.6.18-3-686  
   savedefault  
 

Salve e saia, pressionando CTRL+O (para “output”, ou salvar o arquivo), Enter (para aceitar o nome do arquivo) e CTRL+X (para realmente sair).

Permitir logins pelo Console Serial

Agora, o menu GRUB aparecerá pela conexão serial, mas ainda não estamos ouvindo por logins (não há “getty” rodando nele ainda). Edite o arquivo /etc/inittab e encontre esta seção:

# Exemplo de como colocar um getty em uma linha serial (para um terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

Abaixo disso (não gosto de editar as linhas padrão :P), adicione:

T0:2345:respawn:/sbin/getty -L ttyS0 38400 vt100

E é só isso. Seu servidor agora mostrará o menu GRUB pelo console serial e também permitirá logins (uma vez que tenha terminado de inicializar).

Vamos testar!

Agora que tudo isso está feito, precisamos configurar nosso cliente. Estou usando GtkTerm no meu laptop, embora qualquer programa de terminal deva funcionar (desde que possa usar uma porta serial. No Windows, o HyperTerminal deve funcionar). Meu laptop não tem uma porta serial, então estou usando um adaptador USB para Serial que comprei no eBay (ele cria um dispositivo ttyUSB0). Defina seu programa de terminal para estas configurações:

  • Porta (Linux): ttyS0 ou ttyS1 (se seu sistema tiver uma porta serial), ou ttyUSB0 (se você estiver usando um conversor USB para Serial).
  • Porta (Windows): COM1 ou COM2
  • Bits por segundo: 38400
  • Bits de dados: 8
  • Paridade: Nenhuma
  • Bits de parada: 1
  • Controle de fluxo: Nenhum, embora o hardware (RTS/CTS) deva funcionar corretamente

Reinicie o servidor (provavelmente de uma conexão SSH, ou como você editou a configuração do GRUB acima) e, em seguida, conecte o cabo null modem enquanto ele está iniciando (ou seja, na tela do BIOS). Pressione qualquer tecla quando solicitado, e você verá algo como:

Como usar o console serial - menu GRUB

Isso significa que o GRUB está funcionando bem :). Pressione enter e ele deve inicializar, mostrando todas as mensagens na janela do terminal. Uma vez que inicializa, deve parecer algo como:

Como usar o console serial - Inicializando

Finalmente, faça login e verifique se está funcionando bem:

Como usar o console serial - Logado

Parabéns, tudo está configurado e funcionando bem.

Espero que você tenha gostado deste tutorial! :)

Daniel15 (Daniel Lo Nigro)
http://www.daniel15.com/
http://www.dansoftaustralia.net/

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.