Update on using b43 with PCI ID 14e4:4315

Until today, it was not possible to use the BCM4312 802.11b/g devices
with b43. That is no longer the case. In fact, I’m posting this
message using my device. I’m using WPA2 encryption with encryption
handled by the hardware. I have connected to APs on channels 1 and 11.

The output of ‘lspci -nnv | grep -A 1 14e4’ is:

04:00.0 Network controller [0280]: Broadcom Corporation BCM4312
802.11b/g [14e4:4315] (rev 01)
Subsystem: Hewlett-Packard Company BCM4312 802.11b/g Wireless
LAN Controller [103c:137c]

The ‘ifconfig wlan1’ output is:

wlan1 Link encap:Ethernet HWaddr 00:1A:XX:XX:XX:XX
inet addr:192.168.2.217 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:117743 errors:0 dropped:0 overruns:0 frame:0
TX packets:87169 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:149849274 (142.9 Mb) TX bytes:57302185 (54.6 Mb)

Note that I have transmitted and received a lot of data. There have
been no dropouts, or disconnects.

The ‘iwconfig wlan1’ output is:

wlan1 IEEE 802.11bg ESSID:“OpenWrt”
Mode:Managed Frequency:2.462 GHz Access Point:
00:1A:XX:XX:XX:XX
Bit Rate=1 Mb/s Tx-Power=27 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=70/70 Signal level=-16 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

At the moment, the code for power management has not yet been written,
thus performance is a little weak as can be seen from the 1 Mb/s Bit
Rate shown here. Despite this, I get transmit rates of 9-11 Mb/s and
receive rates up to 18 Mb/s using tcpperf. This is good enough to keep
up with my cable modem.

The code that I’m using will be in the wireless-testing git tree
within a few days, and will be in compat-wireless shortly thereafter.
It should be in the 2.6.32 kernel.

Larry

many thanks and congratulations to you on your own hard work? SHould be a big help to many to have it in the 2.6.32 kernel

pdc 2 wrote:
> many thanks and congratulations to you on your own hard work? SHould be
> a big help to many to have it in the 2.6.32 kernel

Thank you. I started the reverse engineering on that code two years
ago. It is a good feeling to see that finally appear as working code.

How would I install that? If it’s in a repository, what package do I install? Or do I need to build compat-wireless and install the firmware (if so what version?)?

Thank You.

lwfinger said

the code that I’m using will be in the wireless-testing git tree within a few days, and will be in compat-wireless shortly thereafter. It should be in the 2.6.32 kernel.

He only said that a few days ago

Tell us why you want to know

Sorry if I sounded rude. I just wanted to know how I could install it because the wl driver for my Broadcom 4312 (14e4:4315) is very unstable.

chenxiaolong wrote:
> Sorry if I sounded rude. I just wanted to know how I could install it
> because the wl driver for my Broadcom 4312 (14e4:4315) is very unstable.

I can attest to the stability of the b43 version of the BCM4312
driver, at least in my configuration. At the moment, much of the power
adjustment code is not yet implemented. This limits the transmit speed
to about 10-12 Mb/s. I am about 2 m from my AP.

To implement the latest code, go to
http://wireless.kernel.org/en/users/Download and find the “bleeding
edge compat wireless” section. You will need to have gcc, make and the
kernel headers installed to build it.

Thanks for the quick reply. I hope the speed problems can be fixed soon.

chenxiaolong wrote:
> Thanks for the quick reply. I hope the speed problems can be fixed soon.

It is being worked on, but I’m only able to test because of the
necessity to separate reverse engineers from coders - the so-called
clean-room conditions. At least my part is done, and I’m now working
on the N PHY models.

thanks. I post this to confirm that bleeding edge driver works (flawlessly for 2 hours + suspend cycle) and throughput is over 10Mbps.Great work on the updated b43. Looking forward for more
BCM4312 14e4:4315 (rev 01) here.
kernel 2.6.30-1
system is debian(but kernel is what matters folks)
:slight_smile:

