个人工具

“UbuntuHelp:WifiDocs/Driver/bcm43xx/Dapper”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
第236行: 第236行:
 
== Reader Comments ==
 
== Reader Comments ==
 
* Dapper section needs cleanup, testing, and expansion... towsonu2003 02.08.2006
 
* Dapper section needs cleanup, testing, and expansion... towsonu2003 02.08.2006
* Both scripts should be merged # VenkatRaghavan 02.12.2006
+
* Both scripts should be merged . VenkatRaghavan 02.12.2006
 
* On my Acer Ferrari 4005 this driver needs to be set to freq 11M so I can use WEP/WPA: sudo iwconfig eth1 rate 11M
 
* On my Acer Ferrari 4005 this driver needs to be set to freq 11M so I can use WEP/WPA: sudo iwconfig eth1 rate 11M
 
* the /etc/network/interfaces system probably understands lines like "wireless-foo arg" to mean "iwconfig [correctInterface] foo arg". Using that shortcut would simplify some of the lines shown above. -drewp
 
* the /etc/network/interfaces system probably understands lines like "wireless-foo arg" to mean "iwconfig [correctInterface] foo arg". Using that shortcut would simplify some of the lines shown above. -drewp
第246行: 第246行:
 
* Following previous entry, I tried to use "post-up iwconfig eth1 ap any" and "post-up iwconfig eth1 rate 54M" but it didn't work, presumably because it takes a while before something is initialised. Perhaps a post-up pause for ten seconds could go first?
 
* Following previous entry, I tried to use "post-up iwconfig eth1 ap any" and "post-up iwconfig eth1 rate 54M" but it didn't work, presumably because it takes a while before something is initialised. Perhaps a post-up pause for ten seconds could go first?
 
