Conexão serial

Para gerenciar switchs, roteadores e até as mais modernas placas de aprendizado com microcontrolador como o Arduino, ATtiny e ESP8266 é bem comum a necessidade de realizar uma conexão serial – aquela velha conexão com protocolo RS-232 dos tempos da Internet à vapor – que apesar de antigo ainda é possível encontrar alguns aspirantes a sysadmin apanhando para realizar esta conexão. Acompanhe o restante do texto que vou deixar aqui algumas dicas para facilitar que passar por esta dificuldade.

Embora este seja um protocolo antigo ele faz sucesso até hoje por um simples motivo. Ele funciona bem!

Os mais modernos equipamentos de rede mantém uma porta de gerencia que usa o velho protocolo serial que em épocas passadas usávamos para conectar um computador a outro, ligar mouse, impressora, modem etc e tudo a incrível velocidade de 2400bauds e com o passar do tempo esta velocidade foi aumentando até que as portas seriais mais modernas suportam seguramente até 115200 bauds.

Bauds e bits

Não confunda bauds (número de chaveamentos na linha de transmissão) com bits ou bytes (que são unidades de informação). Não há uma conversão direta entre elas.

A quantidade de informação que estas linhas seriais trafegam basicamente são calculadas pelo número de bits enviados a cada baud. Se por exemplo a sua placa Arduino ou seu modem usar a taxa de 9600 bauds para transmitir 9 bits por baud, isso quer dizer que a comunicação entre sua plaquinha e o seu PC está ocorrendo a uma velocidade de 9600x9bits ( 86400bits/s ou 10.8KB/s).

Lento para os padrões de conectividade atuais, mas rápido o suficiente para você programar o seu Arduino, ou enviar comandos em modo texto para o seu roteador.

Conexão física

Para conectar um equipamento ao PC por linha serial basicamente você precisa que tanto o equipamento quanto o seu PC possuam uma porta serial além do devido cabo de comunicação.

Os PCs e notebooks modernos, em sua grande maioria, aboliram a porta serial onboard no entanto é possível usar cabos conversores como o da imagem abaixo.

CABO-CONVERSOR-USB-SERIAL-RS232
Cabo conversor USB x Serial (RS-232)

Neste caso você conecta o cabo a uma porta USB disponível em seu PC e a ponta serial (conector DB-9) você ligaria a porta de console  do seu equipamento, diretamente ou usando um adaptador.

Equipamentos modernos podem não possuir um conector do tipo DB-9 que é aquela ponta grande. Por exemplo alguns switchs possuem uma porta serial com tomada RJ45 (aqueles usados em placas de rede) e juntamente vem um cabo adaptador como o mostrado abaixo.

Cabo Serial RJ45 usado por alguns equipamentos

Cuidado com a pegadinha porque embora a porta do equipamento seja um conector de rede, não ligue ali em hipótese alguma o seu equipamento a um hub, switch ou qualquer outro lugar que não uma porta serial.

Outros equipamentos já possuem uma porta mini USB que será usada como console serial, como ocorre em alguns switchs CISCO.

porta-console-serial-usb-cisco2960s
Portas console Serial e USB no switch Cisco 2960s

Neste caso, o circuito conversor USB-serial já está embutido no seu equipamento, ai basta ligar um cabo direto desta mini-usb para uma porta USB padrão do seu PC ou notebook.

Software

Uma vez que a conexão física esteja feita você precisa usar um aplicativo de terminal serial para exibir o console dos equipamentos.

O mais comum e que pode ser usado tanto em Linux quanto em Windows é o Putty que é um verdadeiro canivete suíço para conexões remotas.

Basicamente basta informar a porta USB que corresponde a conexão serial, a velocidade e clicar no botão  “Open”.

putty-serial
Putty configurado para conexão Serial emulada na porta USB

Outra ferramenta que permite conectar via porta serial a partir da linha de comandos é o o “screen”. Neste caso basta invocar com informando a porta e a velocidade.

$ sudo screen /dev/ttyUSB0 38400

É importante lembrar que as portas seriais só podem ser usadas pelo usuário root ou por membros do grupo “dialout” (no caso do Dabian e Ubuntu), então chame o putty com o usuário root, ou certifique-se de adicionar o seu usuário neste grupo.

Configuração das portas seriais

Alguns equipamentos podem vir uma descrição da configuração de porta  como por exemplo “38400 8N1”. Isso significa que o equipamento vai se comunicar a velocidade de 38400bauds transmitindo 8 bits de dados sem paridade (N) e um bit de parada.

8N1 é a configuração padrão para grande maioria dos equipamentos seriais e dificilmente você terá que mexer nisso mas se precisar, na árvore configuração da lateral esquerda do Putty há uma seção “Serial’ (que não aparece na imagem acima) e permite alterar estes valores, no Screen não há como alterar estes valores.

As portas seriais vão variar de acordo com a configuração do seu PC, no Windows seria algo como “COM1”, “COM2”, “COM5”, acho que pelo gerenciador de dispositivos seja possível identificar a porta serial correta.

No Linux pode ser /dev/ttyS0, /dev/ttyS1, /dev/ttyS10, /dev/ttyUSB0 etc. Esta última é mais comum quando você usa um adaptador e as primeiras quando é uma porta onboard.

Uma forma de verificar qual é a porta correta é dar uma garimpada nas saídas registradas nos arquivos de logs do sistema /var/log/messages, /var/log/syslog e principalmente /var/log/dmesg.

As pegadinhas que deixam os iniciantes de cabelo em pé

Além do usuário/grupo que possui permissão a usar portas seriais no Linux, uma pegadinha na conexão serial é que quando a conexão está feita pode não haver qualquer retorno visual. A tela pode ficar totalmente preta e neste caso basta esperar alguns segundos e pressionar alguma tecla para que as mensagens do terminal serão exibidas.

Outra pegadinha é tecla backspace. Em razão das várias possibilidades de mapeamento de teclas relacionadas ao tipo de emulador de terminal (VT100, VT200, VT420 etc) talvez você seja premiado com uma configuração que a tecla backspace não funcione corretamente. Se for o seu caso experimente usar CTRL-H ou então, se estiver usando o Putty, vá até a categoria “Terminal > Keyboard” e altere a configuração da tecla backspace de “Control-? (127)” para “Control-H”.

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *