Raspberry PI 2 B WiFi Router
Updated at: 17/06/2015


Configuriamo la nostra Raspberry Pi 2 model B (con raspbian come OS) per fare da router sull'interfaccia WiFi utilizzando la scheda Edimax EW-7811UN. La guida da cui ho preso spunto è questa (anche se alcune cose sono modificate ad hoc): http://www.acmesystems.it/webapp_server Per prima cosa installiamo i componenti necessari (è normale che isc-dhcp-server dia errore subito dopo l'installazione perché dovremo configurarlo)
sudo -s
apt-get update 
apt-get install -y hostapd dnsmasq iw isc-dhcp-server
apt-get install zip
La  versione "standard" di hostapd non funziona (perlomeno con questa scheda di rete), quindi scarichiamo alcuni file per farne il fix (li trovate anche qui)
wget http://www.jsmservice.eu/Downloads/hostapd.zip
unzip hostapd.zip 
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
sudo mv hostapd /usr/sbin/hostapd.edimax 
sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd 
sudo chown root.root /usr/sbin/hostapd 
sudo chmod 755 /usr/sbin/hostapd
  Quindi andiamo a modificare l'interfaccia di rete wlan0
nano /etc/network/interfaces
aggiungiamo le seguenti righe per la connessione wlan0 auto wlan0 allow-hotplug wlan0 iface wlan0 inet static address 192.168.2.1 netmask 255.255.255.0
ifdown wlan0 && ifup wlan0
Ora andiamo a creare il file di configurazione per hostapd
nano /etc/hostapd/hostapd.conf
interface=wlan0 driver=rtl871xdrv bridge=br0 ssid=RPi channel=1 wmm_enabled=0 wpa=1 wpa_passphrase=wifi_pw wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP auth_algs=1 macaddr_acl=0
Configuriamo ora il server DHCP per funzionare sull'iterfaccia di rete corretta:
nano /etc/default/isc-dhcp-server
modifichiamo la seguente riga mettendo wlan0 come interfaccia:
INTERFACES="wlan0"
nano /etc/dhcp/dhcpd.conf
sostituiamo tutto con le seguenti righe:
ddns-update-style none; option domain-name "acme.org"; option domain-name-servers 192.168.2.1; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.50 192.168.2.100; option routers 192.168.2.1; }
quindi riavviamo il servizio DHCP
/etc/init.d/isc-dhcp-server restart
A questo punto, se tutto è andato bene, testiamo la nostra condivisione WiFi lanciando il comando:
hostapd /etc/hostapd/hostapd.conf
Dovrebbe avviarsi la connessione wifi e da un altro dispositivo connetterci alla nostra Raspberry con la password specificata nel file conf. Se tutto è a posto mettiamo in avvio automatico la creazione della rete wifi
nano /etc/default/hostapd
modifichiamo la riga come segue (rimuovendo il commento # all'inizio della riga):
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Eseguiamo un reboot e tutto dovrebbe funzionare. Al momento, in questa configurazione, è possibile solo accedere alla scheda tramite rete, non fa da router verso internet (posto che sia connessa a una rete su eth0). Se vogliamo evitare che la scheda ci metta tantissimo ad avviarsi in assenza di connessione su eth0, modifichiamo il file /etc/dhcp/dhclient.conf come segue:
nano /etc/dhcp/dhclient.conf

timeout 10;
retry 15;