Broadcom Wireless: Difference between revisions

From SlackWiki
Jump to navigation Jump to search
(A HowTo for installing and configuring Broadcom wireless cards on Slackware)
 
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Tutorials]]
[[Category:Tutorials]]
= Introduction =
== 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.
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 =
== 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.
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.
The regular user account on the laptop must also be a part of the ''netdev'' group.


= Getting Started =
== Getting Started ==


The first thing is to check if the user is part of the ''netdev'' group :
The first thing is to check if the user is part of the ''netdev'' group :
Line 21: Line 21:
where <code>username</code> is the name of your user account.
where <code>username</code> is the name of your user account.


= Installing the driver =
== Installing the driver ==


=== Sbopkg method ===
If a working internet connection is available on the laptop (say a wired connection), use [http://sbopkg.org sbopkg] to install the drivers :
<pre>sbopkg -i broadcom-sta</pre>
=== Manual method ===
Navigate to the slackbuilds.org's [http://slackbuilds.org/result/?search=broadcom-sta&sv= broadcom-sta page] and build the package according to the [http://slackbuilds.org/howto/ instructions] given. Make sure to download the source code relevant to the architecture of your installation (32-bit or 64-bit).
Navigate to the slackbuilds.org's [http://slackbuilds.org/result/?search=broadcom-sta&sv= broadcom-sta page] and build the package according to the [http://slackbuilds.org/howto/ instructions] given. Make sure to download the source code relevant to the architecture of your installation (32-bit or 64-bit).


= Blacklisting the b43 and ssb modules =
=== Kernel upgrade ===


The Broadcom's <code>wl</code> driver conflicts with the kernel's <code>b43</code> driver, so open up the <code>/etc/modprobe.d/blacklist.conf</code> using the text editor of your choice as <code>root</code> and add the following lines to it :
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 <code>wl</code> driver conflicts with the kernel's <code>b43</code> driver, so create the <code>/etc/modprobe.d/b43-blacklist.conf</code> file (name doesn't matter, but it's nice to have something intuitive) using the text editor of your choice as <code>root</code> and add the following lines to it :


<pre>
<pre>
blacklist ssb
blacklist ssb
blacklist b43
blacklist b43
blacklist bcma
</pre>
</pre>


= Final steps =
== Final steps ==


At this point, reboot your machine. The drivers should be installed and work now. To test this, enter the <code>iwconfig</code> command. you should see an output like this :
At this point, reboot your machine. The drivers should be installed and work now. To test this, enter the <code>iwconfig</code> command. you should see an output like this :
Line 51: Line 61:


This output suggests that the drivers installed right and your wireless card is recognized as <code>eth1</code> by the kernel. Hooray!
This output suggests that the drivers installed right and your wireless card is recognized as <code>eth1</code> by the kernel. Hooray!
If you still don't see the wireless extensions, check if any of the blacklisted modules are really not loaded:
<pre>
lsmod | grep ssb
lsmod | grep b43
lsmod | grep bcma
</pre>
None of this commands should return anything. If any of the modules are still loaded, remove them manually:
<pre>
rmmod ssb
rmmod b43
rmmod bcma
</pre>
You can also make sure that the "wl" module is properly loaded
<pre>
lsmod | grep wl
</pre>
If there is no output, you may load the "wl" module manually
<pre>
modprobe wl
</pre>


You can now either use the <code>iwconfig</code> tool to configure your wireless networks, '''or''' if you prefer to use a GUI, follow the next section for installing Wicd.
You can now either use the <code>iwconfig</code> tool to configure your wireless networks, '''or''' if you prefer to use a GUI, follow the next section for installing Wicd.


= Installing Wicd =
== Installing Wicd ==


To make management of wireless connections easier, we will install [http://wicd.sourceforge.net/ Wicd] network manager that provides a simple configuration GUI and system tray icon.
To make management of wireless connections easier, we will install [http://wicd.sourceforge.net/ Wicd] network manager that provides a simple configuration GUI and system tray icon.
Line 60: Line 95:
=== Using slackpkg ===
=== Using slackpkg ===


If you already have a working internet connection on the laptop (say a wired connection), simply use <code>slackpkg</code> to install wicd :
If a working internet connection is available on the laptop (say a wired connection), simply use <code>slackpkg</code> to install wicd :
<pre>slackpkg install wicd</pre>
<pre>slackpkg install wicd</pre>


=== Using package tarball ===
=== Using package tarball ===


Download the <code>Wicd</code> package for your Slackware version from the ''extra/'' section of your preferred Slackware [http://slackware.osuosl.org/ mirror] and install using <code>installpkg</code>. For example, on a 32-bit system, as root :
Download the <code>Wicd</code> package for your Slackware version from the ''extra/'' section of your preferred Slackware [http://slackware.osuosl.org/ mirror] and install using <code>installpkg</code>.
 
For example, on a 32-bit system running Slackware 13.37, as root:
 
<pre>
<pre>
  wget http://slackware.osuosl.org/slackware-13.37/extra/wicd/wicd-1.7.0-i486-2.txz
  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
  installpkg ./wicd-1.7.0-i486-2.txz
</pre>
</pre>


= Wicd usage =
== Wicd usage ==
Start the Wicd daemon :
Start the Wicd daemon :


Line 82: Line 120:
=== Caveat ===
=== Caveat ===
Wicd by default treats <code>wlan0</code> as the default wireless interface. Since the interface is <code>eth1</code> in our case, you might want to correct this in Wicd's Preferences.
Wicd by default treats <code>wlan0</code> as the default wireless interface. Since the interface is <code>eth1</code> 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.

Latest revision as of 03:38, 3 April 2014

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.