
FlexiHub
É isso!
A partir desse ponto, o dispositivo USB compartilhado poderá ser acessado remotamente de todos os computadores com FlexiHub instalado e conexão à Internet, independentemente dos sistemas operacionais ou distâncias físicas. Graças ao servidor Redirection USB exclusivo, o aplicativo é realmente uma solução universal que funciona através de todos os firewalls e não requer endereços IP públicos. Você pode até usar este método para compartilhar um hub USB de forma que qualquer periférico conectado a ele fique instantaneamente disponível para conexões remotas.
FlexiHub
E a cereja do bolo é que, para compartilhar USB com Ethernet, você realmente não precisa transformar permanentemente seu Raspberry Pi em um servidor USB. Você pode compartilhar dongles, webcams, impressoras e outros periféricos conectados às portas USB de todos os computadores com FlexiHub instalado, incluindo seu tablet Android, e nunca ter problemas com conectividade de plataforma cruzada. Em uma máquina Windows, você pode até mesmo compartilhar um periférico baseado em COM. Quão incrível é isso? E, para maior comodidade, você terá a oportunidade de desfrutar da conectividade sem fio acessando dispositivos compartilhados via Wi-Fi. Tanto tempo para todos aqueles cabos CAT6 espalhados pelo escritório.
Em princípio, esse método é semelhante ao que acabamos de descrever, mas por meio de um aplicativo de extensão USB para Ethernet diferente. E dado que desta vez usaremos uma solução de código aberto que ainda está em desenvolvimento, o processo de configuração requer um nível decente de competência técnica para ser executado, então, se você não tiver nenhuma, não se surpreenda se não funcionará na primeira tentativa.
Aqui estão alguns pontos mais importantes que você precisa considerar antes de optar por este método:
sudo apt install usbip
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
lsusb command
para ver uma lista de todos os dispositivos USB fisicamente conectados ao Raspberry Pi e lembre-se (ou anote) o número de ID USB de 8 dígitos de um dispositivo que você vai compartilhar .
usbip list -p -l
para descobrir a ID de barramento do seu dispositivo (use o número de ID USB de uma etapa anterior para identificar o dispositivo certo na lista). Anote esse número.
sudo usbip bind --busid=N
usbipd
Como alternativa, você pode criar um serviço systemd:
vi /lib/systemd/system/usbipd.service
com a seguinte definição (não se esqueça de alterar o N para um número de ID USB real do seu dispositivo):
[Unit]
Description=usbip host daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/usbipd -D
ExecStartPost=/bin/sh -c "/usr/sbin/usbip bind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1)"
ExecStop=/bin/sh -c "/usr/sbin/usbip unbind --$(/usr/sbin/usbip list -p -l | grep '#usbid=N#' | cut '-d#' -f1); killall usbipd"
[Install]
WantedBy=multi-user.target
E então você precisará executar estes comandos para iniciar esse serviço:
sudo systemctl --system daemon-reload
sudo systemctl enable usbipd.service
sudo systemctl start usbipd.service
Ok, agora vamos configurar um cliente:
Observação: o aplicativo tem um cliente para Windows, mas é uma versão beta frágil, sem drivers assinados ou qualquer suporte para Windows 10, portanto, não vale a pena mencionar.
1. Para instalar o mesmo aplicativo para compartilhar USB sobre IP no Ubuntu, execute estes comandos:
sudo -s
apt-get install linux-tools-generic -y
2. Habilite o módulo necessário:
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules
Agora, para conectar o dispositivo compartilhado a esta máquina, execute o comando:
sudo usbip attach -r 0.0.0.0
(digite o endereço IP real do seu Raspberry Pi em vez de 0.0.0.0)
Ou você pode criar um serviço systemd:
vi /lib/systemd/system/usbip.service
Com a definição (substitua N por um número de ID USB real do seu dispositivo e 0.0.0.0 pelo endereço IP do seu Raspberry):
[Unit]
Description=usbip client
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip attach -r 0.0.0.0 -b $(/usr/lib/linux-tools/$(uname -r)/usbip list -r 0.0.0.0 | grep 'N' | cut -d: -f1)"
ExecStop=/bin/sh -c "/usr/lib/linux-tools/$(uname -r)/usbip detach --port=$(/usr/lib/linux-tools/$(uname -r)/usbip port | grep '<Port in Use>' | sed -E 's/^Port ([0-9][0-9]).*/\1/')"
[Install]
WantedBy=multi-user.target
Salve e execute estes comandos para iniciar o serviço:
sudo systemctl --system daemon-reload
sudo systemctl enable usbip.service
sudo systemctl start usbip.service
Depois disso, você deve conseguir acessar o dispositivo compartilhado remotamente. Caso contrário, tente todas as etapas novamente desde o início.
Importante! Se você desconectar um dispositivo USB do Raspberry Pi enquanto ele é compartilhado por este método, pode resultar em perda permanente de dados. Desligue o Raspberry primeiro (depois de desligado, você também pode desconectar o adaptador CA para precauções extras).
Servidor proxy
|
Servidor proxy
|
Servidor de Redirecionamento
• sem necessidade de IP externo
• comunicação multi-rede
• funciona através do Firewall |
N/A |
Plataformas suportadas:
|
Plataformas suportadas:
|
|
|
Lado do servidor
|
Lado do servidor
|
✓ Windows
✓ Linux
✓ macOS
✓ Android |
✓ Linux |
Do lado do cliente
|
Do lado do cliente
|
✓ Windows
✓ Linux
✓ macOS |
✓ Windows (beta)
✓ Linux |
Firmware para microcontroladores
|
Firmware para microcontroladores
|
Raspberry (a pedido) |
N/A |
Segurança
|
Segurança
|
Tokens de login para compartilhamento seguro da conta
Bloquear para controle de acesso ao dispositivo |
N/A |
Encriptação
|
Encriptação
|
2048-bit SSL |
N/A |
Estabilidade aprimorada
|
Estabilidade aprimorada
|
Manter a conexão ativa opção |
N/A |
Com certeza, depende totalmente de você decidir qual dos dois métodos descritos neste artigo você vai adotar. Mas não seria melhor investir em uma ferramenta fácil de manusear com eficiência comprovada do que confiar em algo que pode falhar a qualquer momento e causar quem sabe quanto nervosismo, tempo e dinheiro devido ao tempo de inatividade não planejado.