
FlexiHub
Questo è tutto!
Da quel momento in poi, il dispositivo USB condiviso sarà accessibile in remoto da tutti i computer con FlexiHub installato e la connessione Internet, indipendentemente dai sistemi operativi o dalle distanze fisiche. Grazie all'esclusivo Redirection USB Server, l'app è davvero una soluzione universale che funziona attraverso tutti i firewall e non richiede indirizzi IP pubblici. Puoi persino utilizzare questo metodo per condividere un hub USB in modo che qualsiasi periferica collegata ad esso diventi immediatamente disponibile per le connessioni remote.
FlexiHub
E la ciliegina su questa torta è che per condividere da USB a Ethernet non è necessario trasformare in modo permanente il tuo Raspberry Pi in un server USB. Puoi condividere dongle, webcam, stampanti e altre periferiche collegate alle porte USB di tutti i computer con FlexiHub installato, incluso il tuo tablet Android, e non avrai mai problemi con la connettività multipiattaforma. Da una macchina Windows, puoi persino condividere una periferica basata su COM. Quanto è fantastico? E, per maggiore comodità, avrai l'opportunità di usufruire della connettività wireless accedendo ai dispositivi condivisi tramite Wi-Fi. Addio a tutti quei cavi CAT6 sparsi per l'ufficio.
In linea di principio, questo metodo è simile a quello appena descritto, ma tramite un'altra app di estensione da USB a Ethernet. E dato che questa volta utilizzeremo una soluzione open source ancora in fase di sviluppo, il processo di installazione richiede un livello decente di competenza tecnica per essere eseguito, 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:
sudo apt install usbip
sudo modprobe usbip_host
echo 'usbip_host' >> /etc/modules
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.
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.
sudo usbip bind --busid=N
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 Raspberry (dopo che è spento, puoi anche scollegare il suo adattatore CA per ulteriori precauzioni).
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 |
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.