2010-05-23: B43 works out of the box with the 14e4:4315 card in Ubuntu 10.04 LTS with PIO mode on and QOS off (on kernel 2.6.33.4 or 2.6.34).
So, basically, this is how to get it working:
Download the 2.6.33.4 or the 2.6.34 kernel from:
[2.6.33.4]
http://kernel.ubuntu.com/~kernel-ppa....6.33.4-lucid/
[2.6.34]
http://kernel.ubuntu.com/~kernel-ppa...v2.6.34-lucid/
You need to install:
linux-headers-*-<amd64/i386>.deb
linux-headers-*-all.deb
linux-image-*-<amd64/i386>.deb
and then run:
Code:
sudo touch /etc/modprobe.d/b43.conf
echo "options b43 pio=1 qos=0" | sudo tee -a /etc/modprobe.d/b43.conf
and reboot and that's it :D.
OR to manually load it during an active seesion:
Code:
sudo rmmod b43
sudo modprobe b43 pio=1 qos=0
NOTE:
(1) PIO mode is good for downloads and uploads and anything involving a browser, but is very slow when transferring files through any protocol besides HTTP/HTTPS/UDP-Torrent.
(2) Since this wireless card is slow under PIO mode, I don't know if the packet injection speed is fast enough for Aircrack-ng.
------------------------------------------------------------------------------------------------------------
PLEASE DO NOT USE ANY OF THE INSTRUCTIONS BELOW. THEY ARE HERE FOR INFORMATION AND HISTORICAL PURPOSES ONLY.
2010-03-25: After testing distro to distro, I can finally conclude that b43 WILL WORK PERFECTLY in DMA mode with any Linux system running kernel 2.6.33. Is that great or what?
2010-02-24: Kernel 2.6.32-14.20-generic works with b43 on Karmic...finally:D[COLOR="Green] (thanks to mikeioannina for testing).[/COLOR]
2010-02-21: rlelliott has been kind enough to write a guide, based on his testing, on how to get the b43 driver working under Ubuntu 10.04 Lucid (daily image). The guide can be found here: http://docs.google.com/View?id=dhkq5635_11f3hjxdp6. Unfortunately, there's still no was to get the card working in Karmic besides using the 2.6.32-11-generic kernel.
2010-02-12: Works on SOME routers under kernel 2.6.32-12-generic and compat-wireless-2010-02-01. My router settings are: Region=US; Channel=11; Encryption=WPA2-PSK (AES).
2010-02-07: Not working under any kernel, except 2.6.32-11-generic, which does not exist under the Ubuntu Lucid alpha testing repo anymore.
2010-02-07: Changed links for 2.6.32-12.17-generic.
2010-02-03: Changed links for 2.6.32-12.16-generic; Untested.
2010-01-29: Working kernel: 2.6.32-11-generic; Working compat-wireless: compat-wireless-2010-01-24.
---
I have good new for everybody :D. B43 finally working without crashes and kernel panics AND it works perfectly with Aircrack-NG now! First of all, you will be using the ALPHA/BETA kernel from LUCID (10.04), which is kernel 2.6.32-14-generic. It is a DEVELOPMENT release, but works perfectly nonetheless.
So, here we go:
Before you even get the kernel, you should download and install the b43 device firmware. Make sure you have the package "git-core" installed then follow the instructions at this link: http://linuxwireless.org/en/users/Drivers/b43#fw-b43-lp. It's very easy to follow. They're copy and paste commands.
First of all, download and install the new kernel:
i386 (32 bit)
---------------
http://mirrors.kernel.org/ubuntu/poo...14.20_i386.deb
http://mirrors.kernel.org/ubuntu/poo...14.20_i386.deb
http://mirrors.kernel.org/ubuntu/poo...-14.20_all.deb
i386-PAE (32 bit with > 4 GB of RAM)
---------------------------------------------
http://mirrors.kernel.org/ubuntu/poo...14.20_i386.deb
http://mirrors.kernel.org/ubuntu/poo...14.20_i386.deb
http://mirrors.kernel.org/ubuntu/poo...-14.20_all.deb
amd64 (64 bit)
----------------
http://mirrors.kernel.org/ubuntu/poo...4.20_amd64.deb
http://mirrors.kernel.org/ubuntu/poo...4.20_amd64.deb
http://mirrors.kernel.org/ubuntu/poo...-14.20_all.deb
I like to download the packages to a new folder, and then run:
Code:
sudo dpkg -i linux*2.6.*.deb
in the folder.
Sooooo, after you download the new kernel, boot into it by choosing it from the GRUB boot menu.
Then, head on over here: http://linuxwireless.org/download/compat-wireless-2.6/ and download the latest compat-wireless-2010-**-**.tar.gz package to anywhere, preferably an easy to remember location. The package as of now is, compat-wireless-2010-01-26.tar.bz2. I will be using this version for the commands below. Adjust the commands below based on the file you downloaded.
Open up a Terminal and change to the directory you downloaded the file to:
Code:
cd /your/path/to/the/directory
Extract the file you downloaded:
Code:
tar jxvf compat-wireless-2010-01-26.tar.bz2
Change to the extracted directory:
Code:
cd compat-wireless-2010-01-26
Compile the drivers:
Install the drivers:
Unload the current drivers: (if you are using the Broadcom STA Driver, run "sudo rmmod wl" first)
Refresh the drivers/modules for the current kernel:
Code:
sudo depmod
sudo depmod -a
Enable PIO mode:
Code:
echo "options b43 pio=1" | sudo tee -a "/etc/modprobe.d/b43-thingy.conf"
Remove the package "bcmwl-kernel-source." It's the easiest way to ensure that the b43 driver isn't blacklisted.
Blacklist the wl driver (STA driver):
Code:
echo "blacklist wl" | sudo tee "/etc/modprobe.d/wedontneednonossdrivers.conf"
Add b43 to /etc/modules so it will load at bootup:
Code:
echo "b43" | sudo tee -a "/etc/modules"
Then, reboot your computer and enjoy your wireless (or use ...ahem...aircrack-ng...ahem... and enjoy your wireless :D).
I have no idea why "sudo modprobe b43" doesn't work after installation, but it doesn't.
--
If AFTER you reboot, you get errors in dmesg like:
Code:
[ 11.788669] b43: Unknown symbol ssb_pcicore_dev_irqvecs_enable
[ 11.789575] b43: disagrees about version of symbol ssb_bus_may_powerdown
[ 11.789586] b43: Unknown symbol ssb_bus_may_powerdown
[ 11.790340] b43: disagrees about version of symbol ssb_dma_free_consistent
[ 11.790351] b43: Unknown symbol ssb_dma_free_consistent
[ 11.792008] b43: disagrees about version of symbol ssb_bus_suspend
[ 11.792020] b43: Unknown symbol ssb_bus_suspend
[ 11.793154] b43: disagrees about version of symbol ssb_bus_unregister
[ 11.793166] b43: Unknown symbol ssb_bus_unregister
[ 11.795081] b43: disagrees about version of symbol ssb_bus_resume
[ 11.795093] b43: Unknown symbol ssb_bus_resume
[ 11.795509] b43: disagrees about version of symbol ssb_set_devtypedata
[ 11.795520] b43: Unknown symbol ssb_set_devtypedata
[ 11.796959] b43: disagrees about version of symbol ssb_device_disable
[ 11.796972] b43: Unknown symbol ssb_device_disable
[ 11.797411] b43: disagrees about version of symbol ssb_pmu_set_ldo_voltage
[ 11.797422] b43: Unknown symbol ssb_pmu_set_ldo_voltage
[ 11.798340] b43: disagrees about version of symbol ssb_dma_alloc_consistent
[ 11.798350] b43: Unknown symbol ssb_dma_alloc_consistent
[ 11.799029] b43: disagrees about version of symbol ssb_dma_set_mask
[ 11.799042] b43: Unknown symbol ssb_dma_set_mask
[ 11.801861] b43: disagrees about version of symbol ssb_device_enable
[ 11.801874] b43: Unknown symbol ssb_device_enable
[ 11.802820] b43: disagrees about version of symbol ssb_driver_unregister
[ 11.802833] b43: Unknown symbol ssb_driver_unregister
[ 11.804095] b43: disagrees about version of symbol __ssb_driver_register
[ 11.804109] b43: Unknown symbol __ssb_driver_register
[ 11.821841] b43: Unknown symbol ssb_bus_pcmciabus_register
[ 11.822234] b43: disagrees about version of symbol ssb_bus_powerup
[ 11.822243] b43: Unknown symbol ssb_bus_powerup
[ 11.826522] b43: disagrees about version of symbol ssb_dma_translation
[ 11.826535] b43: Unknown symbol ssb_dma_translation
then add these lines to /etc/rc.local (thanks to Muti for this information)
Code:
modprobe -r b43
sleep 3
modprobe b43
------------------------------------------------------------------------------------------------------------
PLEASE DO NOT USE ANY OF THE INSTRUCTIONS BELOW. THEY ARE HERE FOR INFORMATION AND HISTORICAL PURPOSES ONLY.
----------------------
Unfortunately, only patching the b43 driver will not work because it causes a kernel panic after ten seconds. You have to compile a new kernel with the b43 module patched. But..........that's not so bad. I already patched and compiled it for you :D. I'm just trying to find a free reliable web hosting company to host an apt repository for the patched kernels. I can't afford any paid webhosts--I'm only 14. Please PM any suggestions to me (doesn't need PHP or MySQL, just hosting).
----------------------
2.6.32.3 Script
New Script for kernel 2.6.32.3 (b43_compile_2.6.32.3.sh & b43_kernel_2.6.32.3.sh): Attached below; also at my website: http://software.6368.co.cc/linux/b43/patches.
----------------------
2.6.32.2 Script
Script Update 4 (b43_kernel_2.6.32.2.sh): Backs up and renames /usr/src/linux-source-2.6.32 so there is a clean copy of the source to work with.
Script Update 3 (b43_compile_2.6.32.2.sh): Fixed error about modules.symversions.
Script Update 2 (b43_kernel_2.6.32.2.sh): Fixed kernel download part (i386 --> i686); added checking for "patch" package.
Script Update 1 (b43_compile_2.6.32.2.sh): Included the enabling of PIO mode; stupid mistake on my part.
---------------------
Great news for everyone!! The b43 driver can now be run in Ubuntu 9.10 Karmic WITHOUT any DMA errors!!:D I created a script this time that will install it for you. :D I couldn't have done it without emas80 (page 26), O-Hatta (http://www.incentivespro.com/forum/viewtopic.php?t=222), and of course, the b43 developers (http://lists.opensuse.org/opensuse-k.../msg00047.html).
Unfortunately, it only works on kernel 2.6.32. BUT, the first shell script that I created will automatically download and install kernel 2.6.32.2 from the Ubuntu Kernel PPA and patch the b43 driver to get rid of the DMA problems. If you compiled the 2.6.32 kernel or downloaded it from a third party source, the script also works, but you will have to run it with a parameter (see below). Also, if you already have the 2.6.32.* kernel installed from the Ubuntu Kernel PPA, you can just run the script normally. This script can be run as root or as your regular user. It uses sudo commands, so running the script as root might save you from typing your password a million times. Now lets put this paragraph into action :).
PART 1 (described above) of the script can be downloaded here (also attached to this post as b43_kernel_2.6.32.2.sh): http://software.6368.co.cc/linux/b43...el_2.6.32.2.sh
IF YOU WANT TO USE THE 2.6.32.2 KERNEL, USE "2.6.32.2" INSTEAD OF "2.6.32.3", INCLUDING LINKS.
Cases:
1. You are using a 2.6.31 kernel (default in Ubuntu 9.10 Karmic)
Run sudo sh b43_kernel_2.6.32.3.sh
2. You are running a third party or self-compiled version of kernel 2.6.32
Run sudo sh b43_kernel_2.6.32.3.sh /path/to/kernel/sources
3. You already have kernel 2.6.32 installed from the Ubuntu Kernel PPA
Run sudo sh b43_kernel_2.6.32.3.sh
Part 1 of the script makes sure that you are using the 2.6.32 kernel and patches the b43 script for compilation during part 2 of the script. If you were running kernel 2.6.31* and the script installed 2.6.32, you MUST boot into the new kernel for b43 to compile (a.k.a. just reboot). Part 2 will prepare the kernel sources to compile the b43 driver and then compile and install b43. After running the script, you will have to make sure that there IS a "b43" line in /etc/modules and make sure that there ISN"T a "blacklist b43" or "blacklist ssb" line in any of the files in "/etc/modprobe.d." You run the second script basically like the same way above.
PART 2 (described above) of the script can be downloaded here (also attached to this post as b43_compile_2.6.32.3.sh): http://software.6368.co.cc/linux/b43...le_2.6.32.3.sh
Cases:
1. You are (now) running kernel 2.6.32 from the Ubuntu Kernel PPA
Run sudo sh b43_compile_2.6.32.3.sh
2. You are running a third party or self-compiled version of kernel 2.6.32
Run [COLOR="Red"]sudo sh b43_compile_2.6.32.3.sh /path/to/kernel/sources
Again, after running part 2 of the script, you will need to make sure that in "/etc/modules," there IS a "b43" line and that there ISN'T a "blacklist b43" or "blacklist ssb" line in any of the files in "/etc/modprobe.d."
Then reboot and enjoy your wireless!! :D
Notes:
The patch file from my website (also attached to this post) is NOT the same as the patch at http://lists.opensuse.org/opensuse-k.../msg00047.html, although the patch results ARE the same. Emas80 took the time to read the patch file line-by-line and patch the files manually. I downloaded his patched version of the b43 source files (page 26 of this thread) and ran the diff command between my unmodified b43 source and his patched source, saving the output to a new patch. The new patch is at http://software.6368.co.cc/linux/b43...2.6.32.3.patch.
If you have any doubts about my scripts, you can open them up and check it. I commented (in the script) what every command does. If there's any typos or problems please PM me so I can fix them. They should be okay; I tested the scripts on my computer.
Again, thanks to anyone who helped me with the script and the developers of the b43 driver.
----------------------------------------------------------------------------------------------
This is the new, updated information for Karmic. The steps are much easier in Karmic than in Jaunty. The steps for Jaunty are at the bottom of the post for reference and for people who still use Karmic.
1. Open up Terminal.
2. Install the "linux-backports-modules-karmic" (newer wireless drivers from compat-wireless) package and the "b43-fwcutter" package (wireless firmware). During installation, if it asks you to fetch the firmware automatically, make sure you select yes.
Code:
sudo apt-get install linux-backports-modules-karmic b43-fwcutter
3. Blacklist the ssb module.
Code:
echo "blacklist ssb" | sudo tee -a /etc/modprobe.d/blacklist-ssb.conf
4. Blacklist the wl module.
Code:
echo "blacklist wl" | sudo tee -a /etc/modprobe.d/blacklist-wl.conf
5. Reboot
6. Enjoy your wireless!!!
----------------------------------------------------------------------------------------------------------------
First of all, I want to thank lwfinger at openSUSE forums for making the b43 driver work with the 14e4:4315
The post looks verrrrry long right? Well it's not. All the commands are "copy-n-paste-able" and I recommend that you do copy and paste them so you don't make any mistakes.
So first of all, you need to download the latest compat-wireless from You can't use wget for this because they have a hotlink prevention system. So just download the
compat-wireless-2.6.tar.bz2
file from that website and SAVE IT TO YOUR HOME DIRECTORY.
Then open the terminal and run this command to extract the archive
Code:
tar xjf compat-wireless-2.6.tar.bz2
In order for the package to compile, you need to install the kernel headers, if not already installed. Run this in the terminal
Code:
sudo apt-get install linux-headers-$(uname -r)
Then change to the compat-wireless directory:
Then compile the source files:
Then install the files:
Then unload the drivers
Then install b43-fwcutter:
VERY IMPORTANT!!: Do NOT choose yes when it asks if you want to automatically fetch the firmware.
Code:
sudo apt-get install b43-fwcutter
Download the Broadcom firmware files
Code:
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
Extract the archive
Code:
tar xjf broadcom-wl-4.150.10.5.tar.bz2
Change to the driver directory
Code:
cd broadcom-wl-4.150.10.5/driver
Install the firmware
Code:
b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta_mimo.o
Then blacklist the proprietary driver
Code:
echo blacklist wl | sudo tee -a /etc/modprobe.d/blacklist.conf
And finally..............RESTART!!!
I hope this worked for you. It worked for me.
By the way, I'm turning 14 on September 26, so wish me a happy birthday :)
Bookmarks