W kolejnym projekcie będę chciał użyć Raspberry Pi jako bezprzewodowego sterownika robota, sterowanie odbywać się będzie ze smartfona z Androidem przez interfejs WiFi. Aby nie trzeba było łączyć smartfona i RPi przez Access Point muszę tak skonfigurować WiFi w RPi, aby działało jako AP.Zakładam, że mamy już Raspberry Pi ze skonfigurowanym Raspbianem i zainstalowaną kartę WiFi, ja używam Raspberry Pi 2 oraz karty TP-Link TL-WN725N, karta działa od razu w najnowszych wersjach Raspbiana, nie ma konieczności pobierania firmware, kompilowania sterowników ani innych nieprzyjemności. Do uruchomienia AP potrzebujemy jeszcze:
- skonfigurować statyczny adres IP dla Raspberry Pi
- zainstalować serwer DHCP, który automatycznie nada dołączonym urządzeniom adresy IP
- zainstalować pakiet hostapd
Statyczny adres IP w Raspberry Pi
Adres IP ustawiamy w pliku /etc/network/interfaces, modyfikujemy do np. edytorem nano:
1 |
sudo nano /etc/network/interfaces |
W pliku powinna znajdować się część odpowiedzialna za interfejs bezprzewodowy, powinna zaczynać się od tekstu „iface wlan0”. Modyfikujemy tę sekcję tak, aby wyglądała następująco:
1 2 3 |
iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 |
Serwer DHCP
Zaczynamy od instalacji niezbędnego oprogramowania:
1 |
sudo apt-get install isc-dhcp-server |
Po zainstalowaniu pakietu możemy go skonfigurować, otwieramy plik konfiguracyjny:
1 |
sudo nano /etc/dhcp/dhcpd.conf |
Na końcu tego pliku dodajemy:
1 2 3 4 5 6 7 |
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.150; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; option domain-name "local"; } |
Dodatkowo musimy znaleźć linie:
1 2 |
option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; |
i je wykomentować:
1 2 |
#option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org; |
Zapisujemy zmiany i otwieramy plik /etc/default/isc-dhcp-server:
1 |
sudo nano /etc/default/isc-dhcp-server |
W tym pliku wyszukujemy linię zaczynającą się od „INTERFACES” i modyfikujemy ją do takiej postaci:
1 |
INTERFACES="wlan0" |
Instalacja hostapd
Sterownik karty TL-WN725N nie działa z nowymi wersjami hostapd, dlatego pobierzemy wersję dostarczaną ze źródłami sterownika, kompilujemy pakiet hostapd oraz go instalujemy:
1 2 3 4 |
git clone git://github.com/lwfinger/rtl8188eu cd rtl8188eu/hostapd-0.8/hostapd make sudo make install |
Teraz tworzymy plik konfiguracyjny hostapd.conf poleceniem:
1 |
sudo nano /etc/hostapd.conf |
Wklejamy jego zawartość:
1 2 3 4 5 6 7 8 9 10 |
interface=wlan0 ssid=NazwaPunktu hw_mode=g channel=6 auth_algs=1 wpa=2 wpa_passphrase=Haslo123 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
Oczywiście wartości ssid oraz wpa_passphrase należy zmodyfikować.Aby hostapd startował automatycznie po uruchomieniu Raspberry Pi użyjemy crona, wpisujemy polecenie:
1 |
crontab -e |
Na końcu pliku dopisujemy:
1 |
@reboot sudo -u root hostapd -B /etc/hostapd.conf |
Zapisujemy zmiany i restartujemy Raspberry Pi, po uruchomieniu access point powinien być dostępny.
Podczas wywołania polecenia make jest failed i informacja że należy wykonać:
run „cp defconfig .config” to create an example configuration.”
Nie wiem co to robi ale działa 😛