Broadcom Wireless
Introduction
This tutorial is written for setting up wireless on Slackware on laptops with Broadcom wireless cards. It deals with installing Boradcom's official proprietary wl driver for Linux that includes support for Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-, BCM43227- and BCM43228-based hardware.
Prerequisites
This tutorial assumes a full Slackware installation. There should also be a way to transfer files to the target laptop - it can either be a working internet connection using the laptop's ethernet card, or a different machine with internet access and a USB thumb drive to transfer the files. The regular user account on the laptop must also be a part of the netdev group.
Getting Started
The first thing is to check if the user is part of the netdev group :
groups
If the output does not contain netdev
, then as root
, enter the following command :
usermod -a -G netdev username
where username
is the name of your user account.
Installing the driver
Sbopkg method
If a working internet connection is available on the laptop (say a wired connection), use sbopkg to install the drivers :
sbopkg -i broadcom-sta
Manual method
Navigate to the slackbuilds.org's broadcom-sta page and build the package according to the instructions given. Make sure to download the source code relevant to the architecture of your installation (32-bit or 64-bit).
Kernel upgrade
If at any point you upgrade your kernel, you will have to do this process again, because the module is compiled against the running kernel only.
Blacklisting the b43 and ssb modules
The Broadcom's wl
driver conflicts with the kernel's b43
driver, so create the /etc/modprobe.d/b43-blacklist.conf
file (name doesn't matter, but it's nice to have something intuitive) using the text editor of your choice as root
and add the following lines to it :
blacklist ssb blacklist b43 blacklist bcma
Final steps
At this point, reboot your machine. The drivers should be installed and work now. To test this, enter the iwconfig
command. you should see an output like this :
$ iwconfig lo no wireless extensions. eth1 IEEE 802.11 Nickname:"lapto" Access Point: Not-Associated Link Quality:5 Signal level:217 Noise level:199 Rx invalid nwid:0 invalid crypt:31 invalid misc:0 eth0 no wireless extensions.
This output suggests that the drivers installed right and your wireless card is recognized as eth1
by the kernel. Hooray!
If you still don't see the wireless extensions, check if any of the blacklisted modules are really not loaded:
lsmod | grep ssb lsmod | grep b43 lsmod | grep bcma
None of this commands should return anything. If any of the modules are still loaded, remove them manually:
rmmod ssb rmmod b43 rmmod bcma
You can also make sure that the "wl" module is properly loaded
lsmod | grep wl
If there is no output, you may load the "wl" module manually
modprobe wl
You can now either use the iwconfig
tool to configure your wireless networks, or if you prefer to use a GUI, follow the next section for installing Wicd.
Installing Wicd
To make management of wireless connections easier, we will install Wicd network manager that provides a simple configuration GUI and system tray icon.
Using slackpkg
If a working internet connection is available on the laptop (say a wired connection), simply use slackpkg
to install wicd :
slackpkg install wicd
Using package tarball
Download the Wicd
package for your Slackware version from the extra/ section of your preferred Slackware mirror and install using installpkg
.
For example, on a 32-bit system running Slackware 13.37, as root:
wget http://slackware.dreamhost.com/slackware/slackware-13.37/extra/wicd/wicd-1.7.0-i486-2.txz installpkg ./wicd-1.7.0-i486-2.txz
Wicd usage
Start the Wicd daemon :
/etc/rc.d/rc.wicd start
Once its started, run wicd-client
and configure the network to your liking.
Caveat
Wicd by default treats wlan0
as the default wireless interface. Since the interface is eth1
in our case, you might want to correct this in Wicd's Preferences.
User note
In order to access the wicd client utilities, your user must also be in the netdev group. Add your user to the netdev group, logout and login to make it effective, then you can run the wicd client utilities as your user. For the CLI based tool, there is wicd-cli and wicd-curses. For the GUI client, ther is wicd-client and wicd-gtk.