Learning PHPinux

Setting up HP Pavillion dv6416ca with Broadcom BCM4312 rev. 02 in Fedora 8

Posted by: gf4e on: April 25, 2008

UPDATE: this did not work for me in Ubuntu 8.04.

UPDATE: it did work, eventually. See next post.

Configuration:

1. HP Pavillion dv6416ca: CPU – AMD Turion 64 X2; Wireless – Broadcom BCM4312 rev. 02
2. Fedora 8
3. Livna package repository [not necessary if you want to install ndiswrapper manually, if not get the repository here: http://rpm.livna.org/livna-release-8.rpm]
4. Broadcom driver for dv6416ca for Windows XP (32bit) [available for downloading from HP official website, every model has a different file]
5. Ndiswrapper [software for using Windows wireless drivers under Linux, available either on the official website or #3]

OK, let’s go.

1. In order to make sure that there is no driver loaded for your wireless chip, do the following. Go to system-config-network and delete everything that is connected with wireless. Now we have to see if any driver is currently loaded. To do that, see the output of lsmod. If there is anything like b43, bcm43xx, b43legacy, then delete all this stuff either with: rmmod name, or with: modprobe –r name.

2. Ndiswrapper that we need to get done what we planned we can simply download by: yum install ndiswrapper. This command will get the last ndiswrapper from livna repository and install all dependencies.

3. As I already said, Windows drivers can be downloaded from the official site of HP. All files’ names look like: sp36684.exe. In order to extract such a file, download cabextract by: yum install cabextract, then extract it with: cabextract sp36684.exe. You will get a list of files like this:

bcm43xx64.cat
bcm43xx.cat
bcmwl564.sys
bcmwl5.inf
bcmwl5.sys
Setup.exe
sp36684.cva

4. Install the driver with: ndiswrapper –i bsmwl5.inf. If there are no errors, then everything is alright. Look at what ndiswrapper –l shows. The output should be something like:

bcmwl5 : driver installed
device (14E4:4312) present (alternate driver: ssb)

Notice (alternate driver: ssb) doing the next step.

It is better to ensure that no other drivers will ever be loaded by your system again. To do that, open /etc/modprobe.d/blacklist and add something like: blacklist name, where name is what you want to put in the black list. It might be b43, bcm43xx, b43legacy. It is also better to block the alternative driver to, which, in this case, is ssb.

6. Load your new driver with modprobe ndiswrapper. If there are no errors, it is working.

7. To see if the interface (wlan0 by default) is up, simply see the output of iwconfig. If the indicator on the laptop is blue, then the card is working. The output should be something like this:

lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s Tx-Power:32 dBm
RTS thr:2347 B Fragment thr:2346 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

8. Now you can go to, for instance, NetworkManager and look what networks are available.

P.S. Just make sure your driver is for Windows XP and is named bcmwl5.inf, but not bcmwl6.inf, as in Windows Vista.

2 Responses to "Setting up HP Pavillion dv6416ca with Broadcom BCM4312 rev. 02 in Fedora 8"

It seems you are very skilled in ndiswrapper. Is there any change/setting I can do for a 64 bit driver to work in 64 bit kernel? From the same distribution, the 32 bit driver works with 32 bit driver kernel with ndiswrapper.
I have Marvell Libertas. I have read the main issue is the kernel mode stack size (8KB) which many Windows drivers exceed.
Do you unpack all the driver files? I knew .inf and .sys files are needed.

Yes, only these two files were needed. At least that is what is in /etc/ndiswrapper. I am not sure what kind of improvement you can experience by installing a 64bit driver, but I know for sure that a 32bit driver works absolutely flawlessly on 64bit 2.6.24 kernel. I have Ubuntu 8.04 for AMD64.

Leave a Reply