Uruchomienie karty radiowej WL-8303 (rtl8180)
Przetłumaczył: oress
2004-11-20 18:38:1

Spis treści:
1) Wstep
2)
Co będzie nam potrzebne?
3)
Do dzieła!
4)
Konfiguracja
5)
Przydatny soft

1) Wstęp:
Opiszę w tym artykule jak odpalić tę kartę z wieloma szczegółami, tak aby nawet bardzo początkujący mogli się z tym uporać. Posłużę się istniejącym już w sieci pewnym opisem skądś zaczerpniętym nanosząz niezbędne poprawki i dużo własnych dodatków odnośnie Debiana.
Sieciówkę tę uruchamiać będziemy pośrednio za pomocą Ndiswrapper'a. NdisWrapper jest pośrednikiem pomiędzy sterownikami dla MS Windows a jądrem Linux. Sterowniki kart sieciowych dla MS Windows korzystają z interfejsu o nazwie Ndis aby porozumieć się z systemem. NdisWrapper "tłumaczy" polecenia Ndis na polecenia odpowiedniego podsystemu w jądrze Linux. Dzięki temu możliwe jest użycie sterowników dla systemu MS Windows XP w Linuksie. Z własnych doświadczeń zauważyłem, że te same sterowniki działają lepiej w... Linuksie!!! Jestem wręcz zachwycony, różnica jest spora. Przy starcie Debiana sieć chodzi poprawnie natychmiast, pingi ładnie przechodzą, nic się nie gubi. A pod Shitem jest jak jest, trzeba conajmniej minutę odczekać po starcie systemu zanim sieć zajarzy , no i w trakcie "działania" miewa problemy, np. gubi pingi, czasem się rozłączy na 5 min średnio co 1h , itd ...

2) Co będzie nam potrzebne?
- Zimne piwo (i proszę sobie tego nie bagatelizować - bardzo pomaga!)
- Źródła jądra - zaciągamy je z www.kernel.org Ja używam 2.4.25 ale z pewnościa każde z seri 2.4.xx będzi dobre. Na 2.6 ponoć też działa, ale mi narazie się nie udało.)
- Ndiswrapper 0.9 - źródła pobieramy ze strony projektu http://ndiswrapper.sourceforge.net/) Ważne aby to była wersja 0.9 - nowszych nie udało mi się uruchomić na tym jądrze.)
- Najnowsze sterowniki do XP-ka stąd: http://www.realtek.com.tw/Są spakowane zipem.)
- Zainstalowane pakiety: wireless-tools, unzip. Oraz te niezbędne do kompilacji jądra:bzip2, make, gcc, libncurses5-dev.)

3) Do dzieła !
Nie będę dokładnie opisywał kompilacji jądra, bo nie o tym jest ten artykuł, ważne aby w jądrze znalazło się :

Network device support  --->
  Wireless LAN (non-hamradio)  --->
    [*] Wireless LAN (non-hamradio)

Ponoć ważne jest aby w jądrze NIE było w sekcji:
Procesor type and features  --->
    [ ] Symmetric multi-processing support

Nie sprawdzałem czy z wkompilowanym działa, ale na wszelki wypadek tego nie wkompilowuję bo i tak mi nie potrzebne.

*Instalujemy pakiet wireless-tools, komendą:

apt-get install wireless-tools

Dalej należy zainstalować nagłówki lub źródło jądra (pakiet o nazwie kernel-headers-wersja lub kernel-source-wersja, gdzie "wersja" to wersja twojego jądra);
* Rozpakowujemy źródła Ndiswrapper'a, przechodzimy do katalogu komendą: cd /sciezka_do_katalogu/ndiswrapper* - najlepiej ndiswrappera miec w /usr/src aby było elegancko.
* przejść na konto administratora (root) poleceniem: su
* bedąc w katalogu ndiswrapper-0.9 (zależne od wersji) zainstalować program komendą;

make install

Jeżeli instalacja zasypie Ci ekran masą błędów, sprawdź czy i gdzie zainstalowałeś nagłówki/źródła jądra i ewentualnie zedytuj plik: ndiswrapper/driver/Makefile tak by linia (prawdopodobnie 23):

KSRC := /lib/modules/$(KVER)/build 
wskazywała na zainstalowane nagłówki/źródła, np: 
KSRC := /usr/src/linux-2.4.25/ 

lub lepiej stwórz link symboliczny (z konta root), np:

ln -s /usr/src/linux-2.4.25/lib/modules/2.4.25/build

Następnie rozpakowujemy sciągniete uprzednio sterowniki do XP-ka (np. poleceniem unzip plik.zip). Potem wpisz poniższe polecenia (wszystkie z konta root) wpisując poprawną ścieżkę do pliku *.inf:

ndiswrapper -i /sciezka_do_pliku/net8180.inf

Zostaną skopiowane wszystkie niezbędne pliki do /etc/ndiswrapper i zostanie utworzony plik konfiguracyjny dla Twojej karty. Możesz potem sprawdzić poprawność instalacji komendą:

ndiswrapper -l 

Powinno wyświetlić się coś w stylu:

Installed ndis drivers: 
net8180 present

Słowo "present" jest bardzo ważne - oznacza ono, że wykryto w komputerze kartę odpowiednią do sterowników.
Jeśli będzie "net8180 NOT present" to pewnie też będzie działać, bo mi działa - to chyba jakaś ściema ;-))))

Następnym etapem jest załadowanie modułu, który będzie pośredniczył między sterownikami a jądrem:

