WiFi w Raspberry Pi w trybie Access Point z kartą TL-WN725N

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:

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:

iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0

Serwer DHCP

Zaczynamy od instalacji niezbędnego oprogramowania:

sudo apt-get install isc-dhcp-server

Po zainstalowaniu pakietu możemy go skonfigurować, otwieramy plik konfiguracyjny:

sudo nano /etc/dhcp/dhcpd.conf

Na końcu tego pliku dodajemy:

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:

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

i je wykomentować:

#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:

sudo nano /etc/default/isc-dhcp-server

W tym pliku wyszukujemy linię zaczynającą się od „INTERFACES” i modyfikujemy ją do takiej postaci:

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:

 

git clone git://github.com/lwfinger/rtl8188eu
cd rtl8188eu/hostapd-0.8/hostapd
make
sudo make install

Teraz tworzymy plik konfiguracyjny hostapd.conf poleceniem:

sudo nano /etc/hostapd.conf

Wklejamy jego zawartość:

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:

crontab -e

Na końcu pliku dopisujemy:

@reboot sudo -u root hostapd -B /etc/hostapd.conf

Zapisujemy zmiany i restartujemy Raspberry Pi, po uruchomieniu access point powinien być dostępny.