个人工具

UbuntuHelp:WifiDocs/Driver/bcm43xx/Edgy

来自Ubuntu中文

跳转至: 导航, 搜索

Using Broadcom Wireless in Ubuntu Edgy 6.10

As of kernel 2.6.17, there is native support for some broadcom chipsets. You have to use the fw-cutter tool to suck out the firmware code from a windows driver. The fw-cutter, or firmware cutter, or firmware extractor, does this. This driver was included into the Linux kernel since kernel version 2.6.17-rc2. There are two ways to use the broadcom chipset with Linux:

  • Using ndiswrapper. This was the only way of getting support for these devices before Linux kernel 2.6.17-rc2. This will not work on PowerPC.
  • Using the native drivers in the kernel. This still requires extracting the firmware (the software that runs on the card itself) from one of a number of places using a tool called fwcutter. If you have bcm43xx hardware that is recognizable to the new kernel and you boot your PC with the Edgy installation CD, you will see error messages about the missing bcm43xx firmware, that show up on the console after the first boot splash screen but before X is started. Following these instructions will fix this problem and you will have a working Wireless card (I have a Belkin PCMCIA Wireless G Notebook Network Card F5D7011, which now works).

Forum Support for this Wiki

nickm wrote a wicked howto on this forum for bcm43xx. If you have questions or need additional help please post there.

Using ndiswrapper

If your particular chipset is not supported by the bcm43xx driver in the kernel (as shown on the driver's website) you may need to install a driver using ndiswrapper. Depending on your chipset, you may even need to manually install a newer version of ndiswrapper.

Using the native drivers

Step 1: Obtaining the Firmware

The software that runs on the card itself is loaded onto the device by the driver prior to each use (this happens regardless of the operating system you are running this card on). Although the driver for the card is open source the firmware from the manufacturer is not. This warning may or may not be relevant: If/when Ubuntu do a kernel upgrade to 2.6.17 or later you MUST use wl_apsta.o (the script does that). The new module does not have the invalid AP bug. To obtain the wl_apsta.o visit http://svit.epfl.ch/stuff/wl_apsta.o. (From the bcm43xx team). The latest firmware package contains this driver. After enabling the Universe repository (see Repositories), install the bcm43xx-fwcutter package.

sudo apt-get install bcm43xx-fwcutter

Links to various drivers come with the package. View them via

zless /usr/share/doc/bcm43xx-fwcutter/README.gz

and pick one to download, or copy the .sys file from the Windows Installation CD that came with your hardware, in my case (Belkin F5D7011) the file is bcwl5.sys. To extract the firmware parts and install them to the correct location use the fwcutter application. You may have to extract the .sys file before the next step: if you downloaded an .exe, try to unzip it. If that fails, try to cabextract it (install the cabextract package). The file of interest is .sys. If you downloaded a .o, it is the file of interest.

sudo bcm43xx-fwcutter -w /lib/firmware/`uname -r` <downloaded file>

The firmware files will be copied to /lib/firmware/2.6.17-X. Where X is your kernel minor version (you can find out your kernel version by running uname -r ) - For the installation of the Belkin Card the "kernel" step was not required. For the installation on Asus A6U notebook [bcm4318 chipset], the right place seems to be /lib/firmware/(your kernel version). Alternatively you can run the provided script:

sudo /usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh

This will automatically download the firmware from the internet. Call me old fashioned, but I used the driver on my original Windows Install CD!

Firmware Packages

As an alternative to running the script, you can install the firmware files from a package. To automatically keep up to date, add this repository line to your /etc/apt/sources.list:

deb http://ubuntu.cafuego.net edgy-cafuego bcm43xx

and make sure apt knows about the GnuPG key used to sign the packages:

wget http://ubuntu.cafuego.net/969F3F57.gpg -O- | sudo apt-key add -

Then update your package listings and install the bcm43xx-firmware package:

sudo apt-get install bcm43xx-firmware

or download the package directly:

wget -c http://ubuntu.cafuego.net/pool/edgy-cafuego/bcm43xx/bcm43xx-firmware_1.3-1ubuntu2_all.deb

and then install it manually:

sudo dpkg -i bcm43xx-firmware_1.3-1ubuntu2_all.deb

Step 2: Loading module and checking card

Load the module:

sudo modprobe bcm43xx

The device gets loaded as either eth1/eth2 (some weird kernel bug, i am guessing). Find out which one it is by doing a

iwconfig

This should return the name of the interface as ethX. Check if you can scan for networks using

sudo iwlist ethX scan

Note: For some reason I could not scan for networks, the result of iwlist would be "no networks found", but when I entered the access point information manually it worked fine.

Step 3: Connecting to your network

Go to System -> Administration -> Network (if using gnome). click on your wireless card, click Properties, click "enable connection" and enter your wireless network details. To make it easier to manage your network connections. Install the following package, with apt-get or Synaptic:-

sudo apt-get install network-manager
sudo apt-get install network-manager-gnome

Or, for kubuntu:-

sudo apt-get install network-manager
sudo apt-get install network-manager-kde

This will install another Network Icon next to your Network Connection icon. This will allow you to manage your wireless connections. Everything should now work. It should also work every time you turn on your computer without further configuration.

Step 4: Configuration of WPA

wpa_supplicant is installed by default, if not, install the package "wpasupplicant". - Create the file /etc/wpa_supplicant.conf and insert the following:

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
    ssid="<your accesspoints essid>"
    scan_ssid=1
    psk="<your wpa passphrase in plaintext>"
}

- Make this file readable only for root

sudo chmod go-rwx /etc/wpa_supplicant.conf

- Edit /etc/network/interfaces:

auto ethX
iface ethX inet dhcp
wireless-essid <your accesspoints essid>
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf

- Finally, test it by restarting the wireless interface

sudo ifdown ethX
sudo ifup ethX

Resources


Bcm43xx as ap

link I found on it working as an ap