Een groot aantal mensen op de Hogeschool Utrecht maken gebruik van het wireless netwerk via hun laptops. Heel veel mensen hebben er Windows-achtige systemen op staan, meestal Windows XP. Support voor het HU-Wireless met Windows systemen wordt mogelijk gemaakt door de SecureW2 client om op het netwerk te komen. Totop heden was er nog nergens uitleg hoe je met Linux op het Wireless kon komen, dus bij deze.
Dit is een oude HOWTO (2006) om zelf manual je wireless in te stellen met WPA-supplicant. Moderne distributies zoals Ubuntu ondersteunen deze functionaliteit out-of-the-box.
Iedereen met een LDAP account op de HU kan op het Wireless komen. Iedereen moet daarvoor gebruik maken van het WiFi EAP protocol om zich te identificeren. EAP staat voor Extended Authentication Protocol. EAP is een uitbreiding van de standaard WiFi protocollen, die authenticatie mogelijk maakt voor op WiFi netwerken.
Voor EAP zijn allerlei soorten authenticaties protocollen. Het HU-Wireless gebruikt het protocol EAP-TTLS/PAP. Je kunt dus gewoon met je eigen student@hu.nl account connecten met de EAP client op het HU-Wireless. Zonder ge- authentificeerd te zijn zullen de Access Points op de HU je geen connectie geven.
Bovendien is het misschien interessant om te weten dat het HU-Wireless deel uit maakt van een groter netwerk, namelijk eduroam. Edoroam is een netwerk tussen allerlei hogescholen en universiteiten die wireless netwerk aanbieden aan hun studenten. Kijk maar eens op http://www.eduroam.nl/ voor meer informatie.
Om met Linux op het HU-Wireless te komen heb je de volgende zaken nodig:
Allereerst downloaden we alle benodigde packages. Dat doen we met wget. Eerst alles voor de driver (source):
$ wget http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.13.tgz $ wget http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz $ wget http://prdownloads.sourceforge.net/ipw3945/ipw3945-1.1.2.tgz?download
Of je kan de RPM's downloaden (alleen voor Redhat-achtige systemen)
$ wget http://dl.atrpms.net/all/ipw3945-ucode-1.13-2.at.noarch.rpm $ wget http://dl.atrpms.net/all/ipw3945d-1.7.22-4.at.i386.rpm $ wget http://dl.atrpms.net/all/ipw3945-kmdl-2.6.18-1.2849.fc6-1.1.0-15.fc6.at.i686.rpm $ wget http://dl.atrpms.net/all/ipw3945-1.1.0-15.fc6.at.i386.rpm
Dan de ieee80211 kernel module
$ wget http://surfnet.dl.sourceforge.net/sourceforge/ieee80211/ieee80211-1.2.15.tgz
En daarna alles voor de EAP client
$ wget http://hostap.epitest.fi/releases/wpa_supplicant-0.4.9.tar.gz
Dan installeren we alles wat nodig is voor de driver. Let op: de installatie procedure van de driver is deels afhankelijk van welke driver en welke kernel je hebt. Vanaf source kun je de drivers compileren en installeren. Je hebt eerst de source code van de huidige kernel nodig. Voor fedora kun je die krijgen met:
$ wget ftp://ftp.quicknet.nl/pub/Linux/download.fedora.redhat.com/updates/5/SRPMS/kernel-2.6.17-1.2187_FC5.src.rpm
En met debian:
# apt-get install linux-source-2.6.17
Of je kan altijd de kernel source van de officiele site halen:
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
Dan installeren we eerst de ieee80211 software. Die heeft de kernel source nodig.
$ gunzip ieee80211-1.2.15.tgz $ tar -xf ieee80211-1.2.15.tar $ cd ieee80211-1.2.15 $ make # make install
Dan de firmware voor de ipw3945 kaart:
$ gunzip ipw3945-ucode-1.13.tgz $ tar -xf ipw3945-ucode-1.13.tar $ cd ipw3945-ucode-1.13 # cp ipw3945.ucode /lib/firmware
Daarna de ipw3945 daemon:
$ gunzip ipw3945d-1.7.22.tgz $ tar -xf ipw3945d-1.7.22.tar $ cd ipw3945d-1.7.22 # cp x86/ipw3945d /sbin
En dan de driver zelf:
$ gunzip ipw3945-1.1.2.tgz $ tar -xf ipw3945-1.1.2.tar $ cd ipw3945-1.1.2 $ make
Dan laden we de driver:
# ./load
Als je installeert met RPM doe je gewoon:
# rpm -ivh ipw3945-ucode-1.13-2.at.noarch.rpm # rpm -ivh ipw3945-kmdl-2.6.18-1.2849.fc6-1.1.0-15.fc6.at.i686.rpm # rpm -ivh ipw3945d-1.7.22-4.at.i386.rpm # rpm -ivh ipw3945-1.1.0-15.fc6.at.i386.rpm
Vanaf dit punt ga ik er vanuit dat je de driver zonder problemen hebt kunnen installeren. We gaan nu even kijken of de driver werkt:
$ ifconfig
Zie je een nieuwe NIC in het lijstje staan? Probeer dan eens:
$ iwconfig <interfacenaam>
Bij mij heet mijn wireless interface gewoon eth1 dus dan doe ik:
$ iwconfig eth1
Dan krijg je alle informatie over je Wireless NIC. Nog een leuk truuctje: wil je alle Access Points zien in de buurt? Doe maar is:
$ iwlist scan
Nu je weet dat je Wireless NIC werkt, moet je de EAP client installeren en configureren.
$ gunzip wpa_supplicant-0.4.9.tar.gz $ tar -xf wpa_supplicant-0.4.9.tar $ cd wpa_supplicant-0.4.9 $ make # cp wpa_cli wpa_supplicant /usr/local/bin
Nu staan de binaries voor wpa_supplicant in /usr/local/bin. Nu moeten we hem nog configureren. Maak de file /etc/wpa_supplicant.conf aan en vul hem met:
network={ ssid="hu-eduroam" key_mgmt=IEEE8021X eap=TTLS identity="voornaam.achternaam@student.hu.nl" password="wachtwoord" phase2="auth=PAP" }
Uiterraad vul je identity= en password= in met je eigen gegevens. Probeer nu wpa_supplicant te starten met:
# wpa_supplicant -Dwext -ieth1 -c/etc/wpa_supplicant.conf
Gelukt? Dan kan je nu een IP address aanvragen met DHCP:
# dhclient eth1
Gefeliciteerd, je zit op het HU-Wireless!
Het makkelijkste is om het wireless automatisch op te laten starten bij het booten van linux. Je hoeft daarvoor maar 2 scriptjes te hebben, namelijk 1 om de NIC driver te laden, en 1 om de wpa_supplicant te runnen. Hier is een scriptje om een ipw3945 driver te laden bij het booten. Waarschijnlijk heb je een andere kaart, dus moet je daarvoor dit scriptje aanpassen of eentje van de leverancier gebruiken. Zet dit script in /etc/init.d:
#!/bin/sh # # shellscript to bring up ipw3945 wireless card # # chkconfig: 2345 25 25 # description: shellscript to launch ipw3945 # # Author: Niek Linnenbank # # import init functions . /lib/lsb/init-functions PROGNAME=ipw3945 DAEMON=ipw3945d COMMAND=/sbin/$DAEMON DEVICE=eth2 function load_modules() { modprobe ieee80211 && modprobe ipw3945 && return 0 || return 1 } function unload_modules() { modprobe -r ipw3945 && modprobe -r ieee80211 && return 0 || return 1 } function check_running() { $COMMAND --isrunning && $COMMAND --kill || return 0 $COMMAND --isrunning && return 1 || return 0 } case $1 in start) check_running && load_modules && $COMMAND && sleep 2 && ifconfig $DEVICE up && exit 0 || exit 1 ;; stop) ifconfig $DEVICE down && check_running && unload_modules && exit 0 || exit 1 ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" ;; esac
Daarna kun je de wpa_supplicant laten opstarten met dit scriptje:
#!/bin/sh # # chkconfig: 345 77 77 # description: script op wireless te starten # DESC="Intel Pro Wireless" DAEMON=wpa_supplicant DEVICE=eth2 DRIVER=wext CONFIG=/etc/wpa_supplicant/wpa_supplicant.conf # Source function library. . /lib/lsb/init-functions case $1 in start) echo -n "Starting $DESC:" $DAEMON -B -D$DRIVER -i$DEVICE -c$CONFIG && dhclient $DEVICE && log_success_msg || log_failure_msg ;; stop) echo -n "Stopping $DESC:" killall -TERM $DAEMON && killall -TERM dhclient && log_success_msg || log_failure_msg ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" ;; esac
Download en kopieer de scriptjes, en zet ze in /etc/init.d:
# mv ipw3945.sh /etc/init.d/ # mv wireless.sh /etc/init.d/
Daarna moet je nog de symbolic links in de rc directories aanpassen. Dat gaat het snelst met chkconfig (redhat) of update-rc.d (debian): Redhat:
# chkconfig --add ipw3945.sh # chkconfig --add wireless.sh
Debian:
# update-rc.d -f ipw3945.sh defaults # update-rc.d -f wireless.sh defaults
Deze howto is gemaakt door Niek Linnenbank. Voor vragen, opmerkingen of problemen, stuur een mailtje naar niek.linnenbank appelflap hunix.nl.