iakta.org
en
31 Agosto 2017 | 5 min. ( 853 parole ) | di walter

Collegare 2 Raspberry con un cavetto USB

Come collegare un RaspberryPiZero slave di un altro RaspberryPi, con solo cavo USB/microUSB
raspberry otg usb

Ogni tanto può servire collegare due Raspberry insieme, in modo che si parlino via TCP, ma non si ha una rete ethernet a disposizione, nè tantomeno si vuole mettere un Wifi solo per questo.
Ad esempio uno dei due RaspberryPi deve potere fare da “server” o “client” per un secondo Raspberry.

Magari uno dei due Raspberry (o tutti e due) sono un raspberryPi Zero, senza wifi (alcuni), ma soprattutto senza prese Ethernet.

Dopo un pò di ricerca, abbiamo capito che si può fare via cavo USB, semplicemente. In pratica uno dei due Raspberry va configurati per avere IP-over-USB (USB OTG), e vanno dotati di due indirizzi IP fissi, e diversi, ma sulla stessa sottorete, per l’interfaccia usb0.

Ora vediamo nel dettaglio come fare e cosa occorre:

  • un RaspberryPi3 e un PiZero (o due Zero). Chiamiamoli A (master) e B (slave)
  • essere in grado di accedere al raspberryPi3 (via console o SSH via wifi/ethernet)
  • un cavo USB / USB micro (per intenderci, quelli che si usano per collegare Android a un PC)
  • un lettore di microSD
  • un computer “vero” con una connessione internet

Come prima il Raspberry PiZero (se volete anche il Pi3, ma non è necessario) va configurato per avere un ethernet-over-USB (modo OTG) e anche accesso ssh. Ci sono molti tutorial, uno tra tutti questo: Serial Gadget Adafruit.
Per farlo basta un computer con il lettore delle microSD (o un adattatore).

Poi noi consigliamo di impostare sui Raspberry due indirizzi fissi. Probabilmente funziona anche con il nome bonjour (a patto che abbiano un hostname diverso).

Per prima cosa configuriamo per primo il RaspberryPi3 A, Master.
Per potere accedere al RaspberryPi3 da Computer ci sono vari modi:
1) Cavo USB/seriale TTY. Comodo, ma bisogna averlo
2) via Ethernet, usando la presa Ethernet del RaspberryPi3 (se è un Pi3) ed è già configurato.
3) prendendo la scheda SD e mettendola dentro il raspberryPi Zero. In questo caso va configurato per funzionare come OTG

Vanno bene tutte, noi partiamo dalla 3. Togliete la SD e mettetela nel RaspberryPiZero. Collegatelo al PC/MAC con cavo USB/MicroUSB e aspettiamo che faccia boot. Poi da un terminale (o se siete su Windows, via PuTTY) facciamo ssh dentro il Raspberry:

ssh pi@raspberrypi.local (la password è raspberry se non l’avete cambiata)

dopodichè configuriamo il nostro Raspberry per avere indirizzo fisso sull’interfaccia tcp-over-usb.

sudo su -  
cd /etc/network
vi interfaces

il file deve avere in coda una sezione relativa a usb0:

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 192.168.2.2
        netmask 255.255.255.0
        network 192.168.2.0
        gateway 192.168.2.1
        dns-nameservers 8.8.8.8

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto usb0
allow-hotplug usb0
iface usb0 inet static
        address 192.168.42.43
        network 192.168.42.0
        netmask 255.255.255.0
        broadcast 192.168.42.255

La parte importante è l’ultimo blocco per USB (con allow-hotplug usb0). Questo è l ‘indirizzo IP fisso per la connessione USB tra i due. Segnamocelo da qualche parte. Basta che sia un indrizzo nella sottorete 10.x.x.x o 192.168.x.x (o altre per reti locali, meglio se diverso da quella di en0 o wifi).

Dopodichè salviamo e facciamo reboot. Se vogliamo controllare che l’IP sia corretto, al reboot colleghiamo il Raspberry PiZero appena configurato alla presa USB del nostro Mac o PC. Con un qualsiasi browser Bonjour Bonjour Browser per Mac OSX ad esempio, si dovrebbe vedere il nuovo IP. Per collegarsi via SSH all’IP configurato si deve, in genere, configurare il driver RNDIS del PC/Mac con un indirizzo fisso sulla stessa sottorete (vedete il nostro altro post).
Se vogliamo vedere che la scheda funzioni nel RaspberryPi3, inseriamola lì, e colleghiamoci via SSH o Console seriale e verifichiamo. Purtroppo senza collegare un dispositivo USB slave non si vedrà molto.

Ora configuriamo il secondo Raspberry, il B, in modo simile. Siccome il B sarà per forza un PiZero, non avremo la sezione relativa a eth0 visto che non c’è Ethernet e dunque modificando solo l’indirizzo statico per usb0.
Nel nostro caso aggiungiamo questa sezione in /etc/network/interfaces modificando l’IP address e aggiungendo la sezione gateway

auto usb0
allow-hotplug usb0
iface usb0 inet static
        address 192.168.42.42
        network 192.168.42.0
        netmask 255.255.255.0
        gateway 192.168.42.1
        broadcast 192.168.42.255

Poi spegnamolo.

A questo punto inseriamo le schede SD nei Rasperry corretti, colleghiamoli con un cavo USB/mini, da una USB qualsiasi del RaspberryPi3 alla presa USB (con label USB) del Raspberry PiZero.
Poi alimentiamo il Raspberry A e colleghiamoci via seriale o via SSH da un’altra interfaccia, e facciamo login.

Una volta entrati, lanciamo ifconfig usb0, dovremo vedere qualcosa di simile

usb0      Link encap:Ethernet  HWaddr ba:18:cc:c1:1f:82  
          inet addr:192.168.42.43  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::182d:a64b:9b94:9809/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:98 errors:0 dropped:0 overruns:0 frame:0
          TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12185 (11.8 KiB)  TX bytes:18791 (18.3 KiB)

A questo punto andiamo in SSH sul B

ssh pi@192.168.42.42 e dovremmo entrare dal Raspberry A nel Raspberry B, il tutto tramite il cavo USB.
Verifichiamo al contrario,
ping 192.168.42.43 deve funzionare.

A questo punto possiamo fare parlare i due sistemi via IP semplicemente con il cavo USB/USB micro, lungo anche qualche metro.

title

Referenze:

  • Cavo console USB/TTY
  • SSH / OTG per raspberryPiZero
raspberry otg usb
Twitter Facebook Google+

Sopravvivere alla WWDC

…

Chiosco museo economico

…

Privacy Policy © 2017 Iakta srl Published with Hugo and Cockpit CMS using Hugocockpit Theme based on Bleak by zutrinken
Menu