A Raspberry Pi egy rendkívül sokoldalúan felhasználható mini számítógép, lényegében csak a képzeletünk és egyéni képességünk szabja meg a határokat. Mérete akkora, mint egy kisebb pénztárca, mégis rengeteg egyedi építésű hardver lelke, például régi játékokat futtató retro-konzol, multimédia központ, vagy éppen wifi hotspot. Mi most az utóbbira szeretnénk egy egyszerű, bárki által kivitelezhető leírást bemutatni, az Adafruit jóvoltából.
Lássuk első lépésként a szükséges hozzávalókat. Ezek nélkül kár is nekiállni, így akinek valami nincs a listán, az szerezze be, és utána kapcsolódjon be ismét a leírásba.
- Raspberry Pi B modell (az ethernet port miatt fontos a B modell)
- UTP, azaz ethernet kábel
- WiFi adapter
- SD kártya (minimum 4GB)
- táp kábel
- USB konzol kábel (opcionális)
Ez a leírás már nem feltétlen a kezdőknek szól, úgyhogy feltelezzük, hogy már túl vagytok az első telepítésen, és az ethernet, illetve wifi kapcsolatot is létrehoztátok már a Pi-n. Akinek ez még nem lenne meg, annak itt van két leírás:
Tehát ott tartunk, hogy a Pi be van kapcsolva, és az internetre is felmászott az ethernet port-on keresztül. Biztos, ami biztos, teszteljük le.
Ellenőrizzük a kapcsolatot és a felhúzott hálózati interfészeket a következő paranccsal:
ifconfig -a
Ezek után nézzük meg, hogy elérjük-e az internetet:
ping 8.8.8.8
A 8.8.8.8 a Google DNS szervere, helyette természetesen más host-ot vagy ip-t is megpingelhetünk.
Ha ez rendben, akkor állítsuk le a Pi-t és csatlakoztassuk az USB-s wifi adaptert:
sudo shutdown -h now
Ha újra elindítottuk a Pi-t, ismét adjuk az infconig -a parancsot. Ekkor meg kell, hogy jelenjen egy új elem a listában, méghozzá a wlan0. Ez azonosítja wifi modult. Ha nem jelent meg, akkor próbálkozzunk másik adapterrel, vagy ellenőrizzük a kapcsolatot, nézzük meg a log file-okat.
Most, hogy a hardver és a hálózat rendben van, nekiállhatunk a szoftverek telepítésének. Mindezek előtt adjuk ki a következő parancsot, hogy frissítsük a repokat:
sudo apt-get update
Jöjjön a szoftver beszerzése, ami jelen esetben a hostap amely képes hálózati pontot varázsolni a Pi-ből:
sudo apt-get install hostapd isc-dhcp-server
A telepítés után álljunk neki a finomhangolásnak. Elsőnek a /etc/dhcp/dhcpd.conf fájlt kell megnyitni, amely az imént telepített DHCP szerver konfigurációs állománya. Ez fogja nekünk engedélyezni, hogy a wifi kapcsolatok automatikusan ip címhez és DNS-hez jussanak.
Nyissuk meg a fájlt:
sudo nano /etc/dhcp/dhcpd.conf
Keressük meg ezt a sort:
option domain-name „example.org”;
option domain-name-servers ns1.example.org, ns2.example.org;
És tegyünk mindkét sor elejére egy #-et, ami jelen esetben a kommentet jelöli, azaz a sor nem lesz aktív része a beállításnak. Valahogy így kell festenie:
#option domain-name „example.org”;
#option domain-name-servers ns1.example.org, ns2.example.org;
Keressük meg a következő sort:
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
És az utolsó sor elől vegyük ki a kommentet. Ezzel az ellenkezőjét csináljuk az előbbi mozdulatnak, engedélyezzük a beállítás ezen részét. Így kell kinéznie:
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
Menjünk lejjebb pár sorral, és adjuk hozzá a következő beállítási szekciót:
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name „local”;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
Mi is történik ezzel? Beállítjuk a megfelelő hálózati adatokat a klienseknek, többek között a DNS szerverek címét is, amik jelen esetben a Google szervereire mutatnak. Ezek ingyenesen használhatóak bárki számára, és általában jó választások. Ezek a szerverek mondják meg, hogy melyik weboldal címhez mely ip cím tartozik.
Lépjünk ki, és mentsük el a fájlt. Ctrl + X, majd Y, majd Enter.
Most egy másik fájlt kell megnyitni és szerkeszteni. Adjuk hát ki a következő parancsot:
sudo nano /etc/default/isc-dhcp-serverand
Keressük meg az INTERFACES=”” részt, és bővítsük ki erre:
INTERFACES=”wlan0″
Ezzel megadjuk neki, hogy az imént csatlakoztatott wifi adapteren keresztül várja a klienseket. A következő lépésben a wlan0 interfésszel foglalkozunk. Első lépésként statikusra állítjuk, azaz kiválasztunk egy dedikált belső IP címet neki.
Nyissuk meg szerkesztésre a hálózati interfészek beállításait tartalmazó fájlt:
sudo nano /etc/network/interfaces
Keressük meg azt a részt, ahol valami ilyesmit látunk: auto wlan0. Tegyünk elé egy #-et, ahogy korábban. Ezzel kommentként jelöltük meg ezt a sort, így nem fog lefutni a következő alkalommal. Viszont így nem is fog életre kelni az interfész, így illesszük be a következő sorokat, közvetlenül az allow hotplug wlan0 rész után. Minden ez után lévő sort, ami még a fájlban esetleg van, kikommentezhetünk.
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
Lépjünk ki, és mentsük el a fájlt a korábban már említett módon. (Ctrl-X, majd Y, majd Enter).
Állítsuk be kézzel most az interfésznek az előbb megadott adatokat a következő paranccsal:
sudo ifconfig wlan0 192.168.42.1
Készen is vagyunk arra, hogy a végső simítások elvégezzük a kis hálózatunkon.
Access point beállítása
A következő pár paranccsal beállítjuk a vezeték nélküli hotspot fontosabb adatait. Kezdjük mindjárt azzal, hogy létrehozunk egy új fájlt:
sudo nano /etc/hostapd/hostapd.conf
A tartalma pedig a következő legyen:
interface=wlan0
driver=rtl871xdrv
ssid=Pi_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Két részt kell / érdemes módosítani. Az ssid rész szabja meg, hogy milyen néven fog életre kelni az access-point, azaz mi lesz a wifi hálózat neve. Itt lehetünk kreatívak. A másik átírandó rész a wpa_passpharase, ahol beállíthatjuk, hogy mi legyen a jelszó a wifi hálózathoz. Ha kész, lépjünk ki, és mentsük el az állományt.
Most már csak azt kell beállítani, hogy ez a konfigurációs fájl le is fusson:
sudo nano /etc/default/hostapd
Majd itt a #DAEMON_CONF=”” sort szerkesszük a következőre:
DAEMON_CONF=”/etc/hostapd/hostapd.conf”
Mentsük el őt is. Ezzel beállítottuk, hogy a hostapd szoftver az imént létrehozott, majd személyre szabott konfigurációs fájl alapján dolgozzon.
NAT beállítása
A NAT beállításával több kliens is csatlakozhat az AP-hez úgy, hogy az internetet továbbra is egyetlen ethernet port felé továbbítjuk. Ezt a műveletet akkor is végig kell csinálni, ha csak egyedül használjuk az AP-t.
Adjuk ki a következő parancsot:
sudo nano /etc/sysctl.conf
Adjuk hozzá a következő sort a fájl végére, mentsük el.
net.ipv4.ip_forward=1
Ezzel beállítjuk, hogy minden indításkor legyen aktív az ipv4 alapú forward. Azonnali aktiváláshoz adjuk ki ezt a parancsot:
sudo sh -c „echo 1 > /proc/sys/net/ipv4/ip_forward”
Most be kell állítanunk azt a szabályt, ami alapján az ethernet (eth0) és a vezeték nélküli (wlan0) port között a kommunikáció zajlik. Ehhez az iptables nevű programot fogjuk használni:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
Ellenőrizzük, az adatokat:
sudo iptables -t nat -S
sudo iptables -S
Ez most pillanatnyilag megfelelő, ám ha ennyiben hagynánk ezt a részt, akkor következő újraindításnál ismét hozzá kellene adni a szabályokat. De persze mindenre van megoldás. Mentsük ki az iptables beállításait egy külön fájlba a következő paranccsal:
sudo sh -c „iptables-save > /etc/iptables.ipv4.nat
Majd nyissuk meg a már jól ismert hálózat interfészek beállításait tartalmazó fájlt:
sudo nano /etc/network/interfaces
És a végére írjuk oda, hogy indítás után töltse be a rendszer az iptables beállításokat az előbb kimentett fájlból. Fontos, hogy ezt a fájlt később ne töröljük!
up iptables-restore < /etc/iptables.ipv4.nat
Hostapd frissítése
Sajnos out-of-box nem fog menni még a wifi hálózat, ehhez frissíteni kell a hostapd állományt. Az Adafruit ezt is előkészítette nekünk, így csak le kell töltenünk, és használni. Aki nem szeretné, az a leírás végén találja azt a blokkot, ahol megmutatjuk, hogyan készíthetünk saját hostapd állományt.
Töltsük le az előre összeállított fájlt:
wget http://www.adafruit.com/downloads/adafruit_hostapd.zip
Csomagoljuk ki:
unzip adafruit_hostapd.zip
Mentsük le a jelenlegi hostapd -t más néven:
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
Helyezzük át a frissen letöltött fájlt az eredeti helyére, majd adjuk meg a megfelelő jogokat neki:
sudo mv hostapd /usr/sbin
sudo chmod 755 /usr/sbin/hostapd
Ezek után már tényleg nincs sok hátra, csak indítsuk el a hostapd-t, majd egy másik wifi képes eszközzel, legyen az laptop vagy mobiltelefon, ellenőrizzük, hogy felbukkant-e az új AP a listában:
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
Egy CTRL+C lenyomásával megszakíthatjuk a futtatást. Ha a teszt jó volt, és tudtunk kapcsolódni a hálózatra már csak annyi kell, hogy a Pi újraindítás után automatikusan elindítsa a szolgáltatásokat:
Indítsuk el az AP és a DHCP szerver szolgáltatásokat:
sudo service hostapd start
sudo service isc-dhcp-server start
Ha később ellenőrizni akarjuk az állapotot, csak adjuk ki a következő parancsokat:
sudo service hostapd status
sudo service isc-dhcp-server status
Állítsuk be, hogy reboot esetén automatikusan elinduljanak:
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
Monitorozás és teszt
Nézzük meg, mi is történik a háttérben. Kapcsolódjunk bármilyen számítógéppel vagy telefonnal a hálózatra, de előtte a Pi-n adjuk ki a következő parancsot:
tail -f /var/log/syslog
Ezzel a syslog állományba bekerülő új sorokat tudjuk figyelni. Amikor valaki csatlakozik a Pi-hez, ide kerül naplózásra az esemény.
Utolsó ellenőrzésképpen megnézhetjük, hogy milyen IP-t osztott ki nekünk a Pi. Ehhez adjuk ki a ifconfig (mac/linux) vagy ipconfig (windows) parancsot. Ha követted a leírást, akkor az IP címnek valahol a 192.168.42.10-50-es részben kell lennie. Ha nem, valami gond van. Még további pingelésekkel ellenőrizheted, hogy jó-e a kapcsolat, de a legegyszerűbb, ha nyitsz egy böngészőt, és beütsz egy weboldalt. Ha betöltődött, akkor összecsaphatod a tenyeredet, ugyanis a Pi-n keresztül érted el, gratulálunk!
Saját hostapd
Ahogy az előbb írtuk amikor a hostapd-t frissítettük, az Adafriuit által előkészített verziót használtuk. Ha valaki esetleg nem bízik benne, akkor gyárthat magának sajátot.
- Nyissuk meg a következő weboldalt: http://152.104.125.41/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&ProdID=27…
- Töltsük le a linux 3.4.4_4749 állományt.
- Másoljuk az SD kártyára a zip fájlt.
- Indítsuk el a Pi-t az SD kártyáról.
- sudo mv /boot/RTL819xSU_usb_linux_v2.6.6.0.20120405.zip .
- unzip RTL819xSU_usb_linux_v2.6.6.0.20120405.zip
- mv rtl8712_8188_8191_8192SU_usb_linux_v2.6.6.0.20120405/ rtl
- cd rtl
- cd wpa_supplicant_hostapd
- unzip wpa_supplicant_hostapd-0.8_rtw_20120803.zip
- cd wpa_supplicant_hostapd-0.8/
- cd hostapd
- make
- *dobjunk be egy szendvicset, lehet egy kávé is belefér*
- ha lefutott, máris ott van a hostapd bináris formában