Ubuntu Wireless Manual Setup on Dell D610 with Active Directory Authentication

Setting Up Ursinus Wireless in Ubuntu Dapper on Latitude D610

In order to get the wireless working on the Ursinus Dell Latitude D610 laptops under Ubuntu Dapper, two mains steps are required. First, ndiswrapper must be installed to get the laptop to recognize the wireless card. Second, wpa_supplicant must be installed and configured to allow connection to the Ursinus wireless network.

 

To install ndiswrapper:

sudo apt-get install ndiswrapper-utils

*It is possible that ndiswrapper is already installed.

Update: I have found that the version of ndiswrapper in the repositories (1.8 as of 3/6/07) does not work properly. The solution has been to install a newer version (1.31 is what I got to work) from the current version of theĀ code. Follow the INSTALL instructions found with the source code. If you encounter problems, an error with “modpost” or something similar, you probably need to install the kernel headers. This should be enough to install them:

sudo apt-get install linux-headers-`uname -r`

Next, we need to make sure that Ubuntu isn’t trying to use a driver of its own:

sudo gedit /etc/modprobe.d/blacklist

Check this file to see if you can find “blacklist bcm43xx”. If you don’t see it, add it to the bottom of that file, save it, then close gedit. Now make sure that the kernel isn’t using any driver currently with:


modprobe -r bcm43xx
modprobe -r ndiswrapper

Now we need to set up ndiswrapper. You’ll need to get the driver files for the card for Windows. You can try to find them in your Windows partition if it’s mounted by `locate bcmwl5.inf`. Otherwise, you can just download it fromĀ Dell. Once you have this downloaded, you can extract the driver with `unzip R115320.EXE`. Now you’ll need to find bcmwl5.inf in the files that were just extracted. Once you find it, this will install it and set ndiswrapper up with it:


ndiswrapper -i bcmwl5.inf
ndiswrapper -m

You can use `ndiswrapper -l` to make sure it installed correctly.

Now restart your computer. When it starts back up do the following:

dmesg | grep ndiswrapper

You should see lines similar to:


[89.36] ndiswrapper version 1.8 loaded (preempt=yes,smp=no)
[189.40] ndiswrapper: driver bcmwl5 (Broadcom,12/22/2004, 3.100.46.0) loaded
[19.46] ndiswrapper: using irq 209
[10.66] wlan0: ndiswrapper ethernet device 00:00:00:00:00:00 using driver
bcmwl5, 14E4:4318.5.conf

If you don’t, try `modprobe ndiswrapper` and then try the dmesg again. If this fixes the problem, you may need to add “ndiswrapper” to the bottom of /etc/modules.
[4363141.967000] bcm43xx: Error: Microcode “bcm43xx_microcode5.fw” not available or load failed. You can check to make sure that the card is working properly with the kernel with:

iwconfig

You should notice an interface possibly named “wlan0,” but it could also be an “eth” interface. Either way, it should be obvious that it is there, primarily from the top line that should be something like:

IEEE 802.11g  ESSID:off/any

If you have this, then you should now be ready to connect to a wireless signal. You can scan to see what is around with:

iwlist scan

If you have a router, or some other security-disabled network around, you can connect to it by doing:


iwconfig wlan0 essid "ssid"
sudo ifup wlan0

You’ll need to replace wlan0 if your interface is different and ssid with the appropriate site ID.

 

To install wpa_supplicant

sudo apt-get install wpa_supplicant

After this is installed, you’ll need to configure it:

sudo gedit /etc/wpa_supplicant.conf

The setup for UC should be:


network={
    ssid="ursinus"
    key_mgmt=IEEE8021X
    scan_ssid=1
    eap=PEAP
    identity="URSINUS\username"
    password="password"
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
}

Add this to the bottom of that file, substituting username and password for your Ursinus username and password. To make sure that your password is better protected, run:


sudo chmod 700 /etc/wpa_supplicant.conf
sudo chown root:root /etc/wpa_supplicant.conf

This will make sure that only root can read this file.

In order to start wpa_supplicant, run:

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D wext -B

Replace “wlan0” as necessary. You can set this up to run at boot by:

sudo gedit /etc/init.d/wpa_supplicant

Add:


#!/bin/bash
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf -D wext -B

Then run:


sudo chmod +x /etc/init.d/wpa_supplicant
sudo update-rc.d wpa_supplicant defaults

Now you should be able to connect to the “ursinus” network in the same method as above:


iwconfig wlan0 essid "ursinus"
sudo ifup wlan0

 

Extra modifications:

Keeping the Interface Names the Same

If the interface name “wlan0”, “eth0”, etc., changes often after rebooting, causing problems with wpa_supplicant, you can change a few things to help make sure it stays the same.

sudo gedit /etc/network/interfaces

Edit this file by removing the interfaces you don’t want the wireless to use if it’s there, and add the following lines using the interface name you want to use:


auto wlan0
iface wlan0 inet dhcp

Also, you can edit /etc/iftab and make sure that the interface name for the wireless is what you want it to be.

Additional Configuring for wpa_supplicant

You can use `man wpa_supplicant` or search Google for more information about configuring wpa_supplicant to suit your needs, but a common one is using WPA-PSK, or WPA security with a passphrase. wpa_supplicant comes with a program to do this work for you. Run the following command to add the settings to the configuration file, replacing ssid and the passphrase:

sudo wpa_passphrase ssid passphrase >> /etc/wpa_supplicant.conf

 

Updates

Tuesday, March 6, 2007

  • Version of ndiswrapper doesn’t seem to work, need to compile from source with newer version
  • The “microcode” error message relates to the bcmwxx module, not a problem when using ndiswrapper. Taken out of howto because the driver is not ready to be used in place of ndiswrapper.
  • There seems to be some error when running wpa_supplicant with the driver specified to be ndiswrapper. If wpa_supplicant gives you problems with ndiswrapper, use wext. If wext gives you problems, try ndiswrapper.

 

  1. No Comments