Welke chipset en welke drivers, nidswrapper?
De herkenning van een wlan-card (wlan) gebeurt niet alleen via de naam van de fabrikant, maar vooral via de gebruikte chipset op de wlan. Een veel gehoorde kreet dat kleine, goedkope en onbekende merken nauwelijks Linux-ondersteuning bieden is daarom ook een fabel. Wat er echt toe doet is de vraag welke chipset die fabrikant erop gesoldeerd heeft.Als je pci-card of usb-dongle is geïnstalleerd / aangesloten, dan zal Linux in ieder geval aangeven dat deze hardware (hoe onbruikbaar ook) aanwezig is. Om erachter te komen of je card of dongle in de hardwarelist aanwezig is gebruik je de volgende commands in de terminal als user ‘root’:
De meeste commands worden als ‘root’ uitgevoerd. Ubuntu-gebruikers moeten overal waar ‘#’ voor een command staat ‘sudo’ voor het command plaatsen.
Wireless PCI
Met het command ‘lspci’ krijg je een output, die hierop kan lijken:
PHP Code
1 | #lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT82C598 [Apollo MVP3] (rev 04) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C586/A/B PCI-to-ISA [Apollo VP] (rev 47) 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 02) 00:07.3 Host bridge: VIA Technologies, Inc. VT82C586B ACPI (rev 10) 00:12.0 Network controller: RaLink RT2561/RT61 rev B 802.11g 00:13.0 Ethernet controller: ADMtek NC100 Network Everywhere Fast Ethernet 10/100 (rev 11) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R300 NE [Radeon 9500 Pro] 01:00.1 Display controller: ATI Technologies Inc Radeon R300 [Radeon 9500 Pro] (Secondary) |
Deze lijst zul je even moeten doorwerken, waarbij je zult moeten zoeken naar de regel, die overeenkomt met je wireless PCI-kaart; in dit geval is dat de volgende regel:
PHP Code
1 | 00:12.0 Network controller: RaLink RT2561/RT61 rev B 802.11g |
Deze regel geeft aan dat er een PCI-device is gevonden met een RaLink RT2561 of RT61 chipset.
Wireless USB-dongle
Met het command ‘lsusb’ krijg je een output, die hierop kan lijken:
PHP Code
1 | Bus 005 Device 001: ID 0000:0000 Bus 004 Device 003: ID 046d:c01d Logitech, Inc. MX510 Optical Mouse Bus 004 Device 002: ID 13b1:0020 Linksys WUSB54GC 802.11g Adapter [ralink rt73] Bus 004 Device 001: ID 0000:0000 Bus 001 Device 002: ID 1307:0163 Transcend Information, Inc. 512MB USB Flash Drive Bus 001 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 |
Deze lijst zul je even moeten doorwerken, waarbij je zult moeten zoeken naar de regel die overeenkomt met je wireless USB-dongle; in dit geval is dat de volgende regel:
PHP Code
1 | Bus 004 Device 002: ID 13b1:0020 Linksys WUSB54GC 802.11g Adapter [ralink rt73] |
Deze regel geeft aan dat er een USB-device is gevonden met een RaLink RT73 chipset.
Het zoeken en vinden van drivers
Wanneer je hebt uitgevogeld welk chipset op je wlan gesoldeerd zit, moet je checken of die module eventueel al aanwezig is. Dat doe je met het command ‘lsmod’. Dit command geeft een behoorlijk lange lijst, die je zult moeten doorspitten. Hieronder zie je twee ingekorte voorbeelden (respectievelijk voor PCI en USB):
PHP Code
1 | #lsmod Module Size Used by [..] rt2x00pci 11201 1 rt61pci rt2x00lib 21313 2 rt61pci,rt2x00pci rfkill 9297 1 rt2x00lib input_polldev 7241 1 rt2x00lib crc_itu_t 5953 1 rt2x00lib mac80211 125137 2 rt2x00pci,rt2x00lib [..] |
PHP Code
1 | #lsmod Module Size Used by [..] rt2x00usb 12865 1 rt73usb nvidia 6214096 34 rt2x00lib 21313 2 rt73usb,rt2x00usb via_ircc 21077 0 8139cp 21697 0 parport_pc 26981 0 snd_timer 20549 3 snd_emu10k1,snd_seq,snd_pcm snd_page_alloc 11337 2 snd_emu10k1,snd_pcm rfkill 9425 1 rt2x00lib parport 32393 1 parport_pc irda 106617 1 via_ircc crc_ccitt 6081 1 irda input_polldev 7369 1 rt2x00lib crc_itu_t 6081 1 rt2x00lib mac80211 125137 2 rt2x00usb,rt2x00lib [..] |
In beide gevallen zie je dat de driver voor de wlan aanwezig is. Wanneer dit niet zo is, dan is het nodig om de driver te zoeken. Daarvoor zijn er verschillende resources. Hieronder volgt een klein stappenplan om drivers te vinden. Op de installatie van deze software gaan we niet uitgebreid in.
- De repositories van je distributie
Dat is de eerste bron waar je moet kijken. Klik in je favoriete packagemanager op de naam van de chipset en kijk of je distributie al een pakket heeft, waar je deze chipset kunt downloaden. Deze manier verdient boven alles de voorkeur, omdat je Linuxdistributie zelf al een goede voorgecompileerde driver beschikbaar heeft. - Via rpm of deb databases op internet
Bijvoorbeeld rpm.pbone.net. Sommige fabrikanten of gebruikers maken zelf een package met een driver, die niet in de repositories komt, maar wel goed functioneert. Deze manier is gemakkelijk, maar succes is niet altijd gegarandeerd… Ook hierbij geldt: installatie gaat door middel van een packagemanager of installatieprogramma van je distributie. - Via de chipsetfabrikant
Gelukkig zijn er steeds meer hardwarefabrikanten, die sourcepakketten aanbieden voor je wlan. Dit is de meest lastige manier om je drivers te installeren. Hiervoor moet je namelijk zelf de drivers compileren en builden. Op zich hoeft het geen probleem te zijn, maar het vereist iets meer kennis van Linux. Bij deze pakketten zul je altijd de README- of INSTALL-file moeten lezen om uit te zoeken hoe je precies de drivers moet compileren en builden. Dit zal via de commandline gaan. Zorg er dan voor dat je de kernelheaders, ‘gcc’ en ‘make’ heb geïnstalleerd via de repositories van je distributie. In veel gevallen komt de compilatie en builden neer op het uitpakken van een .tar.gz ($tar -zxvf <bestandsnaam>.tar.gz), vervolgens de map in gaan van de uitgepakte bestanden en beginnen met het compileren en builden van de drivers (door middel van de commands ‘$./configure’, ‘$make’ en ‘#make install’). - ndiswrapper
Een programma dat gebruik maakt van de Windows-bestanden, die onder Linux gebruikt kunnen worden. Het is een redelijk goed systeem, maar biedt geen garanties dat het altijd werkt. Gebruik ndiswrapper dan ook alleen als de bovenstaande oplossingen niet werken.
Hoe werkt ndiswrapper?
- Zoek de Windows XP-drivers voor je wlan.
- Zoek naar het .inf-bestand van de XP-driver en kopieer dan naar een lokatie op je HDD (bijv. /win-drivers/wireless.inf).
- Installeer de driver met ndiswrapper:
PHP Code
1 | #ndiswrapper -i /win-drivers/wireless.inf |
- Controleer of deze daadwerkelijk is geïnstalleerd:
PHP Code
1 | #ndiswrapper -l |
- Wanneer je een melding krijg als: "Installed drivers:
<chipset-naam> driver installed, hardware present"
Dan is de driver correct geïnstalleerd. Zie je dit niet, probeer dan de driver voor Windows 2000 te laden of zoek een andere driver voor dezelfde chipset. - Ndiswrapper herkent nu de driver het het device. Om het te deïnstalleren, geef dan het volgende commando:
PHP Code
1 | #ndiswrapper -e <chipset-naam> |
Supported chipset en links
Hieronder vind je een verzameling van handige links met betrekking tot ondersteunde chipsets:
- Een aardig up-to-date en uitgebreide database is te vinden op linux-wless.passys.nl.
- Daarnaast houdt de site linuxwireless.org ook een database bij, waar onderscheid gemaakt wordt tussen PCI en USB:
– Linux Wireless.org – PCI
– Linux Wireless.org – USB - Ndiswrapper houdt zelf een lijst bij van wifi-kaarten, die werken met ndiswrapper, welke te vinden is op de ndiswrapper home-site
- Agere Systems Inc. Linux Driver
- madwifi driver for cards based on Atheros chip set (ar521x)
- ATMEL AT76C5XXx driver for USB and PCMCIA cards
- Broadcom wl.o driver (Linksys)
- Broadcom (bcm) – Berlios
- Intel ipw2100 driver
- Intel ipw2200 driver
- Ralink – Officieel
- Ralink – Serial Monkey