Trådløse nettverkskort i Linux
Merknad
Denne artikkelen inneholder mye informasjon som ikke er relevant for nyere distribusjoner av linux. Med f.eks. Ubuntu 7.04 får man som regel fungerende trådløsfunksjon ut av boksen :)
Innledning
Å få trådløse nettverkskort til å fungere i Linux kan være vanskelig og noe frustrerende. Denne artikkelen tar ikke sikte på å gjennomgå hvordan man kan få alle typer kort til å fungere, men snarere gi noen hint om hvordan man bør lete etter løsninger, og forklare noen sentrale oppsett og kommandoer. De fleste kommandoer gjengitt her må kjøres som brukeren root.
Den beste kilden til informasjon om trådløst i Linux er denne nettsiden, sponset av Hewlett Packard, og det vil henvises til denne siden flere ganger i denne artikkelen.
Kjernen
De fleste nyere distribusjoner er satt sammen for å støtte mest mulig hardware, så det er mulig at du ikke trenger å kompilere din egen kjerne. Sjansen er imidlertid stor for at du må kompilere en ekstern modul som skal settes inn i kjernen, og det kan hende at du må inn å se på oppsettet til kjernen. Det anbefales derfor å lese hele denne seksjonen. For mer informasjon om det å konfigurere og kompilere din egen Linux-kjerne kan man blant annet lese Kernel Rebuild Guide.
Nødvendige opsjoner
For å benytte trådløse nettverkskort i Linux må du ha støtte for det i kjernen. Du kan sjekke om du har dette ved å se om filen /proc/net/wireless eksisterer. Hvis den ikke gjør det, må du endre konfigurasjonen av kjernen, og kompilere den på nytt. Opsjonen som må være slått på er CONFIG_NET_RADIO. I menuconfig finnes dette her:
I Linux 2.6: Device Drivers->Networking support->Wireless LAN (non-hamradio)->Wireless LAN drivers (non-hamradio) and Wireless Extensions I Linux 2.4: Network Device Support->Wireless LAN (non-hamradio)->Wireless LAN (non-hamradio)
Mange trådløse kort er ikke innebygde, men plasseres i en "sprekk" på siden av PC-en. Dette er PCMCIA- eller Cardbus-kort, og for å benytte et slikt kort, og også en del innebygde kort, må det være støtte for PCMCIA/Cardbus i kjernen. Dette er tilfelle i standard-oppsettet til kjernene i de fleste distribusjoner, så sannsyngligvis må du ikke endre dette. Dersom du må konfigurere kjernen må du si ja til CONFIG_PCMCIA. I menuconfig finnes dette her:
I Linux 2.6: Bus Options (PCI, PCMCIA, EISA, MCA, ISA)->PCMCIA/Cardbus support->PCMCIA/Cardbus support I Linux 2.4: General Setup->PCMCIA/Cardbus support->PCMCIA/Cardbus support
I tillegg inkludere støtte for de nødvendige typer PCMCIA/Cardbus på den samme siden i menuconfig. Her er det relativt trygt å si ja, dersom man er usikker.
I tillegg til å ha opsjonene ovenfor i kjernen må det benyttes en pakke som heter pcmcia-cs. Denne startes som regel som en tjeneste ved navn pcmcia eller lignende. I distribusjonene Redhat og Fedora kan du konfigurere hvilke tjenester som skal starte ved oppstart via programmet redhat-config-services. For mer informasjon om Linux og PCMCIA/Cardbus, henvises det til PCMCIA Howto.
Drivere
For at at kortet ditt skal fungere, må du ha drivere. Disse er bygd inn i Linux-kjernen, enten fast eller som moduler som kan lastes dynamisk inn og ut. Den standard Linux-kjernen har støtte for en del trådløse kort som følger 802.11b-standarden. Dette er den standarden som det trådløse nettverket på NTNU benytter. I menuconfig finner du disse driverne her:
I Linux 2.6: Device Drivers->Networking support->Wireless LAN (non-hamradio) I Linux 2.4: Network device support->Wireless LAN (non-hamradio) og Network device support->PCMCIA network device support->PCMCIA Wireless LAN
Det er ikke alltid like lett å se om ditt kort er støttet her, så det anbefales å sjekke Internettsiden som det er henvist til i innledningen, og å søke etter løsninger fra andre med samme nettverkskort på Internett.
Dersom du bygger driveren fast inn i kjernen skal den trådløse nettverksenheten som finnes på systemet automatisk være til stede etter oppstart. Merk at dette ikke betyr at alt vil fungere automatisk, men du kan gå videre til å konfigurere enheten med Wireless-tools, slik det står beskrevet nedenfor under seksjonen Verktøy.
Dersom du bygger driverne inn som moduler kan du være nødt til å laste modulen manuelt med kommandoen
root# modprobe navnpaamodul
navnpaamodul er selvsagt navnet på modulen. Kommandoen
root# ifconfig -a
lister opp informasjon om alle nettverksenhetene, slik at du kan se hvilke enheter du har. Dersom du har fått lastet driverne korrekt skal du ha fått en ny enhet i systemet, som for eksempel kan hete eth1, wlan0 eller ath0. I denne artikkelen vil alle eksemplene benytte navnet eth1.
Modulen må lastes hver gang du starter Linux på nytt, men du kan sette opp dette til å skje automatisk ved oppstart, eller når nettverkskortet forsøkes benyttet. I de fleste distribusjoner kan du benytte filen /etc/modules.conf til dette, ved å legge til en linje som
alias eth1 navnpaamodul
Dette betyr at nettverksenheten eth1 assosieres med modulen navnpaamodul. Vær oppmerksom på at en del distribusjoner, som for eksempel Debian og Gentoo genererer /etc/modules.conf automatisk ut ifra andre filer, og at manuell editering derfor må foregå i disse.
Drivere som ikke finnes i standard Linux-kjerne
Mange trådløse kort har drivere som av forskjellige grunner ikke finnes i den standard Linux-kjernen. Det kan for eksempel være fordi de er for dårlig skrevet, for nye, for ustabile eller at ikke har åpen kildekode. Det betyr imidlertid ikke at man ikke kan bruke dem. Slike drivere finner man overalt på nettet, noen gang som lenker fra produsentenes sider, men som regel ikke. Igjen henvises det til siden nevnt i innledningen som den beste kilden til informasjon, med lenker til diverse drivere.
Dersom du finner en driver på nettet, må du laste den ned, kompilere den, og deretter laste den inn i kjernen. Siden den ikke er en del av standard-kjernen må du laste den med kommandoen
root# insmod banetilmodul
banetilmodul er her filnavnet, inkludert banen, til modul-filen. Moduler har filendelsen .o i Linux 2.4, og .ko i Linux 2.6. Når du har lastet modulen har du forhåpentligvis fått en ny nettverksenhet. Dette kan du sjekke med ifconfig -a, slik beskrevet ovenfor.
802.11a, 802.11g og kort uten Linux-drivere
To standarder med høyere kapasitet enn 802.11b er 802.11a og 802.11g, hvorav sistnevnte blir mer og mer utbredt. De fleste 802.11g-kort støtter også 802.11b, og i nyere bærbare følger det gjerne slike kort med. Det finnes desverre Linux-drivere for svært få av disse kortene, på grunn av manglende informasjon fra produsentene. Det finnes også en del 802.11b-kort som av samme grunn ikke har Linux-drivere. Trådløskortene som er en del av Intel Centrino er et eksempel på kort der dette er et problem. Det er imidlertid verdt å nevne at det finnes løsninger som benytter Windows-drivere til å drive kortet i Linux. En gratis løsning av denne typen ndiswrapper. Denne støtter en rekke vanlige kort som ikke har drivere med åpen kildekode. Det bør nevnes at mange er svært lite begeistret for denne typen løsninger, da det innebærer å laste inn ukjent kode i Linux-kjernen, som kan skape uforutsette problemer og som det er umulig å ha kontroll på for de som driver med kjerne-utvikling. Det er derfor helt dødfødt å sende inn bug-rapporter om noe som helst i Linux-kjernen dersom man benytter en slik binær modul.
Verktøy
For å benytte en trådløsenhet etter at driveren er korrekt lastet trenger du et sett med verktøy som heter Wireless-tools, skrevet av Jean Tourrilhes. Denne pakken består av verktøyene iwconfig, iwevent, iwgetid, iwlist, iwpriv og iwspy. De fleste nye distribusjoner har disse inkludert, eller kan installere pakken gjennom sitt standard pakkesystem. Dersom du må legge de inn manuelt kan du laste de ned fra samme side som det er henvist til i innledningen. Det viktigste verktøyet i denne pakken er iwconfig, som er alt du trenger for å konfigurere kortet. Her nevnes kun de mest sentrale måtene å bruke iwconfig på. For en mer detaljert gjennomgang av mulighetene henvises det til annen dokumentasjon, for eksempel man-sidene til iwconfig, som du får fram ved å skrive
root# man iwconfig
Se status på kortet
For å få en del informasjon om status på kortet, benyttes kommandoen
iwconfig eth1
Dersom du bare skriver
iwconfig
skal du få opp trådløsinformasjon for alle nettverksenhetene, men det vil stå no wireless extensions på de enhetene som ikke er trådløse.
Sette ESSID (nettverksnavn)
For å kunne benytte et trådløsnettverk må du sette navnet på nettverket, også kalt ESSID eller bare SSID. NTNUs nettverk har ESSID ntnu, og dennee vil benyttes i eksemplene videre i artikkelen. For å benytte dennee brukes da kommandoen
iwconfig eth1 essid ntnu
Etter at du har gjort dette kan du få fram status for kortet slik det står beskrevet i forrige avsnitt. Dersom kortet med hell har koblet til nettverket skal du, hvis du ber om status etter noen sekunder, se at det står, blant masse annen informasjon:
ESSID:"ntnu"
Dersom det er tomt mellom hermetegnene har kortet ikke koblet til nettverket. Du kan også benytte kommandoen iwgetid til å se hvilket nettverk du er koblet til. Mange kort kan søke etter tilgjengelige nettverk og koble til det først og beste det finner, ved å sette ESSID til any.
Sette operasjonsmodus
Trådløskort støtter flere operasjonsmodi, hvorav managed og ad-hoc er de mest aktuelle for de fleste. Førstnevnte benyttes på nettverk der aksesspunkt benyttes, slik som på NTNU. Sistnevnte benyttes når du vil koble sammen flere maskiner med trådløskort uten at det finnes noe aksesspunkt, for eksempel for å overføre filer til hverandre. Det finnes flere modi, som ikke nevnes her, men på mange kort får du ikke til å sette andre modi via iwconfig. For å sette modus til managed, benyttes kommandoen
iwconfig eth1 mode Managed
For å sette modus til ad-hoc, benyttes kommandoen
iwconfig eth1 mode Ad-hoc
WEP-kryptering (Wired Equivalent Privacy)
WEP-kryptering er en del av standarden 802.11, og benyttes for å kryptere trafikk til og fra din maskin, samt å hindre adgang til uvedkommende på nettverket. Denne formen for kryptering er svært lite sikker, spesielt på nettverk med stor trafikk, men kan være nyttig for privatpersoner med egne trådløse nettverk for å holde naboene ute. Når WEP-kryptering benyttes settes det en nøkkel i aksesspunktet, som også må settes på klientsiden for at de to skal kunne forstå hverandre. For å sette en slik nøkkel for et trådløskort via iwconfig benyttes kommandoen
iwconfig eth1 key XXXXXXXX
der XXXXXXXX må byttes ut med nøkkelen, representert i hexadesimale tall. Det er også mulig å sette nøkkelen som en ASCII-streng ved å skrive
iwconfig eth1 key s:YYYYYYYY
der YYYYYYYY er ASCII-strengen. Normalt må krypteringsnøkkelen settes før ESSID settes, men dersom du får problemer med WEP, kan det lønne seg å prøve å stokke om på rekkefølgen. Dersom du har problemer kan du også forsøke å legge til nøkkelordet restricted eller open foran nøkkelen, for eksempel slik:
iwconfig eth1 key open XXXXXXXX
Betydningen av dette varierer noe fra kort til kort.
Se tilgjengelige nettverk
Noen ganger kan det være praktisk å søke etter tilgjengelige nettverk, og til dette kan du benytte følgende kommando
iwlist eth1 scanning
Verktøyet iwlist kan også benyttes til å få frem annen informasjon.
Komme på nett
Selv om du har fått satt nettverks-id og kortet ditt nå er en del av trådløsnettverket, må du fortsatt få en IP-adresse, og få satt opp diverse annen nødvendig informasjon for å kommunisere over nettverket. På de fleste nettverk får du dette tildelt via DHCP, dersom du ber om det. Hvordan dette gjøres varierer fra distribusjon til distribusjon. På noen distribusjoner, som for eksempel Redhat og Fedora, brukes kommandoen
dhclient eth1
På andre distribusjoner kan du benytte kommandoen
dhcpcd eth1
Dersom du vil sette statisk informasjon kan du gjøre dette via kommandoen ifconfig.
Automatisk konfigurasjon
Som regel ønsker man ikke å være nødt til å utføre alle kommandoene ovenfor hver gang man skrur på maskinen og vil koble til et trådløst nettverk. Derfor har forskjellige distribusjoner løsninger for å definere oppsett som raskt kan lastes, eventuelt ved oppstart av maskinen. Disse systemene er vidt forskjellige fra distribusjon til distribusjon, og kan ikke gjennomgås her. Mange distribusjoner har grafiske konfigurasjonsverktøy som kan bruke til oppsett, vel og merke etter at de korrekte driverne er lastet. Disse kan ofte aksesseres via menyer i grafiske skrivebordsmiljø. Redhat og Fedora har for eksmpel et verktøy som heter redhat-config-network.
VPN
For å benytte ditt trådløse nettverkskort ved NTNU må du benytte VPN. For mer informasjon om dette henvises det til denne Infoweb-artikkelen om VPN.
| Languages: | Comments: | 0 | Aid: | 288 | User rating: |
|
|
| Last updated: | 2007-06-25 | Author: | neergaar | Read: | 10538 times |