Hogeschool Utrecht/eduroam Linux Wireless HOWTO

Introductie

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.

NOTE

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.

Hoe werkt het HU-Wireless?

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.

Wat heb je nodig?

Om met Linux op het HU-Wireless te komen heb je de volgende zaken nodig:

Software downloaden & installeren onder Linux

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

Drivers installeren voor de NIC

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

De wpa_supplicant EAP client

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!

Wireless automatisch opstarten

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

Nawoord

Deze howto is gemaakt door Niek Linnenbank. Voor vragen, opmerkingen of problemen, stuur een mailtje naar niek.linnenbank appelflap hunix.nl.

 
Back to top
hu_wireless_howto.txt · Last modified: 2011/10/06 19:41 (external edit)