Cookie
FlexiHub Team uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Come condividere USB su Ethernet con Raspberry Pi

In molte situazioni, è molto desiderabile avere l'opportunità di condividere una periferica USB attraverso la rete. Per uno, se hai un intero team che utilizza un software con licenza costoso protetto con una chiave di sicurezza USB. Nessuno vuole spendere una fortuna in licenze individuali per ogni dipendente o scommettere con la perdita o il danneggiamento di detta chiave poiché verrà portata in giro per l'ufficio collegata a macchine diverse per tutto il giorno.

FlexiHub


Windows, macOS, Linux, Android
4.8 Rango basato su 78+ utenti
Condividi seriale su IP
Come forse già saprai, esiste un modo per configurare il tuo Raspberry Pi come server USB su Ethernet. Bene, in realtà, non c'è una, ma due strade che puoi prendere qui: un percorso facile con l'app a pagamento efficiente al cento per cento o un giro accidentato con una soluzione open-source e il suo complicato processo di configurazione. E stiamo per dare un'occhiata a entrambi.

Condivisione USB rapida e sicura da Raspberry Pi con FlexiHub

Con lo strumento software giusto, la condivisione di USB su IP da un Raspberry Pi è tutt'altro che semplice:
1
Scarica la versione Linux;
2
Nel terminale del tuo Raspberry, esegui il seguente comando: yum install [package];
3
Avvia l'app e fai clic su "Condividi" accanto al tuo dispositivo.

Questo è tutto!

Da quel momento in poi, il dispositivo condiviso sarà accessibile in remoto da qualsiasi macchina Linux, Windows o Mac con FlexiHub installato e connessione Internet, indipendentemente dalla distanza fisica. Grazie all'esclusivo server di reindirizzamento USB, l'app è davvero una soluzione internetwork che funziona attraverso tutti i firewall e non richiede indirizzi IP pubblici.

FlexiHub

Windows, macOS, Linux, Android
4.8 Rango basato su 78+ utenti
Inoltre, FlexiHub ha una funzione di compressione del traffico opzionale che è molto utile quando si tratta di condividere dispositivi USB sensibili alla larghezza di banda come le telecamere USB e una crittografia SSL a 2048 bit a prova di proiettile per impedire completamente l'accesso indesiderato ai dongle di sicurezza o ai dati passato con l'app.
FlexiHub

E la ciliegina su questa torta è che non hai davvero bisogno di trasformare in modo permanente il tuo Raspberry Pi in un server USB-over-IP. Puoi condividere dispositivi USB da qualsiasi macchina con FlexiHub installato, incluso il tuo tablet Android, e non avere mai problemi con la connettività multipiattaforma. Da una macchina Windows, puoi persino condividere una periferica basata su COM. Quanto è fantastico? E, per una maggiore comodità, avrai l'opportunità di usufruire della connettività wireless accedendo ai dispositivi condivisi tramite Wi-Fi.

Un modo gratuito per configurare un Raspberry Pi come server USB-over-IP

In linea di principio, questo metodo è simile a quello che abbiamo appena descritto, ma attraverso l'agenzia di un'app diversa. E dato che questa volta utilizzeremo una soluzione open source che è ancora in fase di sviluppo, il processo di configurazione richiede un discreto livello di competenza tecnica per funzionare, quindi se non ne hai, non sorprenderti se non funzionerà al primo tentativo.

Ecco alcuni punti più importanti che devi considerare prima di optare per questo metodo:

  • Funziona solo per la condivisione di dispositivi USB nella rete locale.
  • Impossibile condividere un dispositivo da una macchina non Linux.
  • Maggiore è la distanza dal dispositivo condiviso, peggiore è la connessione.
  • Nessuna protezione per accessi non autorizzati.
  • Nessuna compressione del traffico, quindi un'immagine da una telecamera remota potrebbe subire un notevole ritardo.

Cominciamo con la configurazione del tuo Raspberry Pi come server:

