5min

Tags in dit artikel

,

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
2
3
4
5
6
7
8
9
10
11
#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
2
3
4
5
6
7
8
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
2
3
4
5
6
7
8
9
10
#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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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.
  1. 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.
  2. 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.
  3. 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’).
  4. 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:Hieronder is een verzameling linken naar hardwarefabrikanten, die native Linux-drivers leveren en een verzameling linken naar wireless-driver-projecten:
Uiteraard is deze lijst bij lange na niet compleet, maar het dekt in ieder geval een groot deel van alle beschikbare wlan-kaarten en wlan-dongles.