USB Gadget – Usar a porta USB como ethernet

Câmera oficial - RPi CSI
Câmera oficial – RPi CSI

O Raspberry Pi é um exemplo clássico de frustração com recursos de rede; não pelo fato de a sua porta de rede ser fast ethernet, mas por ser apenas uma. Com duas, poderia ter um firewall; uma replicação de base de dados para manter redundância, enquanto pela outra faz-se balanceamento e HA. Mas de fato, não há planos sabidos sobre qualquer Raspberry, Orange ou Banana Pi com duas portas ethernets. Bem, talvez não seja a solução definitiva para os seus problemas, mas é no mínimo interessante de se experimentar.

USB Gadget

O USB Gadget Framework é um presente que ganhamos ao usar Linux e dentre os brinquedos, temos a possibilidade de utilizar uma porta OTG (On-The-Go) como ethernet.

Suporte nativo

Se você utilizar o Jessie para seu Raspberry, o suporte já estará lá e bastará seguir os passos descritos nesse tutorial. De outro modo, sugiro fortemente a substituição do sistema de seu Raspberry.

Ethernet Gadget

Se desejar, você poderá compilar o suporte no kernel de seu sistema, mas não vou descrever os passos aqui, vamos pelo caminho mais fácil.

Quando falamos de ethernet gadget, tenha em mente que não falamos de cabo de rede; esqueça isso, apenas utilizaremos um cabo USB do computador ao Raspberry e após a configuração (se feita a contento) aparecerá um dispositivo novo ao digitar ‘ifconfig’.

Se você usar um Debian, que seja o Jessie pelo suporte nativo. Eu utilizo Raspbian, mas também a última versão, portanto não saberei dizer se o suporte já estava presente em versões anteriores do sistema.

Configurar o ethernet gadget




config.txt

Para habilitar o suporte, faça o login em seu sistema (no Raspberry) ou então retire o cartão do sistema e edite o arquivo /boot/config.txt. Após a última linha adicione esse parâmetro:

Feito isso, salve as alterações e vá para o próximo passo. Eu normalmente edito da seguinte forma:

Isso porque você precisa ter poderes administrativos para editar esse arquivo.

cmdline.txt

Agora adicione a linha a seguir logo após um dos parâmetros principais (não que a ordem altere o produto), ou logo após rootwait. Apenas adicione um espaço à linha, acrescentando a carga dos módulos:

Conecte o cabo ao computador e ao Raspberry, então faça um reboot. Agora você já deverá estar apto a fazer uma conexão com o Raspberry. Se estiver conectando a partir de um Linux, pode fazer o ssh diretamente a raspberrypi.local, por exemplo. Já no Windows, como nada é simples por mais que alguns ainda pensem assim, será necessário instalar o Bonjour para resolver nomes para .local. Além disso, ao plugar seu Raspberry a um host Windows e efetuar o reboot (do Raspberry), Automaticamente o Windows fará o download dos drivers RNDIS para configurar adequadamente o ethernet gadget. Deverá aparecer um adaptador de rede em “Network Connections” identificada pela palavra RNDIS em algum lugar. A partir daí, faça as configurações de rede, confiugrando o Raspberry como gateway dessa interface de rede, coloque IP etc. Desconecte o cabo USB e conecte-o novamente e tudo deverá estar configurado no Windows também. Se desejar, pode utilizar “ipconfig /all” para ver as configurações, pode fazer ping, ssh etc.

Configurar a interface de rede usb0

Se você já utilizou o comando ‘ifconfig’ no Raspberry, deve ter notado a nova interface de rede, chamada ‘usb0’. Tal como qualquer interface de rede, você pode adicioná-la ao arquivo de configurações de interfaces de rede para atribuir seus próprios valores. Já escrevi um artigo para o sistemasembarcados.org sobre configurações de interfaces de rede e em mais um monte de artigos aqui no site, mas de qualquer modo, vou citar o processo novamente.

Adicione as linhas relacionadas ao dispositivo usb0:

Coloquei um endereçamento da classe B porque já tenho uma rede classe C configurada e não quero cometer deslizes. Agora você já tem mais uma interface de rede no seu Raspberry para se divertir!

Parar o network-manager

Se você estiver fazendo isso em um Ubuntu por exemplo, o network-manager deve atrapalhar um bocado. Desabilite-o:

Recomendo fortemente a leitura desse material (em inglês) para ver outros recursos do USB gadget. Minha Raspberry Pi Zero está a caminho, aí farei um video  mostrando o funcionamento.

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

 

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.