Bedąc rootem uruchamiamy program: modconf, wybieramy kategorię modułów misc i ładujemy moduł ndiswrapper nie podając żadnych parametrów. Nie powinno być błędów. Aby sprawdzić czy urządzenie zostało wykryte i sterowniki załadowane, użyj programu wpisz polecenie iwconfig. Powinno pokazać conajmniej dwa urządzenia: lo i wlan0. Jesli nie widać urządzinia wlan0 nalezy je podnieść komendą:

ifconfig wlan0 up

I ponownie sprawdzamy czy wszystko jest OK najlepiej komendą ifconfig, u mnie skonfigurowane już interfejsy po wydaniu tej komendy wyglądają tak :

eth0      Link encap:Ethernet  HWaddr 00:30:4F:2B:0A:C5  
          inet addr:10.0.1.107  Bcast:10.255.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:368022 errors:0 dropped:0 overruns:0 frame:0
          TX packets:545379 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:26881713 (25.6 MiB)  TX bytes:748452071 (713.7 MiB)
          Interrupt:11 Base address:0x1f00 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:556 errors:0 dropped:0 overruns:0 frame:0
          TX packets:556 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:203972 (199.1 KiB)  TX bytes:203972 (199.1 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:30:4F:34:27:88  
          inet addr:10.0.0.107  Bcast:10.255.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:71521 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19006 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14155931 (13.5 MiB)  TX bytes:2005865 (1.9 MiB)
          Interrupt:5 Memory:dffffe00-dffffeff

4) Konfiguracja
Teraz należy skonfigurować kartę. Posłuży nam do tego program iwconfig. Na początku trzeba ustawić w jakim trybie ma działać nasza kart - Ad-Hoc czy Managed (w większości przypadków):

iwconfig wlan0 mode Managed

Jeżeli używasz szyfrowania, ustaw odpowiedni klucz:

iwconfig wlan0 key restricted tutaj_wpisz_klucz f

Ustaw nazwę sieci, np. moja_siec. Musi się zgadzać z nazwą przyjętą przez inne karty (Access Point do którego się łączysz):

iwconfig wlan0 essid moja_siec 

Pomoc do iwconfig (i nie tylko) uzyskasz wpisując man polecenie, np:

man iwconfig 

Teraz należy ustawić różne inne właściwości, taki jak IP, brama, maska podsieci. Robimy to wydając kolejno odpowiednie polecenia, np.:

ifconfig wlan0 up 
ifconfig wlan0 10.0.0.107 netmask 255.255.255.0 
route add default gw 10.0.0.1 

Pierwsze polecenie aktywuje urządzenie wlan0, drugie ustawia IP i maskę, a trzecie bramę (inaczej gateway).
Aby moduł ndiswrapper ładował się automatycznie przy starcie wpisz:

ndiswrapper -m 

Moduł będzie się ładował, ale pozostałe ustawienia trzeba wpisywać ręcznie po każdym restarcie. Aby sobie ułatwić życie, można stworzyć skrypt, który będzie się uruchamiał automatycznie podczas startu systemu.

Więc tworzymy sobie tekstowy plik o nazwie np.: wlanup poleceniem:

wlanup

i nadajemy mu prawa wykonywalności:

chmod a+x /sciezka_do_pliku/wlanup

Edytujemy plik wlanup i w pisujemy do niego parametry konfiguracyjne naszej karty radiowej, u mnie wygląda to tak:

ifconfig wlan0 up
iwconfig wlan0 mode Managed
iwconfig wlan0 essid default
ifconfig wlan0 10.0.0.107 netmask 255.255.255.0
route add default gw 10.0.0.1

Aby skrypt uruchamiał się przy starcie systemu dopisałem uruchomienie jego do pliku /etc/nerwork/interfaces. Może to mało eleganckie, ale ilu debianowców tyle pomysłów ;-) Ważne, że to działa. Mój plik interfaces wyglada tak:

auto lo eth0

iface lo inet loopback

iface eth0 inet static
	address 10.0.1.107
	netmask 255.255.255.0
        up /usr/local/skrypty/wlanup 

Linia : "up /usr/local/skrypty/wlanup" powyższego pliku powoduje że po skonfigurowaniu interfejsu eth0 zostanie uruchomiony skrypt wlanup umieszczony w katalogu /usr/local/skrypty/ , w którym jest zapisana konfiguracja interfejsu wlan0, a co za tym idzie zostanie skonfigurowana i uruchomiona karta radiowa. Jeśli nie posiadamy w systemie innego interfejsu oprócz wlan0 to wpis up /sciezka_do_skryptu/wlanup możan dopisać poniżej lini "iface lo inet" czyli po skonfigurowaniu interfejsu zwrotnego loopback.

5) Przydatny soft.
To co oferują nam pakiety Debiana sprawdzamy komendą:

apt-cache search wireless

Myślę, że każdy wybierze coś dla siebie.

Użytkownikom środowiska graficznego WindowMaker polecam zainstalować pakiety:

wmwave - to dolująca aplikacja pokazująca :
- jakość połączenia obrazuąc kolorem świecącej diody, od zielonego(b.dobra) poprzez żółty,pomarańczowy do czerwonego (zła);
- poziom sygnału LINK na graficznej linijce
- poziom sygnału szumów na graficznej linijce

wmnd - dokujący monitor interfejsów sieciowych

Dla tych co siedzą na Fluxboksie i podobnych jest wtyczka o nazwie "gkrellmwireless" do monitora systemowego "gkrellm"

przygotowany przez: oress