Valószínűleg többen simán le fognak hülyézni, hogy a nagyon kényelmes, jól kezelhető és grafikus Network Manager helyett én már megint szkripteztem. Ennek az az oka, hogy sok időt töltöttem el fekete hátterű konzolok előtt, és még mindig jobban kézreáll a parancssor, ráadásul élvezettel tölt el egy-egy újabb szkriptecske létrehozása.
Nem mértem, hogy a gép fogyasztása vagy a boot idő kevesebb lett volna-e a saját szkripttel, ez nem is érdekelt különösebben, de nem hiszem hogy mérhető különbség lenne. Fogjuk fel különcségnek az alábbiakat.
A lényeg tehát, hogy WPA2 titkosítás van itthon, a wpa_supplicant nevű csomagot kell beizzítani hozzá, és be kell konfigurálni a /etc/wpa_supplicant.conf-ban:
ctrl_interface=/var/run/wpa_supplicant
Mint látható, ahány hálózat van, mindegyiknél meg kell adni az SSID-t (a hálózat nevét), és a jelszót. A prioritás sorrendjében halad, illetve ha nem tud felcsatlakozni az elsőhöz, megy a következőre stb.
eapol_version=1
ap_scan=1
fast_reauth=1
bss_max_count=100
network={
ssid="Linksys"
psk="titkos"
priority=2
}
network={
ssid="D-Link"
psk="titkos2"
priority=2
}
Jogos észrevétel, hogy ha olyan wifi hálózatra kell csatlakoznom, amelyet nem ismerek előre, akkor nem tudom előre meghatározni a fenti fájl tartalmát. Aki sokat rohangál és mindenfelé felcsatlakozik, az tegye fel a Network Managert.
Az alábbi szkript izzítja a hálózatot, /etc/rc.d/wifi néven fut, és persze a /etc/rc.conf-ba be kell írni a futtatandó szolgáltatások közé azt is, hogy @wifi.
#!/bin/bash
Állj, állj... mi ez az until...do rész már megint?
ip link set wlan0 up
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
E=0
until [ $E == 5 ]; do
dhcpcd wlan0
if [ $? != 0 ]; then
let E $((E++))
W=$((E*10))
echo "Waiting for $W seconds..."
sleep $W
else
exit 0
fi
done
Nos, menjünk talán sorban:
- Az "ip link..." sor felhúzza up-ba logikailag a wlan0 interfészt, vagyis az én vezeték nélküli hálózati interfészemet
- A "wpa_supplicant..."-es sor meghívja a WPA segéderőt, "aki" elintézi az Access Pointhoz való csatlakozást, azonosítással egyetemben
- Itt egy kis ciklus következik, mert nekem nem túl gyors a DHCP, néha nem sikerült elsőre IP-t kapnom, ami bosszantó volt, hiszen a grafikus felület közben elindul és még csak nem is láttam, hogy probléma van, utána parancssor, bogarászás stb. Meguntam. Ez a kis ciklus kér egy IP-t, ha ez sikertelen, akkor egyre többet (10,20,30,40,50 másodpercet) vár, és újra próbálkozik.
Ha igazán paranoid lennék, az egészet betenném még egy ciklusba, és mondjuk 5 percenként néznék egy ping-et egy jól ismert címre, és ha az sikertelen, akkor ismét megpróbálom a csatlakozást. De ez egy laptop, nem fogom a drága akssiidőt ilyenekkel tölteni... ha nincs hálózat boot-kor, később majd futtatom a szkriptet kézzel. :)
Hát, ennyi. Nem nagy dolgok, de ezzel (is) töltöttem az Arch installt követő időszakot. Egy démonnal (a NetworkManager-rel) kevesebb fut nálam, ez is valami.