System Windows posiada dość dobrze wydzieloną warstwę odpowiedzialną za komunikację z urządzeniami sieciowymi, obsługiwaną przez API o nazwie Network Driver Interface Specification (NDIS). Możliwa jest emulacja tej warstwy pod Linuksem, dzięki czemu można uruchamiać niektóre urządzenia, korzystając ze sterowników przeznaczonych dla systemu Windows. Istnieje kilka projektów w ramach których powstaje oprogramowanie do emulacji NDIS, jednym z nich jest ndiswrapper. Ten rozdział opisuje konfigurację kart bezprzewodowych z wykorzystaniem ndiswrappera, opisany sposób został przetestowany z kartami na chipsecie Realtek 8180 (uwaga - na niektórych komputerach karta nie działała, na innych ruszyła) oraz z kartą D-Link DWL-520+ (chipset Texas Instruments ACX 100, identyfikator PCI 104c:8400).
Notatka: Karty na chipsecie TI ACX100, w tym D-Link DWL-520+ działają także na sterownikach tworzonych w ramach projektu acx100.sf.net.
Pierwszym elementem jest ściągnięcie ndiswrappera - narzędzia i modułu odpowiedniego dla używanego jądra. Warto także skorzystać z jak najnowszego jądra (zbyt stare nie będą wspierane przez ndiswrappera lub sprzęt może nie działać).
W przypadku Debiana należy upewnić się, że mamy pakiet z nagłówkami dla używanego jądra, a następnie ściągnąć narzędzia i źródła do modułów:
# apt-get install ndiswrapper-utils ndiswrapper-source wireless-toolsŚciągniętych zapewne zostanie kilka dodatkowych pakietów, w tym module-assistant.
Kolejnym krokiem jest zbudowanie modułów, co wykonujemy komendą:
# module-assistant auto-install ndiswrapperPo kompilacji powinniśmy otrzymać automatycznie zainstalowane moduły dla aktualnie używanej wersji jądra.
Kolejnym krokiem jest ustalenie z jakim urządzeniem mamy do czynienia (lspci i lspci -n), oraz sprawdzenie na liście kart, jakiego drivera powinniśmy użyć, oraz skąd go ściągnąć. Zwykle dobre efekty uzyskamy korzystając ze sterowników umieszczonych na płycie dołączonej do karty - mamy przynajmniej pewność, że sterowniki będą pasować do zakupionej wersji karty. Jeżeli do wyboru są sterowniki dla różnych wersji Windows, warto wypróbować te dla Windows XP, 2000 lub NT (najlepiej w tej kolejności). Sterowniki mogą mieć postać archiwum zip (możemy wtedy użyć do rozpakowania programu unzip), czasami jednak są dostarczane w postaci pliku wykonywalnego. Jeżeli próba użycia na tym pliku narzędzi do rozpakowywania archiwów zip zawiedzie, możemy być zmuszeni do uruchomienia programu pod Windows, aby wydobyć interesujące nas pliki.
Te interesujące nas pliki to plik z rozszerzeniem INF (zawiera między innymi listę właściwych plików ze sterownikiem) oraz pliki z samym sterownikiem, zwykle o rozszerzeniach SYS, BIN lub DAT. Wszystkie te pliki powinniśmy umieścić w jednym katalogu, po czym wywołać komendę instalacji sterownika, podając jako argument plik INF, np.
# ndiswrapper -i RTL8180.INFMożemy teraz sprawdzić czy sterownik zainstalował się poprawnie:
# ndiswrapper -l Installed ndis drivers: net8180 driver present, hardware present #Powinniśmy otrzymać informację, jak powyżej, o obecności zarówno sterownika, jak i obsługiwanego sprzętu.
Następny krok to załadowanie modułu:
# modprobe ndiswrapperW logach sprawdzamy czy wszystko poszło poprawnie:
# tail /var/log/kern.log Mar 22 12:04:50 btw7 kernel: ndiswrapper version 1.0rc2 loaded (preempt=yes,smp=no) Mar 22 12:04:50 btw7 kernel: PCI: Found IRQ 9 for device 0000:00:05.0 Mar 22 12:04:50 btw7 kernel: ndiswrapper: using irq 9 Mar 22 12:04:50 btw7 kernel: wlan0: ndiswrapper ethernet device 00:50:fc:d1:05:a4 \ using driver net8180 Mar 22 12:04:50 btw7 kernel: wlan0: encryption modes supported: WEP, WPA with TKIP,\ WPA with AES/CCMP Mar 22 12:04:50 btw7 kernel: ndiswrapper: driver net8180 (Realtek,10/07/2004, \ 5.173.1007.2004) addedPrzykładowe komunikaty donoszą o pomyślnym wykryciu i zainstalowaniu sterownika dla karty. Jeżeli na tym etapie napotkamy problemy, to mogą być spowodowane złą wersją sterowników (niedostosowaną do sprzętu), za starą wersją jądra lub po prostu oznaczać, że karta nie chce pracować pod kontrolą ndiswrappera. Jeżeli zaś wszystko wydaje się OK, to należy zapewnić, że moduł ndiswrapper będzie ładowany przy starcie systemu (w Debianie umieszczamy nazwę modułu w pliku /etc/modules).
Ostatni krok to konfiguracja interfejsu sieciowego (zwykle wlan0). Dokonujemy tego standardowo za pomocą narzędzi ifconfig i iwconfig lub w sposób specyficzny dla danej dystrybucji, np. w Debianie umieszczając w pliku /etc/network/interfaces następujące linie:
auto wlan0 iface wlan0 inet static address 192.168.3.47 netmask 255.255.255.0 broadcast 192.168.3.255 gateway 192.168.3.1 wireless-essid IDENTYFIKATOR_SIECI wireless-mode Managed wireless-key restricted KLUCZ_WEPPo podaniu komendy ifup wlan0 powinniśmy mieć działającą sieć bezprzewodową. Sprawdzamy to za pomocą polecenia iwconfig, które powinno wyświetlić informacje w stylu:
wlan0 IEEE 802.11b ESSID:"IDENTYFIKATOR SIECI" Mode:Managed Frequency:2.412 GHz Access Point: 00:06:25:BC:88:3B Bit Rate:11 Mb/s Tx-Power:20 dBm Sensitivity=0/3 RTS thr:2432 B Fragment thr:2432 B Encryption key:off Power Management:off Link Quality:100/100 Signal level:-53 dBm Noise level:-256 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0Uwaga - interfejs może nie być prawidłowo skonfigurowany dopóki nie znajdzie się w zasięgu punktu dostępowego.
Poprzedni | Spis treści | Następny |
Instalacja kart WLAN opartych na chipsecie Atheros Communications AR5212 | Początek rozdziału | Tworzenie połączeń sieciowych w oparciu o protokoły point-to-point |