Changelog:
v1.3.1 - 06.05.2004
- udalo sie odpalic karte pod 2.6.5 na ndiswrapperze
v1.3 - 17.04.2004
- Ndiswrapper, parę poprawek w tekscie (ehh, do opisu wkradl sie powazny blad, pomylilem sie przy dodawaniu sterownika windowsowego, blad dotyczyl komendy ndiswrapper -i)
v1.2.1 - 12.12.2003
- na końcu strony dodałem swoje gg ;P
v1.2 - 12.11.2003
- nowa metoda odpalania karty za pomocą DriverLoadera (stery dla Windows XP, pod Linuxem :) ), punkt 1, 5
- drobne zmiany odnośnie pojawienia się nowych sterowników v1.4, punkt 2.3, 2.5
v1.1 - 02.11.2003
- poprawki w punkcie 4, odnośnie problemów z połączeniem
- parę małych korekt treści
v1.0 - 11.09.2003
- kompletna przebudowa tekstu, sterowniki 1.3
v0.9 - 24.08.2003
- pierwsza wersja dokumentu, opis dla sterowników w wersji 1.2, 0.5
1. WSTĘP
Realtek udostępnił w połowie binarne sterowniki dla Linux. Pod tym adresem
znajdują się prekompilowane wersje modułów (v1.4 04.11.2003), które na
100% powinny chodzić w systemach: RedHat 7.1-3, 8.0, 9.0, SuSE 8.2,
Aurox 8.0, 9.0, 9.1, a także pod innymi dystrybucjami gdzie mamy jajo
2.4.x z gcc 2.96 lub gcc 3.xx, ale jest to tylko teoria ;]
Na płycie instalacyjnej można znaleźć przekompilowane moduły dla RedHat
7.x, ale nie polecam ich odpalać, najlepiej jest przekompilować to co
jest najświeższe ze strony producenta.
Druga metoda instalacji, dość mało konwencjonalna, to zastosowanie DriverLoadera,
który od niedawna umożliwia odpalanie niektórych sterowników
przeznaczonych dla Windowsa, pod Linuxem. Niestety za prostotę używania
i w tym wypadku, lepszą obsługę sprzętu, a niżeli przeznaczonych dla
tej karty sterowników dla Linuxa, trzeba zapłacić (około 20$, dla
zainteresowanych dostępny jest także FreeTrial na 30 dni).
Więcej o DriverLoaderze można poczytać w archiwum LinuxNews i na stronie producenta DriverLoader.
Konkurentem DriverLoadera powoli staje się projekt wolnych źródeł
Ndiswrapper,
działający na tych samych zasadach, ale za free.
Powoli dodawane
są nowe urządzenia na listę obsługiwanego sprzętu
http://ndiswrapper.sourceforge.net/supported_chipsets.html.
Od
niedawna można na niej znaleźć chipset Realteka rtl8180l (dość
popularny wśród lokalnych providerów internetowych).
2. INSTALACJA (RedHat, Aurox, SuSE)
2.1. Co będzie potrzebne ?
Do samej kompilacji na pewno potrzebne będą, kernel-source i gcc,
konfigurację karty zapewni nam pakiet wireless-tools, przyda się także
unzip, ponieważ sterowniki spakowane są zipem :). Wszystko można
znaleźć na płytach instalacyjnych, bądź w Internecie http://rpm.pbone.net/.
Najlepiej od razu zainstalować system, zaznaczając w pewnym momencie,
zbiór paczek Kernel Developers i narzędzi programistycznych, inaczej
trzeba się męczyć z ręcznym dogrywaniem rpm'ów, co nie jest wygodne w
tych systemach.
Dla przykładu ręczna instalacja paczek wygląda tak:
# rpm -i wireless-tools-*
# cd /opt # wget "ftp://210.51.181.211/cn/wlan/rtl8180l/rtl8180_linuxdrv_v13(gcc3.xx).zip" # unzip rtl8180_linuxdrv_v13(gcc3.xx).zip # cd /opt/releaseTeraz potrzebny będzie dokładny numerek jaja dystrybucyjnego. Można go znaleźć w katalogach /usr/src lub /lib/modules.
#----------------------------------------------- #Specify kernel version and include path #----------------------------------------------- KERNELRELEASE=2.4.20-8 INCLUDEPATH=-I /usr/src/linux-$(KERNELRELEASE)/include/Ostatnia linijka oznacza, że numerek jaki podamy w zmiennej KERNELRELEASE jest częścią nazwy katalogu źródeł, zainstalowanego w naszym systemie jaja.
# make gcc -O6 -Wall -DMODULE -D__KERNEL__ -DLINUX -I /usr/src/linux-2.4.20-9/include/ -DRTL_IO_MAP -DRTL_LITTLE_ENDIAN -DRTL_ACT_AS_STA -c -o r8180_pci_init.o r8180_pci_init.c gcc -O6 -Wall -DMODULE -D__KERNEL__ -DLINUX -I /usr/src/linux-2.4.20-9/include/ -DRTL_IO_MAP -DRTL_LITTLE_ENDIAN -DRTL_ACT_AS_STA -c -o r8180_if.o r8180_if.c --- Generate open part open_part.o --- --- Generate rtl8180 linux driver rtl8180_24x.o on 2.4.20-xfs-r3 ---Tak mniej, więcej powinno się to zakończyć :)
#!/bin/bash insmod -q -f rtl8180_24x.o iwpriv wlan0 wlan_para ssid2scan=SSID iwpriv wlan0 wlan_para networktype=infra iwpriv wlan0 msglevel 1 #wiecej informacji od kernela w logach ( tylko stery v1.4 ) iwpriv wlan0 enable ifconfig wlan0 ADRES_IP netmask MASKA route add default gw BRAMAParametry SSID, ADRES_IP, MASKA, BRAMA nadawane są przez providera.
nameserver 194.204.159.1 nameserver 194.204.152.34
# ./wlanup Warning: loading rtl8180_24x.o will taint the kernel: forced load See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module rtl8180_24x loaded, with warningsPowyższym komunikatem proszę się nie przejmować, jeśli się pojawi lub w ogóle się nie pojawi, oznacza że moduł jest załadowany z małym ostrzeżeniem.
Sep 11 17:08:24 xlog kernel: ******** RTL8180 Wireless Lan Driver 2003-06-11 loaded******** Sep 11 17:08:24 xlog kernel: PCI: Found IRQ 11 for device 02:02.0 Sep 11 17:08:24 xlog kernel: RTL8180: 02:02.0: region #0 IS a PIO resource! Sep 11 17:08:24 xlog kernel: RTL8180: request_region(0x0000c000,0x00000100) ! Sep 11 17:08:24 xlog kernel: RTL8180: STA is NOT acting as AP! Sep 11 17:08:24 xlog kernel: RTL8180: LITTLE_ENDIAN memory access Sep 11 17:08:24 xlog kernel: RTL8180: station mode eeprom info Sep 11 17:08:24 xlog kernel: RTL8180: EEpromAddressSize = 6! Sep 11 17:08:24 xlog kernel: RTL8180: eepromID = 0x8129 Sep 11 17:08:24 xlog kernel: RTL8180: EEPROMVersion = 0x0102 Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 0 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 1 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 2 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 3 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 4 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 5 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 6 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 7 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 8 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 9 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 10 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 11 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 12 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: Tx Power Level, channel 13 = 0xdd Sep 11 17:08:24 xlog kernel: RTL8180: ChannelPlan = 0x0002 Sep 11 17:08:24 xlog kernel: RTL8180: RFChipID = 0x0003 Sep 11 17:08:24 xlog kernel: RTL8180: EEPROMVersion > 0x0101 Sep 11 17:08:24 xlog kernel: RTL8180: AntennaDiversity = FALSE Sep 11 17:08:24 xlog kernel: RTL8180: CSThreshold = 0x000b Sep 11 17:08:24 xlog kernel: RTL8180: DigitalPhy = FALSE Sep 11 17:08:24 xlog kernel: RTL8180: DefaultAntennaB = TRUE Sep 11 17:08:24 xlog kernel: RTL8180: CSMethod = RCR_EnCS1 Sep 11 17:08:24 xlog kernel: RTL8180: wlan driver loaded. ioaddr=0xc000, irq=11, MAC_addr=0:50:fc:d0:90:e4 Sep 11 17:08:24 xlog kernel: RTL8180: Use RTL private command [channel] Sep 11 17:08:24 xlog kernel: RTL8180: Use RTL private command [ssid] Sep 11 17:08:24 xlog kernel: RTL8180: Use RTL private command [ssid2scan] Sep 11 17:08:24 xlog kernel: RTL8180: Use RTL private command [networktype] Sep 11 17:08:24 xlog kernel: RTL8180: ------ Enable wlan driver ------ Sep 11 17:08:24 xlog kernel: RTL8180: WLAN driver version 1.3 Sep 11 17:08:24 xlog kernel: RTL8180: wireless LAN controller RTL8180 + philips RF. Sep 11 17:08:24 xlog kernel: RTL8180: PHILIPS_Config() Sep 11 17:08:24 xlog kernel: RTL8180: PHILIPS_Config() - Analog mode Sep 11 17:08:25 xlog kernel: RTL8180: ENABLE_RTL_DCST Sep 11 17:08:25 xlog kernel: RTL8180: Set dot11PrivacyInvoked = 0. Sep 11 17:08:25 xlog kernel: RTL8180: encryptmode = RTL_ENC_NONE Sep 11 17:08:25 xlog kernel: RTL8180: wepkeymode = WEP_MODE_OFF Sep 11 17:08:26 xlog kernel: RTL8180: Select a BSS and Join it NR_KANAŁU Sep 11 17:08:26 xlog kernel: RTL8180: ---------------------------------------------------------- Sep 11 17:08:26 xlog kernel: RTL8180: wlan0 Link status: Sep 11 17:08:26 xlog kernel: RTL8180: Channel number = NR_KANAŁU Sep 11 17:08:26 xlog kernel: RTL8180: beacon period = 100 Sep 11 17:08:26 xlog kernel: RTL8180: BSSID = 0x00:0x30:0x1a:0x09:0x3c:0x1d Sep 11 17:08:26 xlog kernel: RTL8180: SSID = SSID Sep 11 17:08:26 xlog kernel: RTL8180: Capability = 0x01 Sep 11 17:08:26 xlog kernel: RTL8180: AID = 0x51 Sep 11 17:08:26 xlog kernel: RTL8180: Operational rate = 0x0FOstatnie 11 linijek oznaczają, wejście karty na określony kanał i przyjęcie nadanych wyżej parametrów. Gdy tak się nie stanie, trzeba dokładnie sprawdzić wpisane w skrypcie wartości. Więcej o problemach w punkcie 4.Sep 11 17:08:26 xlog kernel: RTL8180: ----------------------------------------------------------
# cat /proc/rtl8180/status
---------------------------------------
Driver status
---------------------------------------
rtl8180_pci_driver version 1.4 loaded.
The Network is configured as Infrastructure mode.
MacAddr = 00:50:fc:d0:90:e4
ioaddr = 0xac00
irq = 22
---------------------------------------
Wireless Link status
---------------------------------------
Link Success!
Channel number = 1
beacon period = 100
BSSID = 0x00 0x30 0x1a 0x09 0x37 0xb1
SSID = KOM11_2
Capability = 0x01
AID = 0x7f
Operational rates = <1><2><5.5><11>Mbps
Current TX operational rates = <11>Mbps
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 00:50:FC:D0:90:E4
inet addr:80.51.130.254 Bcast:80.255.255.255 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:709 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:350302 (342.0 Kb) TX bytes:0 (0.0 b)
Interrupt:11 Base address:0xc000
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface ADRES_SIECI 0.0.0.0 MASKA U 0 0 0 wlan0 127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo 0.0.0.0 BRAMA 0.0.0.0 UG 0 0 0 wlan0Z wyglądu, wszystko jest OK :), teraz czas na test praktyczny:
# ping onet.pl PING onet.pl (213.180.130.200) 56(84) bytes of data. 64 bytes from f1virt.onet.pl (213.180.130.200): icmp_seq=2 ttl=247 time=58.4 ms 64 bytes from f1virt.onet.pl (213.180.130.200): icmp_seq=3 ttl=247 time=19.6 ms 64 bytes from f1virt.onet.pl (213.180.130.200): icmp_seq=4 ttl=247 time=33.7 ms 64 bytes from f1virt.onet.pl (213.180.130.200): icmp_seq=5 ttl=247 time=32.6 ms 64 bytes from f1virt.onet.pl (213.180.130.200): icmp_seq=6 ttl=247 time=28.0 msNo i się udało :)
source = 2.4.20,noauto ftp://ep09.kernel.pl/pub/People/cieciwa/Ra-2.4.20-9.i686_gcc2/Po czym wykonujemy komendy:
# poldek --up # poldek -n 2.4.20 --upgrade-distTeraz można zainstalować źródła wcześniej ściągniętego kernela i skompilować jajo (pamiętając o statycznym dodaniu używanego systemu plików i sterownika dysku twardego).
Oct 30 16:40:24 xhost kernel: ******** RTL8180 Wireless Lan Driver 2003-06-11 loaded******** Oct 30 16:40:24 xhost kernel: RTL8180: 02:06.0: region #0 IS a PIO resource! Oct 30 16:40:24 xhost kernel: RTL8180: request_region(0x0000ac00,0x00000100) ! Oct 30 16:40:24 xhost kernel: RTL8180: STA is NOT acting as AP! Oct 30 16:40:24 xhost kernel: RTL8180: LITTLE_ENDIAN memory access Oct 30 16:40:24 xhost kernel: RTL8180: station mode eeprom info Oct 30 16:40:24 xhost kernel: RTL8180: EEpromAddressSize = 6! Oct 30 16:40:24 xhost kernel: RTL8180: eepromID = 0x8129 Oct 30 16:40:24 xhost kernel: RTL8180: EEPROMVersion = 0x0102 Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 0 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 1 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 2 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 3 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 4 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 5 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 6 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 7 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 8 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 9 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 10 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 11 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 12 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: Tx Power Level, channel 13 = 0xdd Oct 30 16:40:24 xhost kernel: RTL8180: ChannelPlan = 0x0002 Oct 30 16:40:24 xhost kernel: RTL8180: RFChipID = 0x0003 Oct 30 16:40:24 xhost kernel: RTL8180: EEPROMVersion > 0x0101 Oct 30 16:40:24 xhost kernel: RTL8180: AntennaDiversity = FALSE Oct 30 16:40:24 xhost kernel: RTL8180: CSThreshold = 0x000b Oct 30 16:40:24 xhost kernel: RTL8180: DigitalPhy = FALSE Oct 30 16:40:24 xhost kernel: RTL8180: DefaultAntennaB = TRUE Oct 30 16:40:24 xhost kernel: RTL8180: CSMethod = RCR_EnCS1 Oct 30 16:40:24 xhost kernel: RTL8180: wlan driver loaded. ioaddr=0xac00, irq=22, MAC_addr=0:50:fc:d0:90:e4 Oct 30 16:40:24 xhost kernel: RTL8180: Use RTL private command [channel] Oct 30 16:40:24 xhost kernel: RTL8180: Use RTL private command [networktype] Oct 30 16:40:24 xhost kernel: RTL8180: Use RTL private command [ssid] Oct 30 16:40:24 xhost kernel: RTL8180: Use RTL private command [ssid2scan] Oct 30 16:40:24 xhost kernel: RTL8180: ------ Enable wlan driver ------ Oct 30 16:40:24 xhost kernel: RTL8180: WLAN driver version 1.3 Oct 30 16:40:24 xhost kernel: RTL8180: wireless LAN controller RTL8180 + philips RF. Oct 30 16:40:24 xhost kernel: RTL8180: PHILIPS_Config() Oct 30 16:40:24 xhost kernel: RTL8180: PHILIPS_Config() - Analog mode Oct 30 16:40:25 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x00, data = 0x98, ReadData = 0xd1 Oct 30 16:40:25 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x03, data = 0x38, ReadData = 0xd1 Oct 30 16:40:26 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x04, data = 0xe0, ReadData = 0xd1 Oct 30 16:40:26 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x05, data = 0x90, ReadData = 0xd1 Oct 30 16:40:26 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x06, data = 0x1a, ReadData = 0xd1 Oct 30 16:40:27 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x07, data = 0x64, ReadData = 0xd1 Oct 30 16:40:27 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x11, data = 0x80, ReadData = 0xd1 Oct 30 16:40:28 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x12, data = 0x47, ReadData = 0xd1 Oct 30 16:40:28 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x13, data = 0x9b, ReadData = 0xd1 Oct 30 16:40:29 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x19, data = 0x00, ReadData = 0xd1 Oct 30 16:40:29 xhost kernel: RTL8180: BB Reg Write Fails! offset = 0x1a, data = 0xa0, ReadData = 0xd1 Oct 30 16:40:29 xhost kernel: RTL8180: ENABLE_RTL_DCST Oct 30 16:40:29 xhost kernel: RTL8180: Set dot11PrivacyInvoked = 0. Oct 30 16:40:29 xhost kernel: RTL8180: encryptmode = RTL_ENC_NONE Oct 30 16:40:29 xhost kernel: RTL8180: wepkeymode = WEP_MODE_OFF Oct 30 16:40:34 xhost kernel: RTL8180: TX NORMAL Descriptor unavailable! Oct 30 16:40:46 xhost last message repeated 144 times
# tar -xzf driverloader-{wersja}.tar.gz
# cd cd driverloader-{wersja}
# make install
# dldrconfig
Po kompilacji modułu, przechodzimy do interfejsu konfiguracyjnego, http://127.0.0.1:18020/, podajemy login i hasło dla roota. Ściągamy sterowniki dla Windowsa XP ze strony Realteka i rozpakowujemy je.
# unzip winxp-8180\(154\).zipPo czym, w interfejsie konfiguracyjny podajemy lokalizację (Upload Windows Driver) dwóch plików (inf i sys) z katalogu windowsowych sterowników. Następnie wchodzimy w Settings, podajemy swój e-mail, nr. licencji, w Advanced, parametry dla Channel i SSID.
alias eth1 driverloaderŁadujemy moduł do pamięci, sprawdzając wcześniej czy czasem go tam nie ma, za pomocą komendy "lsmod".
modprobe driverloaderGdy wszystko będzie ok, w logach powinno sie pojawić cos takiego:
eth1: Realtek RTL8180 Wireless LAN (Mini-)PCI NIC at 02:06.0 (MAC address 00:50:FC:D0:90:E4) ready eth1: New link status: Connected (0001)Wystarczy teraz, tylko skonfigurować interfejs eth1. W dystrybucjach opartych na rc-scripts (RedHat, Mandrake, Aurox), tworzymy odpowiedni pliczek ifcfg-eth1 w /etc/sysconfig/interfaces/. Ale możemy także ustawić całość ręcznie:
ifconfig wlan0 ADRES_IP netmask MASKA route add default gw BRAMAPoprawność instalacji można sprawdzić w następujący sposób:
# dldrconfig --info
Linuxant DriverLoader for Wireless LAN devices, version 1.38
Current parameters: ("dldrconfig --info")
Wireless interface name: eth1
MAC address : 00:50:FC:D0:90:E4
Device instance: PCI-0000:02:06.0-10ec:8180-10ec:8180
Device driver : net8180
License owner : xxxx@xxx.pl
License key : C6-8F-D6-F2-37-50
License status : OK (Expires 2003-12-12)
Nowe sterowniki umożliwiają nadawanie karcie parametrów za pomocą iwconfig (man iwconfig).
# iwconfig eth1
eth1 IEEE 802.11-DS ESSID:"KOM11_2" Nickname:"unknown"
Mode:Managed Access Point: 00:30:1A:09:37:B1 Bit Rate=11Mb/s
Tx-Power=20 dBm
RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:1/1 Signal level:-51 dBm Noise level:-200 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Jak widać
driverloader, umożliwił także odczytanie poziomu sygnału i innych
parametrów ze sterownika karty, czego nie umożliwiały sterowniki dla
Linuxa. Oto łądny przykład screen1, screen2 :).Projekt jest w fazie developerskiej, na dzień 17.04.2004 istnieje
wersja 0.6 i to co jest w repozytorium cvs. Osobiście polecam
pociągnięcie tego co jest w cvsie.
Będzie do tego potrzebny klient
cvs – http://www.cvshome.org/,
oczywiście można go sobie zainstalować z zasobów danej dystrybucji.
Kiedyś próbowałem odpalić kartę na ndiswrapperze w wersji 0.6,
ale mi się nie udało, wiec opis zacznę od zdobycia źródeł z
repozytorium cvs. Zainteresowani mogą śledzić pracę nad projektem pod
tym adresem
http://cvs.sourceforge.net/viewcvs.py/ndiswrapper/ndiswrapper/.
Do instalacji potrzebne będą źródła kernela i kompilator. Co do
wersji jaja, osobiście używam 2.4.26 z smp, instalowałem także na
2.4.21 i 2.4.24. Czytając formu projektu, spotkałem się z
przypadkami, w których ludzie chwalili się odpaleniem rtl8180l na
2.6.5, także co do kernela nie ma sztywnych ograniczeń.
Pracę będą prowadzone w ulubionym katalogu, /opt. Mając klienta cvs wykonujemy następujące komendy (komenda zawsze występuję po znaku [root@xhost opt]#, reszta to jej wynik).
[root@xhost /]# cd /opt [root@xhost opt]# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ndiswrapper login Logging in to :pserver:anonymous@cvs.sourceforge.net:2401/cvsroot/ndiswrapper CVS password:
Hasło jest puste, wiec dajemy tylko ENTER.
[root@xhost opt]# cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ndiswrapper co ndiswrapper cvs server: Updating ndiswrapper U ndiswrapper/AUTHORS U ndiswrapper/ChangeLog U ndiswrapper/INSTALL U ndiswrapper/Makefile U ndiswrapper/README U ndiswrapper/ndiswrapper.spec.in U ndiswrapper/version cvs server: Updating ndiswrapper/driver U ndiswrapper/driver/Makefile U ndiswrapper/driver/coffpe.h U ndiswrapper/driver/divdi3.c U ndiswrapper/driver/hal.c U ndiswrapper/driver/iw_ndis.c U ndiswrapper/driver/iw_ndis.h U ndiswrapper/driver/loader.c U ndiswrapper/driver/loader.h U ndiswrapper/driver/longlong.h U ndiswrapper/driver/misc_funcs.c U ndiswrapper/driver/ndis.c U ndiswrapper/driver/ndis.h U ndiswrapper/driver/ndiswrapper.h U ndiswrapper/driver/ntoskernel.c U ndiswrapper/driver/ntoskernel.h U ndiswrapper/driver/proc.c U ndiswrapper/driver/wrapper.c U ndiswrapper/driver/wrapper.h cvs server: Updating ndiswrapper/utils U ndiswrapper/utils/Makefile U ndiswrapper/utils/loadndisdriver.c U ndiswrapper/utils/ndiswrapper U ndiswrapper/utils/wlan_radio_averatec_5110hx.c
Przechodzimy do utwożonego katalogu i kompilujemy zawartość.
[root@xhost tmp]# cd ndiswrapper/ [root@xhost ndiswrapper]# make install make -C driver install make[1]: Wejście do katalogu `/opt/ndiswrapper/driver' cc -DEXPORT_SYMTAB -DMODVERSIONS -include /lib/modules/2.4.26/build/include/linux/ modversions.h -DDRV_VERSION=\"0.6+CVS\" -DLINUX -D__KERNEL__ -DMODULE -I/lib/modul es/2.4.26/build/include -Wall -Wstrict-prototypes -fomit-frame-pointer -fno-strict -aliasing -pipe -mpreferred-stack-boundary=2 -O2 -c -o wrapper.o wrapper.c [...] cc -DEXPORT_SYMTAB -DMODVERSIONS -include /lib/modules/2.4.26/build/include/linux/ modversions.h -DDRV_VERSION=\"0.6+CVS\" -DLINUX -D__KERNEL__ -DMODULE -I/lib/modul es/2.4.26/build/include -Wall -Wstrict-prototypes -fomit-frame-pointer -fno-strict -aliasing -pipe -mpreferred-stack-boundary=2 -O2 -c -o hal.o hal.c ld -r -o ndiswrapper.o wrapper.o iw_ndis.o loader.o ntoskernel.o ndis.o misc_funcs .o proc.o divdi3.o hal.o mkdir -p /lib/modules/2.4.26/misc install -m 0644 ndiswrapper.o /lib/modules/2.4.26/misc /sbin/depmod -a make[1]: Opuszczenie katalogu `/opt/ndiswrapper/driver' make -C utils install make[1]: Wejście do katalogu `/opt/ndiswrapper/utils' cc -Wall -g -c -o wlan_radio_averatec_5110hx.o wlan_radio_averatec_5110hx.c gcc -o wlan_radio_averatec_5110hx wlan_radio_averatec_5110hx.o cc -Wall -g -c -o loadndisdriver.o loadndisdriver.c gcc -o loadndisdriver loadndisdriver.o install -m 755 loadndisdriver /sbin install -m 755 ndiswrapper /usr/sbin install -m 755 wlan_radio_averatec_5110hx /usr/sbin make[1]: Opuszczenie katalogu `/opt/ndiswrapper/utils'
Teraz należy ściągnąć najnowsze sterowniki dla rtl8180l pod Windows XP i rozpakować je.
[root@xhost ndiswrapper]# wget "ftp://152.104.125.40/cn/wlan/rtl8180l/winxp-8180(168).zip" [root@xhost ndiswrapper]# unzip winxp-8180\(168\).zip Archive: winxp-8180(168).zip inflating: Release.txt inflating: Net8180.cat inflating: NET8180.INF inflating: rtl8180.sys
Następnie inicjujemy ndiswrappera za pomocą ściągniętych sterowników i sprawdzamy wynik instalacji
[root@xhost ndiswrapper]# ndiswrapper -i NET8180.INF ls: /etc/ndiswrapper: Nie ma takiego pliku ani katalogu Installing rtl8180.sys [root@xhost ndiswrapper]# ndiswrapper -l Installed ndis drivers: rtl8180.sys
Czas na załadowanie modułu do pamięci. Za pomocą komendy dmesg
można sprawdzić wynik całej operacji.
Po załadowaniu w niektórych
systemach i przy niektórych modelach kart, może wystąpić niepożądany
Segmentation Fault, albo jakiś inny błąd ochrony pamięci (jednym
słowem. wysypka), który może spowodować zwis kompa.
[root@xhost ndiswrapper]# modprobe ndiswrapper [root@xhost ndiswrapper]# dmesg [...] ndiswrapper version 0.6+CVS loaded ndiswrapper adding rtl8180.sys wlan0: ndiswrapper ethernet device 00:50:fc:d0:90:e4 using driver rtl8180.sys
Taki komunikat wskazuje na prawidłowo zainstalowane sterowniki.
Następną czynnością jest skonfigurowanie nowo powstałego interfejsu sieciowego wlan0 za pomocą komend iwconfig i ifconfig. Niewtajemniczonym polecam, wpierw zajrzeć do instrukcji systemowej “man iwconfig” i “man ifconfig”. Cały ten proces na pewno ułatwi napisanie skryptu uruchamianego przy każdym starcie systemu, bądź po prostu dopisanie paru linijek do /etc/rc.d/rc.local.
modprobe ndiswrapper iwconfig wlan0 mode Managed iwconfig wlan0 essid NAZWA_SSID ifconfig wlan0 IP_KOMPUTERA netmask MASKA route add default gw IP_BRAMY
Oczywiście każdy konfiguruję połączenie wg parametrów swojej sieci.
Podane wartości są tylko przykładem.
To by było na tyle, bardziej
ambitnym użytkownikom polecam zaglądanie od czasu do czasu na forum
projektu http://sourceforge.net/forum/?group_id=93482
lub zapisanie się na grupę mailingową.
[uho]