个人工具

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

来自Ubuntu中文

跳转至: 导航, 搜索
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Dapper}}
 
{{From|https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Dapper}}
 
{{Languages|UbuntuHelp:WifiDocs/Driver/bcm43xx/Dapper}}
 
{{Languages|UbuntuHelp:WifiDocs/Driver/bcm43xx/Dapper}}
 
 
 
 
== Using Broadcom Wireless in Ubuntu Dapper 6.06 ==
 
== 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.
 
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 ===
 
=== 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:
 
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:
 
<pre><nowiki>
 
<pre><nowiki>
第15行: 第9行:
 
</nowiki></pre>
 
</nowiki></pre>
 
This will ensure that the bcm43xx driver doesn't load at startup and will therefore not conflict with ndiswrapper.
 
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:
 
To get it working without a reboot, you must unload the native driver and load up ndiswrapper. Simply run these commands:
 
<pre><nowiki>
 
<pre><nowiki>
第22行: 第15行:
 
sudo modprobe ndiswrapper
 
sudo modprobe ndiswrapper
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Using NDISWRAPPER (an automated installation) ===
 
=== 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.
 
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.
 
 
[http://ubuntuforums.org/showthread.php?t=197102 HERE IS the Best Automated ndiswrapper installation I've ever found! ]
 
[http://ubuntuforums.org/showthread.php?t=197102 HERE IS the Best Automated ndiswrapper installation I've ever found! ]
 
 
=== Using the New Broadcom Driver ===
 
=== 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.
 
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:
 
'''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:
 
<pre><nowiki>
 
<pre><nowiki>
 
lspci -v
 
lspci -v
 
</nowiki></pre>
 
</nowiki></pre>
 
 
==== Prerequisites ====
 
==== 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.
 
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 [http://ubuntuforums.org/showpost.php?p=899926&postcount=24 here].)
 
Don't use ifup and ifdown until you configure your /etc/network/interfaces file.  (see below for instructions on howto do that [http://ubuntuforums.org/showpost.php?p=899926&postcount=24 here].)
 
 
You must remove ndiswrapper if you were using it before, instructions on how can be found [[head-f63b172ef162fdab65dae57bbd33e6df20ca4114 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.
 
You must remove wifi-radar, as it has a conflict with the driver.
 
 
==== Obtaining the Firmware ====
 
==== 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.
 
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 =====
 
===== 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).'''
 
'''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.'''
 
'''The latest firmware package contains this driver.'''
 
 
After enabling the Universe repository (see [[UbuntuHelp:Repositories]]), install the '''bcm43xx-fwcutter''' package.
 
After enabling the Universe repository (see [[UbuntuHelp:Repositories]]), install the '''bcm43xx-fwcutter''' package.
 
<pre><nowiki>
 
<pre><nowiki>
第65行: 第44行:
 
and pick one to download.
 
and pick one to download.
 
Extract the firmware parts and install them to the correct location.  
 
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.
 
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.
 
If you downloaded a .o, it is the file of interest.
 
<pre><nowiki>
 
<pre><nowiki>
第73行: 第50行:
 
</nowiki></pre>
 
</nowiki></pre>
 
The driver files will be copied to '''/lib/firmware'''.
 
The driver files will be copied to '''/lib/firmware'''.
 
 
Alternatively you can run the provided script.
 
Alternatively you can run the provided script.
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo /usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh
 
sudo /usr/share/bcm43xx-fwcutter/install_bcm43xx_firmware.sh
 
</nowiki></pre>
 
</nowiki></pre>
 
 
===== Firmware Packages =====
 
===== 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:
 
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:
 
<pre><nowiki>
 
<pre><nowiki>
第91行: 第64行:
 
</nowiki></pre>
 
</nowiki></pre>
 
Then update your package listings and install the '''bcm43xx-firmware''' package.
 
Then update your package listings and install the '''bcm43xx-firmware''' package.
 
 
or download the package directly:
 
or download the package directly:
 
<pre><nowiki>
 
<pre><nowiki>
第100行: 第72行:
 
sudo dpkg -i bcm43xx-firmware_1.3-1ubuntu1_all.deb
 
sudo dpkg -i bcm43xx-firmware_1.3-1ubuntu1_all.deb
 
</nowiki></pre>
 
</nowiki></pre>
 
 
 
==== Setting up the Wireless Card ====
 
==== Setting up the Wireless Card ====
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo modprobe bcm43xx
 
sudo modprobe bcm43xx
 
</nowiki></pre>
 
</nowiki></pre>
 
 
The device gets loaded as either eth1/eth2 (some weird kernel bug, i am guessing). Find out which one it is by doing a
 
The device gets loaded as either eth1/eth2 (some weird kernel bug, i am guessing). Find out which one it is by doing a
 
<pre><nowiki>
 
<pre><nowiki>
 
iwconfig
 
iwconfig
 
</nowiki></pre>
 
</nowiki></pre>
 
 
This should return the name of the interface as '''ethX'''. Check if you can scan for networks using
 
This should return the name of the interface as '''ethX'''. Check if you can scan for networks using
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo iwlist ethX scan
 
sudo iwlist ethX scan
 
</nowiki></pre>
 
</nowiki></pre>
 
 
'''VERY IMPORTANT: MOST PEOPLE NEED TO USE THE FOLLOWING COMMAND TO GET CONNECTED'''
 
'''VERY IMPORTANT: MOST PEOPLE NEED TO USE THE FOLLOWING COMMAND TO GET CONNECTED'''
 
 
<code><nowiki> sudo iwconfig ethX rate 11M </nowiki></code>
 
<code><nowiki> sudo iwconfig ethX rate 11M </nowiki></code>
 
 
You can add this to you /etc/network/interfaces file to get connected at startup. Like so:
 
You can add this to you /etc/network/interfaces file to get connected at startup. Like so:
 
<pre><nowiki>
 
<pre><nowiki>
第134行: 第98行:
 
wireless-key 1234-5678-9abc-def0-1234-5678-9a
 
wireless-key 1234-5678-9abc-def0-1234-5678-9a
 
</nowiki></pre>
 
</nowiki></pre>
 
 
You might also need to add this to associate your wifi card automatically:
 
You might also need to add this to associate your wifi card automatically:
 
<pre><nowiki>
 
<pre><nowiki>
 
pre-up ifconfig eth1 up
 
pre-up ifconfig eth1 up
 
</nowiki></pre>
 
</nowiki></pre>
 
 
If when you type <code><nowiki>iwconfig eth1</nowiki></code> you get
 
If when you type <code><nowiki>iwconfig eth1</nowiki></code> you get
 
<pre><nowiki>
 
<pre><nowiki>
第161行: 第123行:
 
</nowiki></pre>
 
</nowiki></pre>
 
''note I don't know if 'sudo' is needed or 'if ifconfig ethX up' is needed but I use it and it works''
 
''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.
 
Note 'sudo iwconfid eth1' will report any WEP key, but 'iwconfig eth1' (as unprivileged user) does not.
 
 
=== NetworkManager ===
 
=== 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.
 
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 ===
 
=== Security ===
 
 
WPA works, but wpasupplicant may hang your machine when the interface is deconfigured via /sbin/ifdown.
 
WPA works, but wpasupplicant may hang your machine when the interface is deconfigured via /sbin/ifdown.
 
 
Sample options from '''/etc/default/wpasupplicant'''
 
Sample options from '''/etc/default/wpasupplicant'''
 
 
<pre><nowiki>
 
<pre><nowiki>
 
OPTIONS="-i eth0 -D wext -c /etc/wpa_supplicant.conf"
 
OPTIONS="-i eth0 -D wext -c /etc/wpa_supplicant.conf"
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Troubleshooting in Dapper ===
 
=== Troubleshooting in Dapper ===
 
 
==== Were you using NDISwrapper ? OR Crashing when trying to use Networking ====
 
==== Were you using NDISwrapper ? OR Crashing when trying to use Networking ====
 
try
 
try
第187行: 第141行:
 
</nowiki></pre>
 
</nowiki></pre>
 
Then run one of the below scipts
 
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.
 
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 ====
 
==== Kernel boot parameters ====
 
 
At least some HP laptops seems to need altering of kernel boot parameters. You could try to add
 
At least some HP laptops seems to need altering of kernel boot parameters. You could try to add
 
<pre><nowiki>
 
<pre><nowiki>
第201行: 第152行:
 
</nowiki></pre>
 
</nowiki></pre>
 
if first one is not enough.
 
if first one is not enough.
 
 
==== Scripts to get Connectivity ====
 
==== Scripts to get Connectivity ====
 
 
Here are Two Scripts to get Connectivity:
 
Here are Two Scripts to get Connectivity:
 
 
Both will prompt for root password (use: ./[script-name])
 
Both will prompt for root password (use: ./[script-name])
 
 
===== Managed Connectivity Script =====
 
===== Managed Connectivity Script =====
 
<pre><nowiki>
 
<pre><nowiki>
第224行: 第171行:
 
sudo dhclient $interface
 
sudo dhclient $interface
 
</nowiki></pre>
 
</nowiki></pre>
 
 
===== Connectivity Script For Beginners =====
 
===== Connectivity Script For Beginners =====
 
`It must be run as root to work.` i.e (sudo ./[script-name])
 
`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.
 
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:
 
Run the script without arguments and this script will try and auto connect to your most likely interface and essid to use:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
#!/bin/bash
 
#!/bin/bash
第254行: 第197行:
 
myEssid=$2
 
myEssid=$2
 
fi
 
fi
 
 
if [ -z $1 ] ; then
 
if [ -z $1 ] ; then
 
myInterface="eth1"  # typically eth1 but may be something else
 
myInterface="eth1"  # typically eth1 but may be something else
第260行: 第202行:
 
myInterface=$1
 
myInterface=$1
 
fi
 
fi
 
 
echo "Bringing network down"
 
echo "Bringing network down"
 
sudo ifconfig $myInterface down &>/dev/null
 
sudo ifconfig $myInterface down &>/dev/null
第268行: 第209行:
 
sudo iwconfig $myInterface essid $myEssid &>/dev/null
 
sudo iwconfig $myInterface essid $myEssid &>/dev/null
 
echo "Changing to rate to 11M"      # this isn't always necessary but helps for Broadcom 4318 cards
 
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
 
sudo iwconfig $myInterface rate 11M &>/dev/null    # if your having issue getting connected to a network
 
echo "acquiring IP"
 
echo "acquiring IP"
 
sudo dhclient $myInterface
 
sudo dhclient $myInterface
 
 
</nowiki></pre>
 
</nowiki></pre>
 
 
The forum link (applies to Dapper, to be released around 6/2006) where this is discussed is http://ubuntuforums.org/showthread.php?t=114922
 
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 ====
 
==== 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
 
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.
 
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:
 
The quick command to do this is:
 
 
<code><nowiki>echo "blacklist bcm43xx" | sudo tee -a /etc/modprobe.d/blacklist</nowiki></code>
 
<code><nowiki>echo "blacklist bcm43xx" | sudo tee -a /etc/modprobe.d/blacklist</nowiki></code>
 
 
 
=== Resources ===
 
=== Resources ===
 
* [http://ubuntuforums.org/showthread.php?t=114922 Forum posting] about drivers included in Dapper
 
* [http://ubuntuforums.org/showthread.php?t=114922 Forum posting] about drivers included in Dapper
第293行: 第226行:
 
* [http://openfacts.berlios.de/index-en.phtml?title=Bcm43xxDevices Devices which work with the open driver]
 
* [http://openfacts.berlios.de/index-en.phtml?title=Bcm43xxDevices Devices which work with the open driver]
 
* [http://wifinetnews.com/archives/006116.html Driver news article]
 
* [http://wifinetnews.com/archives/006116.html Driver news article]
 
 
=== Security ===
 
=== Security ===
 
 
WPA works, but wpasupplicant may hang your machine when the interface is deconfigured via /sbin/ifdown.
 
WPA works, but wpasupplicant may hang your machine when the interface is deconfigured via /sbin/ifdown.
 
 
=== Bugs ===
 
=== 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).
 
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 ==
 
== 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
第317行: 第244行:
 
** 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.)
+
*# 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:
+
*## Boot into Ubuntu, copy those two files onto your desktop, and do the following:
 
<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.
+
# All you need to do now is to take down the driver and then bring it back up so the new firmware will load.
 
<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.
+
# 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?
 
* 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].
 
* The 4318 chipset isn't officially supported as of August 07, 2006. You ''will'' encounter problems; these are currently being worked on. See [http://bcm43xx.spugna.org/index.php?topic=110 here] for more info.
 
* The 4318 chipset isn't officially supported as of August 07, 2006. You ''will'' encounter problems; these are currently being worked on. See [http://bcm43xx.spugna.org/index.php?topic=110 here] for more info.
 
 
- Patch for Broadcom BCM4318 [http://zork.gnu.cl/bcwl-patch.tar.gz]
 
- Patch for Broadcom BCM4318 [http://zork.gnu.cl/bcwl-patch.tar.gz]
 
----
 
----

2007年11月30日 (五) 22:21的版本

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 UbuntuHelp: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.)
      1. 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]