Um dos elementos indispensáveis ao trabalhar em projetos Linux embarcados é acessar seu dispositivo através da interface serial do console. Para isso, o computador no qual você está desenvolvendo um sistema embarcado deve possuir uma porta serial. No entanto, muito poucos computadores hoje têm uma porta serial, e é por isso que usamos conversores USB para serial.
No final, você terá uma compreensão detalhada do que são consoles seriais e como eles funcionam no Linux.
Configurando o conversor USB para serial
Quase qualquer conversor serial USB que você pode encontrar no mercado é reconhecido automaticamente pelo Linux. Conecte qualquer conversor USB em seu computador e use o dmesg comando para descobrir o nome do arquivo do dispositivo.
dmesg
No exemplo acima, você vê o VirtualBox na seção do fabricante, pois o host é uma distribuição Linux em execução no VirtualBox. Aqui, o nome do fabricante mudará dependendo do conversor que você estiver usando. Você também pode ver que o conversor serial que está usando está conectado ao sistema com um nome, como ttyUSB0.
Você pode usar o conversor serial reconhecido pelo seu sistema através do arquivo do dispositivo /dev/ttyUSB0. Dependendo da distribuição que você usa, o arquivo do dispositivo é criado automaticamente sob o /dev diretório, mostrando os tipos principais, secundários e de dispositivo. Para conversores seriais USB, o esquema de nomenclatura geralmente é ttyUSB0, ttyUSB1, e ttyUSBX para cada tradução simultânea.
Se você remover e reinserir o conversor serial USB enquanto estiver sendo usado por um aplicativo, o sistema emitirá um novo número para o dispositivo.
Autorização de acesso em dispositivos seriais
Os privilégios de acesso padrão dos arquivos do dispositivo conversor USB montado são geralmente os seguintes:
ls -l /dev/ttyUSB0
# Resultado
crw-rw 1 discagem raiz 188, 46 jul 17 15:34 /dev/ttyUSB0
Ao examinar a saída acima, você pode dizer:
- A carta c no início da linha indica que este é um dispositivo baseado em caracteres
- O proprietário do arquivo é o usuário root e o usuário tem privilégios de leitura e gravação
- O proprietário do grupo do arquivo é o discar grupo e usuários incluídos neste grupo também têm permissões de leitura e gravação
- O resto dos usuários não tem nenhum direito de leitura e gravação no arquivo
Se você estiver conectado como um usuário normal, que não é membro do grupo de discagem, não poderá ler e gravar no conversor serial USB. Para resolver esse problema, você deve tornar o usuário atual um membro do grupo de discagem ou editar o udev arquivos de regras em seu sistema.
Você pode utilizar a primeira técnica por conveniência. Para começar, use o Eu iria comando para determinar a quais grupos seu usuário pertence:
Eu iria
Adicione seu usuário ao grupo usando o adicionar usuário ou usermod comando:
# Para Fedora
sudo usermod -aG dialout USERNAME# Para Debian
discagem sudo adduser USERNAME
# Para Arco
sudo usermod -a -G uucp USERNAME
A adesão ao grupo procedimento está agora concluído. No entanto, o sistema verifica as informações de associação ao grupo durante a primeira etapa de login em sessões gráficas e as fornece a todos os processos em execução.
Como resultado, você deve sair da sessão gráfica atual e, em seguida, fazer login novamente ou reinicie sua máquina para que as modificações tenham efeito. Você terá acesso de leitura/gravação ao dispositivo conversor serial após concluir esta operação.
Como se conectar a consoles seriais no Linux
Quando precisar de acesso a um computador ou console de rede, você pode consultar os aplicativos de console serial. Normalmente, você precisa de acesso via SSH para fazer isso. No entanto, do ponto de vista de software e hardware, em alguns casos, também é possível acessar o console usando apenas portas seriais.
Você encontrará esses tipos de exemplos com mais frequência em computadores mais antigos. Abaixo estão alguns dos melhores aplicativos de console serial que funcionarão para você.
Usando Minicom
Você pode instalar o Minicom, um aplicativo antigo, mas ainda em funcionamento, em seu sistema da seguinte forma:
# No Fedora, CentOS e RHEL
sudo yum instalar minicom# No Debian e Ubuntu
sudo apt-pegue instalar minicom
# No Arch Linux
sudo snap instalar minicom
Quando você iniciar o aplicativo pela primeira vez, ele tentará abrir um arquivo de dispositivo, como /dev/modem por padrão. Ele termina quando não consegue encontrar o arquivo. Para superar esse problema, você pode iniciar diretamente a tela de configurações do aplicativo com o -s parâmetro:
minicom -s
Você pode definir o nome do dispositivo pressionando o botão UMA tecla e a velocidade da porta serial pressionando a tecla E chave. Então, quando você sair com Saída, você pode usar a porta serial correspondente.
Enquanto estiver na tela principal do aplicativo, você pode retornar à tela de configuração com Ctrl + A + O, saia do aplicativo com Ctrl + A + X, ative o modo de quebra de linha com Ctrl + A + W, e obtenha ajuda com outros atalhos com Ctrl + A + Z.
Usando o GTKTerm
O Minicom geralmente é usado por usuários avançados de Linux e, portanto, não é recomendado para iniciantes. Os recém-chegados ao Linux podem instalar o GTKTerm, um emulador de terminal serial gráfico para Linux. Você pode instalar o aplicativo em seu sistema usando os seguintes comandos:
# No Fedora, CentOS e RHEL
sudo dnf -y instalar gtkterm# No Debian e Ubuntu
sudo apt-pegue instalar gtkterm
# No Arch Linux
sim -S gtkterm
Ao iniciar o aplicativo, você terá que definir o nome do dispositivo e os parâmetros de velocidade por meio do Configuração > Porta cardápio da seguinte forma:
Salve as configurações como padrão para facilitar o uso posterior.
Usando a tela
Se você estiver familiarizado com a tela para gerenciamento multiterminal, saberá que também pode usá-la para acesso à porta serial. Aqui estão os comandos para instalá-lo:
# No Fedora, CentOS e RHEL
sudo dnf -y instalar tela# No Debian, Ubuntu e Linux Mint
sudo apt-pegue -y tela de instalação
# Use Snap para outras distribuições
sudo snap instalar tela --clássico
Após a instalação, você pode executar um comando como este para se conectar a um console serial:
screen /dev/ttyUSB0 115500
Agora você pode estabelecer uma conexão de porta serial no Linux
Poder acessar seu sistema Linux usando a porta serial é um recurso muito útil, especialmente quando você não deseja conectar um monitor ao SBC (Session Border Controller).
Como a autorização do console serial é incorporada ao kernel do Linux no momento da compilação, você deve ter pelo menos um conhecimento básico do kernel do Linux e seu funcionamento.