Při hledání levného USB Wi-fi dongle pro mé Raspberry Pi jsem na fórech narazil na adaptér od firmy ZyXEL, NWD2105. Je dostupný (kupoval jsem u našeho lokálního dodavatele, ale je k mání i na Alze a jiných eshopech), za velmi dobrou cenu cca 250 Kč (bez DPH) a hlavně funguje s raspi bez nutnosti použití externího USB hubu pro napájení. S tím trošku souvisí jeho nižší citlivost oproti jiným podobným zařízením, nicméně na můj projekt je naprosto dostačující. Původně jsem jej konfiguroval na starší upravené verzi Raspbianu (Occidentalis v0.2), ale pro účely tohoto článku jsem stáhl poslední stabilní Raspbian wheezy (2012-12-16-wheezy-raspbian) a zjistil, že konfigurace je oproti mým původním peripetiím s upgradem modulů kernelu a nepříjemnou konfigurací v této nové verzi OS pro Raspberry daleko jednodužší, proto si popíšeme tuto, přičemž budeme předpokládat, že konfigurujume pomocí příkazové řádky (CLI), tedy prostředictvím SSH nebo přímo z textové konzole. Konfigurace prostřednicvím GUI je u toho zařízení ještě jednodušší, použijete aplikaci, která je na defaultní ploše Raspianu pojmenována Wifi Config
Tato aplikace umožňuje graficky provádět prakticky to samé co budeme dělat v tomto návodu ručně, tj. zobrazí viditelné sítě a pozmění příslušný konfigurační soubor.
Při zasunutí dongle do Raspberry Pi lze nechat systém pomocí příkazu sudo lsusb
vypsat jaká všechna USB zařízení vidí.
$ sudo lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 005: ID 0586:341e ZyXEL Communications Corp. NWD2105 802.11bgn Wireless Adapter [Ralink RT3070]
To se hodí při řešení problémů s detekcí zažízení systémem, hledání vhodného modulu pro kernel atp.. Poslední řádek ukazuje na přítomnost zasunutého wi-fi adaptéru NWD2105. Po zjištění, že systém zařízení nějak detekoval lze ještě pomocí sudo ifconfig
zjistit, zda se adaptér objevil v systému i jako síťové rozhraní:
$sudo ifconfig [ ... ] wlan0 Link encap:Ethernet HWadr b0:b2:dc:60:3b:48 AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ MULTICAST MTU:1500 Metrika:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 kolizí:0 délka odchozí fronty:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
V případě toho adaptéru nenastal žádný problém a objevilo se síťové rozhraní wlan0
. V případě, že se žádné nové síťové rozhraní neobjeví, je pravděpodobné, že nastal nějaký problém na úrovni ovladače (modulu kernelu) a pak nastává hledání řešení, ale u toho konkrétního zařízení můžeme přistopit k dalšímu kroku. Ověříme zda zařízení opravdu dokáže detekovat wi-fi provoz v okolí, tj. zda vidí nějaké přítomné bezdrátové sítě. Příkazem sudo iwlist wlan0 scan
aktivujeme detekci (scan) síťí v okolí a výstupem je podrobný výpis se všemi možnými a nemožnými parametry těchto sítí (důležité pro další nastavení jsou identifikace sítě (ESSID) a podporované druhy autentizace):
$ sudo iwlist wlan0 scan wlan0 Scan completed : Cell 01 - Address: 88:7F:7C:3D:31:1D Channel:3 Frequency:2.422 GHz (Channel 3) Quality=70/70 Signal level=-27 dBm Encryption key:on ESSID:"BlueSky" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=000000aaaa6306a1 Extra: Last beacon: 1210ms ago IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK Cell 02 - Address: 00:26:CB:C6:6E:43 Channel:3 Frequency:2.422 GHz (Channel 3) Quality=45/70 Signal level=-65 dBm Encryption key:on ESSID:"PracovniSit" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=000000addabf9922 Extra: Last beacon: 1210ms ago IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK
Z výpisu je vidět, že v dosahu jsou dvě sítě, jedna s označením BlueSky a druhá označená PracovniSit. Protože známe přístupová hesla k síti PracovniSit můžeme nakonfigurovat připojení na úrovni bezdrátové sítě. Připojení k bezdrátové síti se nakonfiguruje v souboru /etc/wpa_supplicant/wpa_supplicant.conf
, do kterého je třeba přidat řádky s konfigurací připojení k některé z viditelných sítí. V následujícím přikladu jsou nakonfigurovány dvě sítě mojewifi a PracovniSit.
network={ ssid="mojewifi" key_mgmt=WPA-PSK psk="heslo" } network={ ssid="PracovniSit" key_mgmt=WPA-PSK psk="Heslo hello hes!" }
V souboru můžeme nakonfigurovat připojení k několika sítím a dokonce může jít o sítě z různým druhem autentizace, systém se pokouší k sítím připojit v pořadí uvedeném v souboru. O dalších parametrech pro jiné nastavení vaší sítě se můžete dočíst například zde.
Když systém restartujeme tak pomocí příkazu sudo iwconfig wlan0
můžeme zjistit kvalitu a druh bezdrátového připojení:
$sudo iwconfig wlan0 wlan0 IEEE 802.11bgn ESSID:"PracovniSit" Mode:Managed Frequency:2.472 GHz Access Point: 00:26:CB:C6:6E:43 Bit Rate=1 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on Link Quality=45/70 Signal level=-65 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:1 Invalid misc:4 Missed beacon:0
Použijeme-li nyní znovu příkaz ifconfig
, tak za předpokladu, že nám IP adresu přiřazuje DHCP server bychom mohli vidět funkční síťové zařízení s nakonfigurovanou IP adresou.
$sudo ifconfig [ ... ] wlan0 Link encap:Ethernet HWadr b0:b2:dc:60:3b:48 inet adr:10.20.30.100 Všesměr:10.20.30.255 Maska:255.255.255.0 AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST MTU:1500 Metrika:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 kolizí:0 délka odchozí fronty:1000 RX bytes:1256 (1.2 KiB) TX bytes:1012 (1012.0 B)