* I got my Dell Truemobile 1400 working (FINALLY) but required using ndiswrapper as opposed to bcm43xx. Look at [http://www.seungpyo.com/stacksandpiles/2006/07/02/broadcom-wireless-in-ubuntu-dapper-606/ my article] regarding the install process.
 
* I got my Dell Truemobile 1400 working (FINALLY) but required using ndiswrapper as opposed to bcm43xx. Look at [http://www.seungpyo.com/stacksandpiles/2006/07/02/broadcom-wireless-in-ubuntu-dapper-606/ my article] regarding the install process.
** If you want my honest opinion, I'd rather listen to Vogon Poetry than install a Broadcom WiFi driver under Linux, however Dave's instructions for installing the Dell TrueMobile 1400 card (link above) worked perfectly for my Dell Inspirion 5160: Dell TrueMobile 1350.  Thanks Dave!
+
* If you want my honest opinion, I'd rather listen to Vogon Poetry than install a Broadcom WiFi driver under Linux, however Dave's instructions for installing the Dell TrueMobile 1400 card (link above) worked perfectly for my Dell Inspirion 5160: Dell TrueMobile 1350.  Thanks Dave!
 
* I really couldn't follow the discussion above, so here's the shortened version which worked for one of my students:
 
* I really couldn't follow the discussion above, so here's the shortened version which worked for one of my students:
*# Since you probably don't have net access without the wireless card, use another machine to download the [http://packages.ubuntu.com/dapper/utils/bcm43xx-fwcutter bcm43xx-fwcutter package] and the firmware update that the bcm43xx team recommends, [http://drinus.net/airport/wl_apsta.o wl_apsta.o]. (You may have to right-click that firmware link to avoid having it open in its own window and save it to disk.)
+
<ol><li>Since you probably don't have net access without the wireless card, use another machine to download the [http://packages.ubuntu.com/dapper/utils/bcm43xx-fwcutter bcm43xx-fwcutter package] and the firmware update that the bcm43xx team recommends, [http://drinus.net/airport/wl_apsta.o wl_apsta.o]. (You may have to right-click that firmware link to avoid having it open in its own window and save it to disk.)
*## Boot into Ubuntu, copy those two files onto your desktop, and do the following:
+
</li><li>Boot into Ubuntu, copy those two files onto your desktop, and do the following:</li></ol>
 +
 
 
<pre><nowiki>cd ~/Desktop
 
<pre><nowiki>cd ~/Desktop
 
sudo dpkg -i bcm43xx-fwcutter
 
sudo dpkg -i bcm43xx-fwcutter
 
sudo bcm43xx-fwcutter -w /lib/firmware wl_apsta.o </nowiki></pre> That should move your current directory to the desktop, install the firmware updater, and drop the firmware image in the right spot.
 
sudo bcm43xx-fwcutter -w /lib/firmware wl_apsta.o </nowiki></pre> That should move your current directory to the desktop, install the firmware updater, and drop the firmware image in the right spot.
# All you need to do now is to take down the driver and then bring it back up so the new firmware will load.
+
<ol><li>All you need to do now is to take down the driver and then bring it back up so the new firmware will load.</li></ol>
 +
 
 
<pre><nowiki>sudo ifconfig eth1 down
 
<pre><nowiki>sudo ifconfig eth1 down
 
sudo ifconfig eth1 up</nowiki></pre> You may have to use eth2 instead of eth1. Using <code><nowiki>lspci</nowiki></code> should tell you.
 
sudo ifconfig eth1 up</nowiki></pre> You may have to use eth2 instead of eth1. Using <code><nowiki>lspci</nowiki></code> should tell you.
# Go into System->Administration->Networking, and you should be good to go.
+
<ol><li>Go into System->Administration->Networking, and you should be good to go.</li></ol>
 +
 
 
* As of 2006/08/11, http://drinus.net/airport/wl_apsta.o is down. Maybe somebody who has the file should put it on Gnutella (and put the checksum here) or make a Bittorrent, that way it would be easier to get. For the mean time, the firmware deb package seems to be up to date and available. Should we update the article to reflect this or is the situation temporary?
 
* As of 2006/08/11, http://drinus.net/airport/wl_apsta.o is down. Maybe somebody who has the file should put it on Gnutella (and put the checksum here) or make a Bittorrent, that way it would be easier to get. For the mean time, the firmware deb package seems to be up to date and available. Should we update the article to reflect this or is the situation temporary?
 
* I have my BCM4318 working reliably (though not perfectly) on an Acer Aspire 3023 WLMi, Ubuntu Dapper, bcm43xx, nm-applet and critically, acerhk. I've found that I have to disable the network from the nm-applet right click menu, remove and reinsert the bcm43xx kernel module then activate the card with acerhk. More detailed instructions on [http://doube.net/bcm4318.html my page].
 
* I have my BCM4318 working reliably (though not perfectly) on an Acer Aspire 3023 WLMi, Ubuntu Dapper, bcm43xx, nm-applet and critically, acerhk. I've found that I have to disable the network from the nm-applet right click menu, remove and reinsert the bcm43xx kernel module then activate the card with acerhk. More detailed instructions on [http://doube.net/bcm4318.html my page].

2007年12月6日 (四) 15:50的版本

Using Broadcom Wireless in Ubuntu Dapper 6.06

There are two ways to use the broadcom chipset. One is using ndiswrapper (which works only on x86), and other is to use the native drivers in the kernel.

Upgrading to Dapper, keeping ndiswrapper

If you have upgraded from Breezy Badger to Dapper Drake and your ndiswrapper wireless is broken (and you have a broadcom 43xx card) and you would like to still use ndiswrapper, you can easily disable the bcm43xx driver by running:

echo 'blacklist bcm43xx' | sudo tee -a /etc/modprobe.d/blacklist

This will ensure that the bcm43xx driver doesn't load at startup and will therefore not conflict with ndiswrapper. To get it working without a reboot, you must unload the native driver and load up ndiswrapper. Simply run these commands:

sudo rmmod bcm43xx
sudo rmmod ndiswrapper
sudo modprobe ndiswrapper

Using NDISWRAPPER (an automated installation)

I knno it's not usual to direct people from the wiki to a forum but here's the best way to get ndiswapper setup with Network Manager. It's quick and easy and automated, also there is a supportive forum in case you run into issues. HERE IS the Best Automated ndiswrapper installation I've ever found!

Using the New Broadcom Driver

Airport Extreme cards found on most Apple laptops use this chipset. The Dapper kernel has support inbuilt for the Broadcom device. You should be able to get the card working in Dapper by following the steps below. WARNING: There have been reports the firmware package mentioned below can hang the system at bootup in Apple Powerbooks with a 4318 controller! Check whether you have one of these using:

lspci -v

Prerequisites

You must broadcast your essid from your router. This is not essential, and the wireless card will connect if broadcast is turned off and you specify the essid by hand, but it makes it easier to test. Don't use ifup and ifdown until you configure your /etc/network/interfaces file. (see below for instructions on howto do that here.) You must remove ndiswrapper if you were using it before, instructions on how can be found head-f63b172ef162fdab65dae57bbd33e6df20ca4114 here; You must remove wifi-radar, as it has a conflict with the driver.

Obtaining the Firmware

You don't need to compile the driver as a precompiled module is present. However, we need to obtain the firmware for the card from a windows, Mac OS X or Access Point driver.

Extract it Yourself

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://drinus.net/airport/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. Extract the firmware parts and install them to the correct location. You may have to extract the .sys and .inf files 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 <downloaded file>

The driver files will be copied to /lib/firmware. Alternatively you can run the provided script.

sudo /usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh
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 dapper-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. or download the package directly:

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

and then install it manually:

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

Setting up the Wireless Card

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

VERY IMPORTANT: MOST PEOPLE NEED TO USE THE FOLLOWING COMMAND TO GET CONNECTED sudo iwconfig ethX rate 11M You can add this to you /etc/network/interfaces file to get connected at startup. Like so:

iface eth1 inet dhcp
     pre-up iwconfig eth1 rate 11M

Alternatively just add "rate 11M" to /etc/network/interfaces like this example of an 802.11b WEP network:

iface eth1 inet dhcp
wireless-rate 11M
wireless-essid My network
wireless-key 1234-5678-9abc-def0-1234-5678-9a

You might also need to add this to associate your wifi card automatically:

pre-up ifconfig eth1 up

If when you type iwconfig eth1 you get

eth1      IEEE 802.11b/g  ESSID:"troublemaker"  Nickname:"Broadcom 4318"
          Mode:Managed  Frequency=2.437 GHz  Access Point: '''Invalid'''
          Bit Rate=11 Mb/s   Tx-Power=18 dBm
          RTS thr:off   Fragment thr:off

you need to run

sudo iwconfig eth1 ap any

this will fix it, it might also do to add this to you /etc/network/interfaces file, (sounds like a good time to make a script? and runn that with preup?) This has been fixed as of kernel 2.6.17. You must use wl_apsta.o ( http://drinus.net/airport/wl_apsta.o) with that kernel to fix the problem (from the bcm43xx team) here's an example of my startup script

sudo ifconfig $myInterface up &>/dev/null
sudo iwconfig $myInterface essid $myEssid &>/dev/null
sudo iwconfig $myInterface rate 11M # &>/dev/null

note I don't know if 'sudo' is needed or 'if ifconfig ethX up' is needed but I use it and it works Note 'sudo iwconfid eth1' will report any WEP key, but 'iwconfig eth1' (as unprivileged user) does not.

NetworkManager

As of kernel 2.6.15-20, the driver appears to play nice with NetworkManager and nm-applet. When trying this, make sure wpasupplicant is disabled in /etc/default/wpasupplicant and all lines referring to the wireless card in /etc/network/interfaces are commented out.

Security

WPA works, but wpasupplicant may hang your machine when the interface is deconfigured via /sbin/ifdown. Sample options from /etc/default/wpasupplicant

OPTIONS="-i eth0 -D wext -c /etc/wpa_supplicant.conf"

Troubleshooting in Dapper

Were you using NDISwrapper ? OR Crashing when trying to use Networking

try

sudo rmmod bcm43xx
sudo rmmod ndiswrapper
sudo modprobe bcm43xx

Then run one of the below scipts If your card starts to work then you need to remove ndiswrapper from your system follow the steps in `Removing Ndiswrapper` from the Breezy section above.

Kernel boot parameters

At least some HP laptops seems to need altering of kernel boot parameters. You could try to add

noapic

to your kernel boot parameters or even

noapic noacpi

if first one is not enough.

Scripts to get Connectivity

Here are Two Scripts to get Connectivity: Both will prompt for root password (use: ./[script-name])

Managed Connectivity Script
#!/bin/bash
interface=eth1 # fill in whatever your interface is here it should typically be eth1
# Turning off other network devices"
sudo ifconfig eth0 down # assumes you have a wired NIC remove if you don't have one
sudo modprobe bcm43xx
# setting wireless device parameters
sudo ifconfig $interface up # This step is very very important!
sudo iwconfig $interface essid your_essid_here
sudo iwconfig $interface mode managed
# sudo iwconfig $interface mode auto # another suggested mode
sudo iwconfig $interface key off # see man iwconfig for wireless encrpytion
echo "Setting up dhcp"
sudo dhclient $interface
Connectivity Script For Beginners

`It must be run as root to work.` i.e (sudo ./[script-name]) Good script for beginners, if you don't know how to run a script: google it and then use this one, don't read this script unless you understand scripting already as it's ugly to read. Run the script without arguments and this script will try and auto connect to your most likely interface and essid to use:

#!/bin/bash
if [ "$1" == --help ]
then
  echo "Listing of ESSID's"
  # Lists the availble ESSIDs
       iwlist  scan | grep ESSID
  echo "Likely interface: "
  # Grabs the name of the interface that succefully scanned
  iwlist scan | grep completed | sed "s/Scan\scompleted\s://g"
  echo "+++++++++++++++++++++++++++++++++++++++++++++++  "
  echo "Usage: getit [interface] [essid]  "
  echo "Pick one of the above interface and essid's"
  echo "use the interface that had the essids"
  echo "+++++++++++++++++++++++++++++++++++++++++++++++  "
  exit
fi
if [ -z $2 ] ; then
	myEssid=any
else
	myEssid=$2
fi

if [ -z $1 ] ; then
	myInterface="eth1"   # typically eth1 but may be something else
else
	myInterface=$1
fi

echo "Bringing network down"
sudo ifconfig $myInterface down &>/dev/null
echo "Bringing network back up"
sudo ifconfig $myInterface up &>/dev/null
echo "Changing to $myEssid"
sudo iwconfig $myInterface essid $myEssid &>/dev/null
echo "Changing to rate to 11M"       # this isn't always necessary but helps for Broadcom 4318 cards

sudo iwconfig $myInterface rate 11M &>/dev/null     # if your having issue getting connected to a network
echo "acquiring IP"
sudo dhclient $myInterface

The forum link (applies to Dapper, to be released around 6/2006) where this is discussed is http://ubuntuforums.org/showthread.php?t=114922


Changing Back to ndiswrapper

If the driver isn't for you then you can change back to ndiswrapper by following the above breezy steps for installing bcml4344. You also need to make the additional step of adding bcml43xx to /etc/modprobe.d/blacklist so that the driver isn't automatically added into the kernel at boot. The quick command to do this is: echo "blacklist bcm43xx" | sudo tee -a /etc/modprobe.d/blacklist

Resources

Security

WPA works, but wpasupplicant may hang your machine when the interface is deconfigured via /sbin/ifdown.

Bugs

My Linksys PCI card occasionally crashes the computer when someone tries to use my wireless connection (I've set up my desktop to share its wired internet connection).

Reader Comments

  • Dapper section needs cleanup, testing, and expansion... towsonu2003 02.08.2006
  • Both scripts should be merged . VenkatRaghavan 02.12.2006
  • On my Acer Ferrari 4005 this driver needs to be set to freq 11M so I can use WEP/WPA: sudo iwconfig eth1 rate 11M
  • the /etc/network/interfaces system probably understands lines like "wireless-foo arg" to mean "iwconfig [correctInterface] foo arg". Using that shortcut would simplify some of the lines shown above. -drewp
  • On my Acer Aspire 5024 Amd64 based the ndiswrapper module provided with amd64-k8 ubuntu kernel didn't work, and I had to build it from sources available at http://prdownloads.sourceforge.net/ndiswrapper/ndiswrapper-1.13.tar.gz?download
  • This document is a must and should be included in the OFFLINE Dapper documentation. I already have a bug filed about this here https://launchpad.net/bugs/42453 please comment -thanks
  • I have had success with a Belkin BCM4306 F5D7000 Rev 2.0. However I can no longer access System -> Administration -> Networking without it breaking the install. Also I think more info should be provided re the scripts and how to get them to run at startup. the_tiger 05.05.2006
  • I finally got the BCM4306 in my iBook working with the Dapper kernel. Critical things for me (in addition to these docs) were: 1) Had to change my network to use Open System authentication, it didn't work with Shared Key. 2) Added "post-up iwlist eth1 scan" to my interfaces file. I also added "post-up iwconfig eth1 rate 54M", since 11M is now the default, and 54M seemed much stable for me (less packet loss). 3) Added a script to /etc/apm/resume.d which runs "ifdown eth1; ifup eth1" to re-associate when the computer resumes from sleep. - JohnSteeleScott 31.05.2006
  • I got my BCM4318 to work reliably by adding "pre-up ifconfig eth1 up" to my /etc/network/interfaces I'm not sure why this works, but I would presume ifup is issuing my wireless-* iwconfig options before bringing up the interface. NM also works for me with this driver connecting to a WEP-protected wlan. - hackel 06.06.06
  • Following previous entry, I tried to use "post-up iwconfig eth1 ap any" and "post-up iwconfig eth1 rate 54M" but it didn't work, presumably because it takes a while before something is initialised. Perhaps a post-up pause for ten seconds could go first?
  • I got my Dell Truemobile 1400 working (FINALLY) but required using ndiswrapper as opposed to bcm43xx. Look at my article regarding the install process.
  • If you want my honest opinion, I'd rather listen to Vogon Poetry than install a Broadcom WiFi driver under Linux, however Dave's instructions for installing the Dell TrueMobile 1400 card (link above) worked perfectly for my Dell Inspirion 5160: Dell TrueMobile 1350. Thanks Dave!
  • I really couldn't follow the discussion above, so here's the shortened version which worked for one of my students:
  1. Since you probably don't have net access without the wireless card, use another machine to download the bcm43xx-fwcutter package and the firmware update that the bcm43xx team recommends, wl_apsta.o. (You may have to right-click that firmware link to avoid having it open in its own window and save it to disk.)
  2. Boot into Ubuntu, copy those two files onto your desktop, and do the following:
cd ~/Desktop
sudo dpkg -i bcm43xx-fwcutter
sudo bcm43xx-fwcutter -w /lib/firmware wl_apsta.o 
That should move your current directory to the desktop, install the firmware updater, and drop the firmware image in the right spot.
  1. All you need to do now is to take down the driver and then bring it back up so the new firmware will load.
sudo ifconfig eth1 down
sudo ifconfig eth1 up
You may have to use eth2 instead of eth1. Using lspci should tell you.
  1. Go into System->Administration->Networking, and you should be good to go.
  • As of 2006/08/11, http://drinus.net/airport/wl_apsta.o is down. Maybe somebody who has the file should put it on Gnutella (and put the checksum here) or make a Bittorrent, that way it would be easier to get. For the mean time, the firmware deb package seems to be up to date and available. Should we update the article to reflect this or is the situation temporary?
  • I have my BCM4318 working reliably (though not perfectly) on an Acer Aspire 3023 WLMi, Ubuntu Dapper, bcm43xx, nm-applet and critically, acerhk. I've found that I have to disable the network from the nm-applet right click menu, remove and reinsert the bcm43xx kernel module then activate the card with acerhk. More detailed instructions on my page.
  • The 4318 chipset isn't officially supported as of August 07, 2006. You will encounter problems; these are currently being worked on. See here for more info.

- Patch for Broadcom BCM4318 [1]