Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] Problems adding B43 Firmware
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
rhumbliner
n00b
n00b


Joined: 15 Nov 2004
Posts: 41
Location: Las Vegas

PostPosted: Sat May 18, 2013 4:40 pm    Post subject: [SOLVED] Problems adding B43 Firmware Reply with quote

i've just installed gentoo 3.8.13 onto an intel mac mini with a broadcom BCM4321 802.11a/b/g/n [14e4:4328] wireless chip. everything is working fine with the exception of the wireless capability. my kernel has the B43 configured as a module:

Code:
CONFIG_B43=m
CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_LP=y
CONFIG_B43_HWRNG=y
CONFIG_B43_DEBUG=y
CONFIG_B43LEGACY=m
CONFIG_B43LEGACY_PCI_AUTOSELECT=y
CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
CONFIG_B43LEGACY_HWRNG=y
CONFIG_B43LEGACY_DEBUG=y
CONFIG_B43LEGACY_DMA=y
CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
#


and it appears that i need to extract the firmware from the proprietary broadcom driver so i downloaded this driver and extracted the firmware:

Code:
{~/tmp} wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
--2013-05-17 18:48:21--  http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
Resolving www.lwfinger.com... 173.254.28.119
Connecting to www.lwfinger.com|173.254.28.119|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13514651 (13M) [application/x-bzip2]
Saving to: 'broadcom-wl-5.100.138.tar.bz2'

{~/tmp} b43-fwcutter -w /lib/firmware broadcom-wl-5.100.138/linux/wl_apsta.o
This file is recognised as:
  filename   :  wl_apsta.o
  version    :  666.2
  MD5        :  e1b05e268bcdbfef3560c28fc161f30e


actually, there are 3 drivers from which to choose: wl_ap.o, wl_apsta.o, and wl_sta.o but another thread i was reading recommended wl_apsta.o. unfortunately it probably doesn't matter cuz when i set up the kernel to accept the firmware:

Code:
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="b43"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"


when i compile the kernel i constantly run out of memory:

Code:
  AS      firmware/b43.gen.o
gcc: internal compiler error: Killed (program as)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.gentoo.org/> for instructions.
make[1]: *** [firmware/b43.gen.o] Error 4
make: *** [firmware] Error 2


i presume i've made some mistake along the way so i'd appreciate any direction someone can give me here.

tia


Last edited by rhumbliner on Sat May 18, 2013 11:42 pm; edited 1 time in total
Back to top
View user's profile Send private message
Gusar
Advocate
Advocate


Joined: 09 Apr 2005
Posts: 2553
Location: Slovenia

PostPosted: Sat May 18, 2013 4:47 pm    Post subject: Reply with quote

The firmware isn't just one file, b43 is a directory containing 30+ files. Either list them all in the kernel config (b43/file1, b43/file2, ...), or better yet, don't compile the firmware into the kernel at all, you don't need to.

Another thing, you need bcma support in your kernel. So make sure you activate bcma and that CONFIG_B43_BCMA=y is set.
Back to top
View user's profile Send private message
rhumbliner
n00b
n00b


Joined: 15 Nov 2004
Posts: 41
Location: Las Vegas

PostPosted: Sat May 18, 2013 5:01 pm    Post subject: Reply with quote

yes, i realize the folder has many files, but my understanding was that i simply need to list the folder name. in fact, /lib/firmware contains a whole bunch of sub-directories only one of which is my b43 folder.

Code:
{~} ls /lib/firmware/
3com         av7110     cis     edgeport  keyspan      mts_edge.fw  r128    tigon         whiteheat.fw
acenic       b43        cpia2   emi26     keyspan_pda  mts_gsm.fw   radeon  ti_3410.fw    whiteheat_loader.fw
adaptec      b43legacy  cxgb3   emi62     korg         myricom      sb16    ti_5052.fw    yam
advansys     bnx2       dsp56k  ess       matrox       ositech      sun     ttusb-budget  yamaha
atmsar11.fw  bnx2x      e100    kaweth    mts_cdma.fw  qlogic       tehuti  vicam
{~}



i thought when i configure the kernel i should enter

Code:
[*]   Include in-kernel firmware blobs in kernel binary
(b43) External firmware blobs to build into the kernel binary
(/lib/firmware) Firmware blobs root directory


am i wrong on this? should the line actually contain

Code:
b43/a0g0bsinitvals5.fw,b43/a0g0bsinitvals9.fw,...,b43/ucode33_lcn40.fw


if so, there are approx 120 .fw files in this folder that i would have to list manually.

thanks,
Back to top
View user's profile Send private message
Gusar
Advocate
Advocate


Joined: 09 Apr 2005
Posts: 2553
Location: Slovenia

PostPosted: Sat May 18, 2013 5:09 pm    Post subject: Reply with quote

rhumbliner wrote:
am i wrong on this?

Yes.

rhumbliner wrote:
that i would have to list manually.

No, you don't. It's not mandatory to put firmware into the kernel.
Back to top
View user's profile Send private message
rhumbliner
n00b
n00b


Joined: 15 Nov 2004
Posts: 41
Location: Las Vegas

PostPosted: Sat May 18, 2013 5:13 pm    Post subject: Reply with quote

then i'm really confused by this. how is this firmware eventually loaded onto the card? does modprobe do this? if so, what mechanism must i enable to make this happen?
Back to top
View user's profile Send private message
Gusar
Advocate
Advocate


Joined: 09 Apr 2005
Posts: 2553
Location: Slovenia

PostPosted: Sat May 18, 2013 5:44 pm    Post subject: Reply with quote

Newest kernels load firmware themselves. If that fails, or if you're using a kernel older than 3.8, it will ask udev (or mdev if that's what you use) to do it.
Back to top
View user's profile Send private message
rhumbliner
n00b
n00b


Joined: 15 Nov 2004
Posts: 41
Location: Las Vegas

PostPosted: Sat May 18, 2013 11:41 pm    Post subject: Reply with quote

well, this has been a learning process. i've since discovered that i didn't need to do all this firmware extraction manually. it's all handled automatically with the b43-firmware package which i've since emerged. now i'm having problems loading, but i'm a little further along. i'll call this thread finished since emerging the package is the smart way to go and i'll start a new topic for the next step.

thanks!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum