Manual

do

Maker

.

com

USB Gadget - Usar a porta USB como ethernet

USB Gadget - Usar a porta USB como ethernet

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:

dtoverlay=dwc2

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

sudo su 
vi /boot/config.txt

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:

modules-load=dwc2,g_ether

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

sudo su
cd /etc/network
vi interfaces

Adicione as linhas relacionadas ao dispositivo usb0:

allow-hotplug usb0
iface usb0 inet static
    address 172.0.0.1
    netmask 255.255.0.0

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:

echo "manual" > /etc/init/network-manager.override

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 canal Manual do Maker Brasil no YouTube.

Próximo post a caminho!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.