# Pain-free WiFi on Macbook Pro 5.1?



## b7j0c (Jul 4, 2011)

Hi,

I recently attempted to put 9-CURRENT on a Macbook Pro (5.1 iteration), which features the Broadcom Airport Extreme WiFi chipset (reported by *dmesg* as BCM2045B2), but I have not been able to get it to work. The methods I have tried:

1. *bwi*. After following instructions at bwi(4) (including install net/bwi-firmware-kmod), I am able to load the kernel module using *kldload* (/boot/loader.conf etc), but the device still does not show up in *ifconfig*. 

2. *bwn*. Same method as above. Grasping at straws, this caused the laptop to cease booting. Removed with fixit mode from a livecd.

3. *NDIS*. After using ndisgen, I was able to process the .inf and .sys files of a driver and produce a new driver for FreeBSD, and after loading the NDIS kernel driver, still the device was not available in *ifconfig*.

Does anyone know of a repeatable process that reliably produces a working WiFi connection on these laptops? I am aware that the wiki has a Macbook page, but it does not address WiFi at all.

Archlinux is able to support this chip with the broadcom-wl package.

Thanks
brad


----------



## tingo (Jul 4, 2011)

Why don't you post the relevant parts of the output from `# pciconf -lv`?
Then we can properly identify your wireless chip.


----------



## b7j0c (Jul 5, 2011)

Here is the relevant section from *pciconf*:


```
none7@pci0:4:0:0:	class=0x028000 card=0x008d106b chip=0x432b14e4 rev=0x01 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'WIRELESS for Hp pavilion, Wireless for macbook pro (late 2009 model), Wireless for Dell e6500  , Ali'
    class      = network
```

and the *dmesg* output:


```
ugen2.2: <Broadcom> at usbus2
uhub4: <Broadcom BCM2045B2, class 9/0, rev 2.00/1.00, addr 2> on usbus2
```


Thanks in advance
brad

Some followup:

After having rebuilt the kernel to be sure that the of the same version as the source used to build the bwi module, I have concluded that this is a dead-end. This topic may still be of use to others, but at this point I am personally done trying to make this happen.


----------



## richardpl (Jul 7, 2011)

Perhaps you used wrong firmware for bwn()?


----------



## b7j0c (Jul 7, 2011)

No I'm sure I was using the bwn kmod when I tested that option. In any case I don't think bwn is intended to drive the device in the MacBook Pro (as far as I know). Feel free to correct me if I am not speaking accurately, it would be a big help to me. 

Additional info:

In the time since I created this post, I have gone back and recompiled 9-CURRENT with bwn (and not bwi), with the bwn firmware. No luck, but the errors were different. I'm going to assume that this device just isn't supported (hence my question in another thread regarding USB adapters). Even with blessed firmware from Broadcom for Linux, this device has always proven troublesome. If this wasn't a work computer I would just have some Mac repair shop open it up and replace the Broadcom card with something else.


----------



## richardpl (Jul 7, 2011)

firmware != driver, for bwn: did you use the correct firmware port and load the correct firmware version lp/non-lp?

"Cease booting" is not a useful description: it does not boot because it panics, hang or something else?


----------



## b7j0c (Jul 7, 2011)

Hang when booting. I don't want to dwell on this because I could have been in error and I was able to get the system to boot when compiling bwn into the kernel directly (but it still wasn't functional).


----------



## richardpl (Jul 8, 2011)

One more thing:

In NDIS case you used XP and not Vista or 7 versions of Windows drivers?
You loaded via kldload() all three drivers: ndis.ko, if_ndis.ko and driver generated via ndisgen bcmXXXXX.ko?


----------



## b7j0c (Jul 8, 2011)

Yes, when I used NDIS as an option, I looked at the pciconf output and saw that this was also a device used in the Dell e6500. At the Dell site, I select drivers for XP for this laptop. I actually tried every distrinct driver they had for this device individually.

I was able to generate functional kernel modules for FreeBSD using ndisgen, but none of them produced the device in ifconfig after loading. I was careful to make sure that the NDIS kernel modules showed up as loaded in the output from kldstat.


----------



## richardpl (Jul 8, 2011)

b7j0c said:
			
		

> Yes, when I used ndis as an option, I looked at the pciconf output and saw that this was also a device used in the Dell e6500.




Doubtful, if they were actually same you would not have such problem.


----------



## maciuszek (Aug 20, 2011)

b7j0c, 

     did you get wireless working yet?, i read that our card isent supported by bwi or bwn .. so ndis will be the only way. In saying that im also having problems with ndis, after trying many gen'd kmods i still havent once seen any ndis out, and i dont have a wireless interface either. If you found a xp driver that actually worked would you mind posting a link.


----------



## b7j0c (Aug 21, 2011)

I ended up just using en external usb wifi g wireless adapter that is stated explicitly as supported in the man page for urtw.

Yes the situation is that bad...you can't even use a new compact wifi n adapter


----------



## maciuszek (Aug 21, 2011)

ah well thank you for responding, i guess im going to have to buy one myself. 
I really wonder why there is an issue with ndis, and it seems to be restricted to macbook pros. Ive read threads of ppl with bcm4322 cards having no issue what so ever ( http://forums.freebsd.org/showthread.php?t=16758 ). And i know from personal expierence that the ndis linux and osol (back then) offer work 100% with the same *infs and *syss i tried. So im quite annoyed .. well at least freebsd finally supports our keyboard and motherboard right?

On an off note, instead of filling this thread with unrelated info, would you be able to priv message me your device.hints? im playing with the quirks although after staring at verbose hdac out for hours, i still havent had luck getting my speakers to work ( we have the extact same computer btw ).


----------



## maciuszek (Sep 7, 2011)

b7j0c

     Ej i fully forgot to mention.. i have ndis working now, lol just grab the driver off the macbook disk ( no idea why freebsd's ndis doesnt like the hp||dell driver but meh ) and extract the .inf and .sys with wine. If you want me to ftp the the files i can.


----------



## b7j0c (Sep 7, 2011)

Wonder why I never thought of that. My wife has a bunch of OSX install disks around, I'll just find one and try it out.

thanks!


----------



## UglyJoe (Aug 21, 2012)

maciuszek said:
			
		

> b7j0c
> 
> Ej i fully forgot to mention.. i have ndis working now, lol just grab the driver off the macbook disk ( no idea why freebsd's ndis doesnt like the hp||dell driver but meh ) and extract the .inf and .sys with wine. If you want me to ftp the the files i can.



Sorry to resurrect and old thread, but I am having no luck doing this. I can't get the drivers from the Snow Leopard disk. When I try to open the install packages in Windows with an archiving tool I get an error saying that the file is an archive, but it won't open. Any help on how to get these drivers?


----------



## maciuszek (Aug 22, 2012)

install it,  pull the inf n sys out of system32 or whatever subdir of c:\window api modules are found nowadays ( slocate will help ) and your good to go!!


----------