blowf1sh wrote:
> thanks. I post this to confirm that bleeding edge driver works
> (flawlessly for 2 hours + suspend cycle) and throughput is over
> 10Mbps.Great work on the updated b43. Looking forward for more
> BCM4312 14e4:4315 (rev 01) here.
> kernel 2.6.30-1
> system is debian(but kernel is what matters folks)
> :slight_smile:

Good going.

lwfinger, I just noticed this thread. Well done and many thanks for this contribution. :good:

Going steady for 12hours now.No problems whatsoever with b43
Receive rates in excess of 20Mbps :slight_smile:

Broadcom Corporation BCM4312 802.11b/g (rev 01), 14e4:4315
Driver works flawlessly, no errors in dmesg, survives suspend-resume cycles.
Thanks again.

Its not as stable as I wish because the driver often hangs on system startup.

Someone/something has broken the source at compat wireless driver archive and so I am not able to test any newer version since 06.09.2009.

What has been broken you can see here:
Ubuntu Forums - View Single Post - [ubuntu] Does ubuntu supports Intel WiFi Link 5300 (AGN) network card?

-Riffer- wrote:
> Its not as stable as I wish because the driver often hangs on system
> startup.
>
> Someone/something has broken the source at compat wireless driver
> archive and so I am not able to test any newer version since
> 06.09.2009.
>
> What has been broken you can see here:
> ‘Ubuntu Forums - View Single Post - [ubuntu] Does ubuntu supports Intel
> WiFi Link 5300 (AGN) network card?’
> (http://ubuntuforums.org/showpost.php?p=7940247&postcount=92)

I’ll pass the problem with the build on to the compat-wireless folks.
I know how it happened, but I’m not sure what it takes.

There have been no changes in the LP PHY code (4315) since the
beginning of September as the main developer has been having trouble
with his machine.

If you have any definitive diagnostics on the hang at bootup, please
let me know. Does the entire boot process fail, or how would you
describe it?

Larry

The only thing I can tell you about the ‘hanging’ is, that if I start the system in recovery mode the the text stops after calling for b43 driver and a few seconds later it switches to black screen and stays there.
The only thing that helps after that is a hard reboot (power switch) and to try again - after some trys it suddenly works.

-Riffer- wrote:
> The only thing I can tell you about the ‘hanging’ is, that if I start
> the system in recovery mode the the text stops after calling for b43
> driver and a few seconds later it switches to black screen and stays
> there.
> The only thing that helps after that is a hard reboot (power switch)
> and to try again - after some trys it suddenly works.

Without some diagnostics, this will be hard to fix. The symptom has
not been reported by anyone else.

I’m using kernel 2.6.30.5-43. Apparently the broadcom-wl-4.80.53.0 firmware doesn’t work. Dmesg says

b43 ssb0:0: firmware: requesting b43/ucode15.fw
b43 ssb0:0: firmware: requesting b43-open/ucode15.fw
b43-phy0 ERROR: Firmware file "b43/ucode15.fw" not found
b43-phy0 ERROR: Firmware file "b43-open/ucode15.fw" not found
b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.

Any ideas on what firmware I should use?

Nevermind. The correct firmware was listed on the Linux Wireless B43 page, but not under the Fedora section.

chenxiaolong wrote:
> I’m using kernel 2.6.30.5-43. Apparently the broadcom-wl-4.80.53.0
> firmware doesn’t work. Dmesg says
> Code:
> --------------------
> b43 ssb0:0: firmware: requesting b43/ucode15.fw
> b43 ssb0:0: firmware: requesting b43-open/ucode15.fw
> b43-phy0 ERROR: Firmware file “b43/ucode15.fw” not found
> b43-phy0 ERROR: Firmware file “b43-open/ucode15.fw” not found
> b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.
>
> --------------------
>
>
> Any ideas on what firmware I should use?

You need the firmware from at least 4.150.10.5.

If you have Internet while running Linux, just do

sudo /usr/sbin/install_bcm43xx_firmware

If you don’t have Internet access, you will need to download

http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2

The driver file with the firmware is
broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o