This is an old revision of the document!
−Table of Contents
Raspberry Pi Car Device
Riferimenti web:
Dongle USB Edimax
Ci vuole una versione custom di hostpad….
hostap
Si vuole che il Raspberry possa funzionare in modo master (access point), ma che sia facile passare al modo managed (station) in roaming.
La modalità master si ottiene con il software hostapd, i file di configurazione sono:
/etc/hostapd/hostapd.conf
/etc/default/hostapd
Le funzioni di Access Point si configurano in /etc/hostapd/hostapd.conf
, le impostazioni diverse dal default sono: ()
driver=rtl871xdrv ssid=PiCar country_code=IT channel=7 auth_algs=1 wmm_enabled=0 wpa=1 # TODO: usare un file di password? wpa_passphrase=MySecret wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Volendo avviare hostapd al bootstrap basta mettere in /etc/default/hostapd
qualcosa del genere:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
tuttavia noi si vuole avviare l'interfaccia manualmente, quindi si imposta in /etc/network/interfaces
:
allow-hotplug wlan0 # WiFi in Access Point (Master) mode. # Activate with: ifdown wlan0; ifup wlan0=master iface master inet static address 192.168.5.1 netmask 255.255.255.0 up start-stop-daemon --start --oknodo --quiet --exec /usr/sbin/hostapd --pidfile /var/run/hostapd.pid -- -B -P /var/run/hostapd.pid /etc/hostapd/hostapd.conf >/dev/null || true down start-stop-daemon --stop --oknodo --quiet --exec /usr/sbin/hostapd --pidfile /var/run/hostapd.pid || true
in questo modo è possibile usare i comandi per fermare o avviare l'interfaccia nella modalità Master:
ifdown wlan0 ifup wlan0=master
wpa_supplicant
/etc/network/interfaces
:
allow-hotplug wlan0 # WiFi in Client (Managed) mode iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf # If network stanza has not "id_str", wpa_supplicant will use "default". iface default inet dhcp
C'è un problema: l'opzione
wpa-roam
deve essere associata ad una interfaccia fisica (es. iface wlan0 …
) e di tipo manual
, non viene accettata su un'istanza di interfaccia logica (es. iface master …
) oppure di tipo dhcp
. L'istanza di wpa_supplicant
lanciata in questo modo cerca quindi un'eventuale istanza di interfaccia logica col nome specificato dalla stringa id_str
wpa_supplicant.conf
, altrimenti utilizza la stringa default
(esempio sopra, che causa la configurazione via DHCP).
Una conseguenza di tutto questo è che non si riesce a lanciare wpa_supplicant
in modalità roaming utilizzando un nome logico, ad esempio ifup wlan0=managed
, in quanto il cliente DHCP non viene eseguito.