Wstęp
W przypadku laptopa dobrym pomysłem jest użycie jakiejś aplikacji
X-Window do konfiguracji WiFi, z możliwością łatwego przełączania pomiędzy
sieciami oraz automatycznym wykrywanie podłączenia kabla
do karty Ethernet. Takie możliwości zapewnia np.
NetworkManager (korzysta z
aplikacji wpa_supplicant), przeznaczony
dla środowiska Gnome. W przypadku stacjonarnych maszyn
konfiguracja rc-skryptów powinna być wystarczająca w większości wypadków.
W naszych przykładach przedstawimy konfigurację dla sieci
bezprzewodowej działającej w trybie trybie infrastruktury
(managed), o określonym identyfikatorze SSID
i zabezpieczonej kluczem WEP oraz
WPA2-PSK (WPA2 Personal).
WEP zawiera zbyt dużo słabych punktów i jest
podatny na szybkie złamanie, dlatego o ile nie jesteśmy ograniczeni
sprzętem to należy używać właśnie WPA2.
Niektóre karty sieciowe WiFi mają dedykowane sterowniki
i ich konfiguracja nie sprawia większych kłopotów, w
pozostałych wypadkach posłużymy się sterownikami dla
systemu Microsoft Windows, uruchomionymi dzięki aplikacji
NdisWrapper. Jest to możliwe dzięki
temu, że większość sterowników jest napisana zgodnie
ze standardem NDIS. Po załadowaniu modułów,
dalsza konfiguracja interfejsu w obu przypadkach przebiega
niemal identycznie.
Sterowniki dedykowane
Do kernela w wersji 2.6.24 trafiło wiele modułów
obsługujących sterowniki kart WLAN, sterowniki rozwijane niezależnie
są dostępne w osobnych pakietach kernel-net-*
Przykładowo zainstalujemy moduł dla kart Atheros:
$ poldek -i kernel-net-madwifi-ng |
musimy załadować moduł:
Jeśli nie UDEV ładuje nam moduł kernela, to musimy dodać jego nazwę
do pliku /etc/modules lub
/etc/modprobe.conf, co zostało szczegółowo opisano w
tym dokumencie.
Teraz możemy przejść do konfiguracji interfejsu.
Sterowniki z NdisWrapperem
Instalujemy pakiety
kernel-net-ndiswrapper oraz
ndiswrapper:
$ poldek -i ndiswrapper kernel-net-ndiswrapper |
Potrzebne nam będą teraz sterowniki windowsowe naszej karty sieciowej.
Konkretnie chodzi o pliki z rozszerzeniami
*.inf oraz
*.sys. Możesz je skopiować
z dostarczonej przez producenta płytki ze sterownikami
# mkdir /lib/windrivers
# cd /lib/windrivers
# cp /media/cdrom/sciezka/do/sterownikow/sterownik.inf .
# cp /media/cdrom/sciezka/do/sterownikow/sterownik.sys . |
Musimy teraz zainstalować te sterowniki przy
użyciu NdisWrappera.
# ndiswrapper -i /lib/windrivers/sterownik.inf |
Jeśli chcemy aby stworzył się alias w pliku
/etc/modprobe.conf wykonujemy polecenie:
Sieć WEP
Domyślnie rc-skrypty do obsługi WLAN używają pakietu wireless-tools:
$ poldek -i wireless-tools |
Kiedy poradziliśmy sobie ze sterownikiem, musimy utworzyć
odpowiedni plik konfiguracji, który umieścimy w
katalogu /etc/sysconfig/interfaces/.
Nazwiemy go ifcfg-wlan0, zaś w przypadku
kart z chipsetem Atheros użyjemy nazwy ifcfg-ath0.
Przykładową treść takiego pliku zamieszczono poniżej:
DEVICE=wlan0
IPADDR=192.168.0.2/24
ONBOOT=yes
BOOTPROTO=dhcp
WLAN_ESSID=nasza_nazwa_sieci
WLAN_KEY=A638FED41027EA086ECD6825B0 |
Opcje sieci bezprzewodowej rozpoczynają się się od
przedrostka WLAN_, pozostałe parametry (w tym opcje
protokołu IP) są takie same jak dla zwykłej karty typu
Ethernet, której konfigurację szczegółowo
omówiono w tym dokumencie.
Jako urządzenie w opcji DEVICE wskazujemy nadaną przez
kernel nazwę. Kartom nadawane są zwykle nazwy wlan0, wlan1, itd.
Wyjątkiem od tej reguły są niektóre sterowniki, rozwijane
niezależnie od kernela np. ath{$NR} dla kart z układami Atheros
Communications, czy ra{$NR} dla Ralink Technology
(w kernelach do 2.6.24). To jaka nazwa została przydzielona
naszemu urządzeniu możemy odczytać z komunikatów jądra.
Poniżej przedstawione zostaną parametry sieci WLAN:
Powyższa opcja to identyfikator ESSID naszej sieci
WLAN_KEY=A638FED41027EA086ECD6825B0 |
Przy pomocy kolejnej zmiennej podajemy klucz WEP,
na przykładzie użyto klucza szesnastkowego,
aby podać klucz w postaci ASCII musimy ma jego początku
dodać: "s:"
Dodatkowo możemy ustawić szybkość interfejsu:
Tą opcję możemy ustawić również na sztywno, przez podanie
obsługiwanej wartości np.: 11MB, 24MB, 54MB.
Sieć WPA2-PSK
Opisane powyżej wireless-tools nie
potrafią używać szyfrowania WPA/WPA2, dlatego konieczny nam będzie
pakiet wpa_supplicant:
$ poldek -i wpa_supplicant |
Edytujemy plik /etc/wpa_supplicant.conf, w którym definiujemy
opcje sieci WLAN:
ap_scan=1
network={
ssid="nasza_nazwa_sieci"
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=anejdlf7323e64ekjlkbdsxhjsldjf3fda
} |
Hasło do naszej sieci w linijce psk może być jawne
lub kodowane za pomocą polecenia wpa_passphrase
Testujemy połączenie z WiFi:
# ifconfig wlan0 up
# wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -dd |
Opcja -dd włącza tryb debugowania i
jeżeli nie otrzymamy jakichś błędów, to przerywamy
działanie wpa_supplicant
skrótem ctr-c
Pozostała nam jeszcze edycja
/etc/sysconfig/interfaces/ifcfg-wlan0,
w celu wskazania, że chcemy korzystać z wpa_supplicant:
DEVICE=wlan0
IPADDR=192.168.0.2/24
ONBOOT=yes
BOOTPROTO=dhcp
WLAN_WPA=yes
WLAN_WPA_DRIVER=wext |
Restartujemy ponownie naszą sieć:
# /etc/init.d/network restart |
i nasza sieć WiFi powinna już działać.
Aktywacja i diagnostyka
Na wszelki wypadek powinniśmy się upewnić, że nasza
maszyna jest w zasięgu sieci radiowej:
Jeśli sieć jest na liście, to próbujemy podnieść
interfejs (oczywiście, jeżeli tego nie zrobiliśmy już
wcześniej):
# /etc/rc.d/init.d/network start
Ustawianie parametrów sieci....................[ ZROBIONE ]
Podnoszenie interfejsu wlan0...................[ ZROBIONE ] |
Aby sprawdzić czy wszystko jest OK możemy użyć
polecenia iwconfig, które powinno
wyświetlić coś w stylu:
# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11g ESSID:"nasza_nazwa_sieci" Nickname:"foo.com"
Mode:Managed Frequency:2.412 GHz Access Point: 8A:1C:F0:6F:43:2D
Bit Rate=300 Mb/s Sensitivity=-200 dBm
RTS thr=2346 B Fragment thr=2346 B
Encryption key:ABFA-155B-E90F-1D1C-FC34-66ED Security mode:restricted
Power Management:off
Link Quality:100/100 Signal level:-30 dBm Noise level:-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0
Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0 |
w wyświetlonych danych interfejsu odszukujemy wartość
jakości połączenia: Link Quality
Niezerowa wartość oznacza, że konfiguracja zakończyła
się sukcesem.
W przypadku użycia pakietu wpa_supplicant możemy użyć
programu wpa_cli:
wpa_cli status
Selected interface 'wlan0'
bssid=00:1e:e5:6d:62:5e
ssid=nasza_nazwa_sieci
id=0
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.0.2
|
Wartość COMPLETED parametru wpa_state oznacza prawidłowe połączenie z WiFi.
Jeżeli mamy kartę obsługującą tryb "n" może nam się
przydać polecenie iwpriv z pakietu
wireless-tools. Możemy
przełączyć wtedy kartę wifi w szybszy tryb, ponieważ
często z automatu włączony jest wolniejszy np. "g".
Uruchamiamy więc:
# iwpriv wlan0 network_type n | i
powinniśmy wykorzystywać już naszą kartę maksymalnie -
co możemy sprawdzić poleceniem:
# iwlist bitrate
lo no bit-rate information.
eth0 no bit-rate information.
wlan0 8 available bit-rates :
6 Mb/s
9 Mb/s
12 Mb/s
18 Mb/s
24 Mb/s
36 Mb/s
48 Mb/s
54 Mb/s
Current Bit Rate=270 Mb/s |
|