1
Installa l'app utilizzando questo comando: sudo apt install usbip
2
Una volta completata l'installazione, aggiungi il modulo del kernel di cui avremo bisogno inserendo:
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
3
Ora, usa il comando lsusb per visualizzare un elenco di tutti i dispositivi USB fisicamente collegati al tuo Raspberry Pi e ricorda (o annota) il numero ID USB a 8 cifre di un dispositivo che stai per condividere.
4
Utilizza il comando usbip list -p -l per trovare l'ID bus del tuo dispositivo (utilizza il numero ID USB di un passaggio precedente per identificare il dispositivo corretto nell'elenco). Annota quel numero.
5
Esegui il comando:
sudo usbip bind --busid=N
(N è il numero ID bus del passaggio precedente)
6
Esegui il demone per collegare il dispositivo all'USB/IP eseguendo il comando: usbipd

In alternativa, puoi creare un servizio systemd:

vi /lib/systemd/system/usbipd.service

con la seguente definizione (non dimenticare di cambiare la N per un numero ID USB effettivo del tuo 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 poi dovrai eseguire questi comandi per avviare quel servizio:

sudo systemctl --system daemon-reload
sudo systemctl enable usbipd.service
sudo systemctl start usbipd.service

Ok, ora configuriamo un cliente:

Nota: l'app ha un client per Windows, ma è una versione beta fragile senza driver firmati o supporto per Windows 10, quindi non vale davvero la pena menzionarla.

1. Per installare la stessa app per la condivisione di USB su IP in Ubuntu, esegui questi comandi:
sudo -s
apt-get install linux-tools-generic -y

2. Abilita il modulo richiesto:
modprobe vhci-hcd
echo 'vhci-hcd' >> /etc/modules

Ora, per connettere il dispositivo condiviso a questa macchina, esegui il comando: sudo usbip attach -r 0.0.0.0
(digita l'indirizzo IP effettivo del tuo Raspberry Pi invece di 0.0.0.0)

Oppure puoi creare un servizio systemd:
vi /lib/systemd/system/usbip.service

Con la definizione (sostituisci N con un numero ID USB effettivo del tuo dispositivo e 0.0.0.0 con l'indirizzo IP del tuo 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 

Salva, quindi esegui questi comandi per avviare il servizio:

sudo systemctl --system daemon-reload
sudo systemctl enable usbip.service
sudo systemctl start usbip.service

Dopodiché, dovresti essere in grado di accedere al dispositivo condiviso da remoto. In caso contrario, riprova tutti i passaggi dall'inizio.

Importante! Se scolleghi un dispositivo USB dal Raspberry Pi mentre è condiviso con questo metodo, potrebbe verificarsi una perdita permanente di dati. Spegni prima il tuo lampone.

Condivisione USB con FlexiHub
Periodo di prova di 30 giorni

Una tabella per il confronto tra i due metodi:

Server proxy
Server proxy
Server di reindirizzamento
• non c'è bisogno di IP esterno
• comunicazione multi-rete
• funziona attraverso il firewall
 
N/A
 
Piattaforme supportate:
Piattaforme supportate:
 
 
Lato server
Lato server
✓ Windows
✓ Linux
✓ macOS
✓ Android
 
✓ Linux
 
Dalla parte del cliente
Dalla parte del cliente
✓ Windows
✓ Linux
✓ macOS
 
✓ Windows (beta)
✓ Linux
 
Firmware per microcontrollori
Firmware per microcontrollori
Raspberry (su richiesta)
 
N/A
 
Sicurezza
Sicurezza
Token di accesso per la condivisione sicura dell'account
Blocca per il controllo dell'accesso al dispositivo
 
N/A
 
Crittografia
Crittografia
SSL a 2048 bit
 
N/A
 
Stabilità migliorata
Stabilità migliorata
Opzione Mantieni la connessione attiva
 
N/A
 

Commenti finali

Di sicuro, spetta totalmente a te decidere quale dei due metodi descritti in questo articolo intendi adottare. Ma non sarebbe meglio investire in uno strumento facile da gestire con comprovata efficienza piuttosto che fare affidamento su qualcosa che può fallire in qualsiasi momento e causare chissà quanti nervi, tempo e denaro a causa di tempi di inattività non pianificati.


Miglior scelta

FlexiHub

  • Rango 4.8 basato su 78+ utenti
  • Windows 7/8/10, Server 2008 R2/2012/2016/2019. 6.99MB Size.
  • Versione 4.5.13261. (9 Mar, 2021).