Come fare hotspot Wi-Fi da Pi Zero

Dopo aver visto come configurare il Pi Zero come accessorio e come condividergli internet tramite la porta OTG, vediamo come creare un hostpot Wi-Fi dal Pi Zero. Quindi con la possibilità di connettervi come fosse un router Wi-Fi.

Come potete vedere dalla foto qua sotto, avendo due antenne Wi-Fi (ne ha una integrata il Pi Zero W) posso connetterlo sia al router principale che fargli generare un hotspot Wi-Fi.

Raspberry Pi con due antenne Wi-Fi: una integrata e una esterna

Partiamo facendo gli aggiornamenti:

sudo apt update
sudo apt upgrade

Poi installiamo:

sudo apt install dnsmasq hostapd

E stoppiamo i servizi:

sudo service dnsmasq stop
sudo service hostapd stop

Assicuratevi d’aver l’interfaccia wlan0 configurata nell’interfaces (e che quindi sia utilizzabile).

Andiamo a modificare dnsmasq (che questa volta useremo per il Wi-Fi):

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf

Aggiungete queste due righe:

interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

E create la configurazione per il Wi-Fi:

sudo nano /etc/hostapd/hostapd.conf

Incollate (modificando il nome che preferite):

interface=wlan0
driver=nl80211
ssid=Pi
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Ora modificate questo file:

sudo nano /etc/default/hostapd

Con questa riga così:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Ora attiviamo tutto:

sudo service hostapd start
sudo service dnsmasq start

E siete finalmente pronti per connettervi con il vostro smartphone o con il vostro computer.

Fonte https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md

Come condividere la connessione internet ai Pi Zero via OTG

So che dal titolo potrebbe non comprendersi molto ma l’obiettivo è collegare i Pi Zero a internet, non tramite Wi-Fi ma bensì via USB, tramite un altro Raspberry che fa da router.

I Raspberry Pi Zero a differenza delle altre versioni (mi riferisco al 2 e al 3) è possibile configurarli come accessori quindi il loro funzionamento resta inalterato ma in più, il dispositivo a cui lo collegate, potrà riconoscerlo come un hub USB o come un adattatore ethernet.

Una volta configurato il Pi Zero da poter funzionare direttamente dalla porta OTG, collegatelo a un Pi 2 o 3 come nella foto:

Due Pi Zero e un Raspberry Pi: dove comprarli

Il Pi Zero non configurate nulla, farà tutto automaticamente. Mentre nel Raspberry 2 o 3, che sarà quello che gli offrirà la connessione a internet (quindi a lato pratico sarà come un router in quanto gli assegnerà un IP e creerà una connessione apposta per ogni Pi Zero collegato), dovrete installare dnsmasq:

sudo apt install dnsmasq

Ora configuriamolo modificando il file di configurazione:

sudo nano /etc/dnsmasq.conf

Se ad esempio volete collegarne due di Pi Zero, create due interfacce (cambiate i parametri che più preferite) usb0 e usb1:

interface=usb0
interface=usb1
listen-address=127.0.0.1
bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv

dhcp-range=usb0,192.168.2.2,192.168.2.100,infinite
dhcp-range=usb1,192.168.3.2,192.168.3.100,infinite

Adesso attivate il forward dei pacchetti:

sudo nano /etc/sysctl.conf

E modificate la riga:

net.ipv4.ip_forward=1

Ora modificate il file:

sudo nano /etc/network/interfaces

E incollate (modificando i parametri che preferite e la x nell’IP del vostro Raspberry principale):

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.x
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1

allow-hotplug usb0
iface usb0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.2.255
    gateway 192.168.2.1

allow-hotplug usb1
iface usb1 inet static
    address 192.168.3.1
    netmask 255.255.255.0
    network 192.168.3.0
    broadcast 192.168.2.255
    gateway 192.168.3.1

Voilà, ora riavviate il servizio (immaginando che voi abbiate già attaccato il o i Pi Zero alle USB del vostro Raspberry) con:

sudo service dnsmasq restart

E il gioco è fatto, il vostro Raspberry che fa da router assegnerà gli IP e reindirizzerà i pacchetti ai Pi Zero.

Come usare il Raspberry Pi Zero come accessorio

Il Pi Zero è possibile utilizzarlo come un accessorio e non solo come un computer vero e proprio (ha la porta USB, HDMI ecc). Il tutto utilizzando la porta OTG, cioè quella accanto a quella di alimentazione.

Prima di tutto installate Raspbian, poi spegnete e collegate la microSD al vostro computer. Aprite la partizione boot e modificate questi due file:

config.txt

Aggiungete una riga e incollate:

dtoverlay=dwc2

Poi aprite il file:

cmdline.txt

E dopo rootwait aggiungete:

modules-load=dwc2,g_ether

Ora potete collegarlo al vostro computer (o un altro Raspberry volendo) e gli potete condividere internet (oppure diciamo… riceverlo) con un solo cavo. Invece di usare la porta di alimentazione, solo da quella accanto, come vedete in foto:

Pi Zero usato come accessorio tramite la porta OTG

Fonte di tutto questo:

https://gist.github.com/gbaman/50b6cca61dd1c3f88f41
https://gist.github.com/gbaman/975e2db164b3ca2b51ae11e45e8fd40a