I've fought this battle many times and tried NdisWrapper,
wifi-radar,
wpa_supplicant and the Linux NetworkManger with inconsistent
results. Sometimes it works, then it quits again. The methods I've tried
are summarized here along with the solution that has worked best - so far.
I'm assuming a Fedora, Redhat or Centos distro, things may vary in other
distros.
Since your wireless router offers encryption you need to use it but don't
use WEP, use WPA2 and create a long pass phrase. Go ahead and
make the pass phrase really hard to guess because you will only need to enter it once. After that everything is automated and you should never need to enter it again.
Don't use the Ndiswrapper (webite) protocol
even if it might work; there's a better way. I'll get to it below.
Next download the wpa_supplicant package
(website) and read the documentation. You
won't need to run the wpa_supplicant service (the daemon) but you should go ahead a
create a configuration for it. The configuration lives in
/etc/wpa_supplicant/wpa_supplicant.conf and looks like this:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=0
network={
ssid="acme"
psk="acme;;is—the=Greatest"
#psk=d590675efe5c0e85fa15f04fae71cea20f399a254b62b93ee13f1c51153497a7
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
group=CCMP TKIP
}
It has all the settings you need to configure the Broadcom wireless NIC.
Another handy wireless utility is wifi-radar
(website)
that presents a GUI for setting up your NIC but, alas, it doesn't always
work. It will modify the /etc/wpa_supplicant/wpa_supplicant.conf
file though, so that might save you some hassles.
The NetworkManager utility comes with Linux and kind of works, but it's not really stable from what I've seen. It provides a GUI and it will modify the various wireless configuration files so it's good in that regard but I've had problems with it actually bringing up the wireless NIC.
I set a static IP for the NIC so I can enable servers if I want to. DHCP
makes running a server problematic (see here for why you might want a
server running: Webserver). I also include the IP of the wireless
router as the default gateway and the DNS servers of my ISP. The wireless
NIC configuration file is at
/etc/sysconfig/network-scripts/ifcfg-wlan0
(wlan0 is the default name for the first wireless NIC). My ifcfg-wlan0 file looks like this:
DEVICE=wlan0
ONBOOT=yes
BOOTPROTO=none
HWADDR=00:1a:76:1e:88:d9
NETMASK=255.255.255.0
DNS1=78.109.9.12
DNS2=78.109.28.12
IPADDR=192.168.2.200
GATEWAY=192.168.2.1
TYPE=Wireless
USERCTL=yes
IPV6INIT=no
PEERDNS=yes
ESSID=acme
CHANNEL=11
MODE=Ad-Hoc
RATE=Auto
DOMAIN=
DHCP_HOSTNAME=
You can edit the file yourself or use NetworkManager. Next you need the
right firmware for the Broadcom NIC. I use the b43 driver
(website) and
the b43-fwcutter
utility to extract the right driver. While this isn't difficult to do, you
should probably read the web page above to make sure you understand what's
happening. You can use rpm or yum to download and install these files but I generally download the tarball so I know where everything is.
The actual b43 driver should end up in /lib/firmware/b43. You can
just copy the drivers from the directory they're extracted to. Now edit the
/etc/modprobe.conf:
alias wlan0 b43
alias eth0 sky2
alias scsi_hostadapter libata
alias scsi_hostadapter1 pata_atiixp
alias scsi_hostadapter2 usb-storage
alias snd-card-0 snd-hda-intel
options snd-card-0 index=0
options snd-hda-intel index=0
The first line is the Broadcomriver. Now a modprobe b43 should load it (do a lsmod to verify it). Check
the /var/log/messages and /var/log/wpa_supplicant.log to check for errors.
After you've installed this software, check to see if wpa_supplicant is enabled:
chkconfig –list|grep wpa
If it's enabled then you'll see that it's “on” in run level 3 and 5. Since we don't need it to actually run type:
chkconfig wpa_supplicant off
We don't need Network Manager either so,
chkconfig NetworkManager off
Now you need to download wicd (website) and
install it (or use yum). Get the wicd-client too, it puts an applet
on the task bar so you also won't need the NetworkManager nm-applet
running. wicd will create a daemon so it will show up as “on” with
chkconfig --list|grep wicd.
The install also creates a startup script in /etc/rc.d/init.d/wicd
so you can start, stop and restart it like any other service. Once it's
configured and running a ps -ef|grep wicd will show:
root 2341 1 0 Feb08 ? 00:02:24 python -O /usr/lib/wicd/wicd-daemon.py
root 2597 1 0 Feb08 ? 00:00:37 python /usr/lib/wicd/monitor.py
root 2759 1 0 Feb08 ? 00:00:00 wpa_supplicant -B -i wlan0 -c /var/lib/wicd/configurations/00173fa0fd98 -D wext
acme 3116 2997 0 Feb08 ? 00:00:23 python -O /usr/lib/wicd/wicd-client.py
Notice that the wicd utility created its own wpa_supplicant.conf file in
/var/lib. It ignores the default wpa_supplicant config file in
/etc/wpa_supplicant but it will use the settings it finds there
(if they exist and are sane). Notice also that it uses python so
make sure it's installed and configured.
It might tbe a good idea to reboot after everything is set up to make sure
all daemons start up correctly (use dmesg and
/var/log/messages to check). You will have to massage the various config files and options to match your
machine, but the information here should be enough to get you started. My
own experience is that the wicd package works with very little extra
effort, especially if you use yum to download and install
everything.