I recently inherited an old Dell Latitude D600 laptop, but the wireless wasn't working on it. After some investigation, I learned that it somehow didn't have a wireless card! Digging around for my D600 ($14.00). When it arrived, I carefully installed it into the Mini PCI bay (pictured below).
Since the computer is fairly old (over five years old), I wanted to wipe Windows XP off of it, and run some kind of Linux. I chose Ubuntu because I enjoy using the Drupal Quickstart project, which is an Ubuntu virtual machine. I burned an Ubuntu "live" CD, and booted into Ubuntu's Unity.
The fun started when I realized that support for the wireless Mini PCI card wasn't a standard part of Ubuntu. I saw the "device not ready (firmware missing)" message.
I quickly found Ubuntu's community page on wifi drivers, and after identifying my card via lspci, I followed the section for the b43 driver. (For all of these steps, I was connected to my router via an Ethernet cable.)
I thought I was following the right steps, but the wireless continued to not work. After reading the page over (and over again) I realized I was skipping an important step. In the section "Installing b43 drivers", I was guided to install the b43-fwcutter and firmware-b43-installer. I was never able to find the firmware-b43-installer (I kept getting the "Unable to locate package firmware-b43-installer" error from apt), but the b43-fwcutter was successfully installed. I thought I was stuck, but it turned out that I still needed to download the firmware!
This step is described in the "b43 - No Internet access" section. Because I had Internet access, I thought I didn't need to follow this section, but I did. Reading the Linux Wireless b43 page (which I got from the Broadcom 43xx Linux Driver page) made me realize that I had to run the b43-fwcutter program. In the "No Internet access" section, I was guided to grab two files (comprising the firmware): wl_apsta.o and wl_apsta_mimo.o. (The last file is inside a compressed tar file.) I then followed these instructions to run b43-fwcutter:
$ sudo b43-fwcutter --unsupported -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o
The output of the above two commands was this:
This file is recognised as:
ID : FW10
filename : wl_apsta.o
version : 295.14
MD5 : e08665c5c5b66beb9c3b2dd54aa80cb3
Extracting b43legacy/ucode2.fw
Extracting b43legacy/ucode4.fw
Extracting b43legacy/ucode5.fw
Extracting b43legacy/ucode11.fw
Extracting b43legacy/pcm4.fw
Extracting b43legacy/pcm5.fw
Extracting b43legacy/a0g0bsinitvals2.fw
Extracting b43legacy/b0g0bsinitvals5.fw
Extracting b43legacy/a0g0initvals5.fw
Extracting b43legacy/a0g1bsinitvals5.fw
Extracting b43legacy/a0g0initvals2.fw
Extracting b43legacy/a0g1initvals5.fw
Extracting b43legacy/b0g0bsinitvals2.fw
Extracting b43legacy/b0g0initvals5.fw
Extracting b43legacy/b0g0initvals2.fw
Extracting b43legacy/a0g0bsinitvals5.fw
$ sudo b43-fwcutter --unsupported -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o
This file is recognised as:
ID : FW13
filename : wl_apsta_mimo.o
version : 410.2160
MD5 : cb8d70972b885b1f8883b943c0261a3c
Extracting b43/pcm5.fw
Extracting b43/ucode15.fw
Extracting b43/ucode14.fw
Extracting b43/ucode13.fw
Extracting b43/ucode11.fw
Extracting b43/ucode9.fw
Extracting b43/ucode5.fw
Extracting b43/lp0bsinitvals15.fw
Extracting b43/lp0initvals15.fw
Extracting b43/lp0bsinitvals14.fw
Extracting b43/lp0initvals14.fw
Extracting b43/a0g1bsinitvals13.fw
Extracting b43/a0g1initvals13.fw
Extracting b43/b0g0bsinitvals13.fw
Extracting b43/b0g0initvals13.fw
Extracting b43/lp0bsinitvals13.fw
Extracting b43/lp0initvals13.fw
Extracting b43/n0absinitvals11.fw
Extracting b43/n0bsinitvals11.fw
Extracting b43/n0initvals11.fw
Extracting b43/a0g1bsinitvals9.fw
Extracting b43/a0g0bsinitvals9.fw
Extracting b43/a0g1initvals9.fw
Extracting b43/a0g0initvals9.fw
Extracting b43/b0g0bsinitvals9.fw
Extracting b43/b0g0initvals9.fw
Extracting b43/a0g1bsinitvals5.fw
Extracting b43/a0g0bsinitvals5.fw
Extracting b43/a0g1initvals5.fw
Extracting b43/a0g0initvals5.fw
Extracting b43/b0g0bsinitvals5.fw
Extracting b43/b0g0initvals5.fw
The above was the key. The bw43-fwcutter is a "firmware cutter", a tool to extract firmware from Broadcom 43xx driver files (object files). Once I downloaded the driver files, and extracted the firmware via b43-fwcutter, I executed the modprobe b43 commands on the Ubuntu WifiDocs page, and that made it work!
Post Script: All of the above was done with the "live" CD. When I installed Ubuntu 11.10 on the laptop's hard drive (wiping Windows XP), the apt was not able to find and install the b43-fwcutter. I had to download the b43-fwcutter package manually (from launchpad.net). Double-clicking on the package caused the Ubuntu Software Center to install the b43-fwcutter, and from there I followed the steps from before.
Comments
This.
Hopefully this post finds its way up the google ranks. Definitely helped me out as I was stuck on the same page as author and also skipped out on the "No Internet Access" steps. Wifi working perfect after these steps. Thanks!
Saved Me
I spent four hours trying to get the wi-fi set up on my computer. After finding your advice I was able to figure out where I was going wrong and get things up and running in about 10 minutes. Thank you much!
THAAAAANNNKS!!! It works
THAAAAANNNKS!!! It works great! I spend a lot of time (2 days) to fix this bug,
with your guide it took me 3 minutes! :D
Thank you
Saved me a lot of time. Solution works like a charm on Linux Mint 13.
Super Thanks... It worked
Super Thanks... It worked perfectly fine.,..
Thank you
Thank you for this helpful article. I searched in so many forums for a solution, but nothing worked. But with this HowTo I was able to activate my wireless at my Latitude D810 without any problems.
Great!!
Thanks a lot!
Thank you, your post has saved me potentially several hours of digging through the documentation page. Wifi is now working lika a charm on my D600!
Genius! I tried to install
Genius! I tried to install many Linux Distros, but everyone of them had the same problem. When I found your tutorial, I quicky reinstall Lubuntu - I already downloaded b43-fwcutter - and follow your suggestments. It works properly now!