Rick's Tech Talk

All Tech Talk, Most of the Time

Making Wireless Work on a Dell D600 with Ubuntu

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).

Picture of Wireless Mini PCI Card in Dell Mini PCI Bay

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.

Picture of Wireless Firmware Not Available on Ubuntu

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 -w /lib/firmware wl_apsta-3.130.20.0.o
$ 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:

$ sudo b43-fwcutter -w /lib/firmware wl_apsta-3.130.20.0.o
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!

Picture of D600 Wireless Working on Ubuntu

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

Submitted by Sean (not verified) on

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!

Submitted by Keith (not verified) on

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!

Submitted by CAS (not verified) on

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

Submitted by Arvin (not verified) on

Saved me a lot of time. Solution works like a charm on Linux Mint 13.

Submitted by Johannes (not verified) on

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!!

Submitted by Jorgezar (not verified) on

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!

Submitted by Nicola Adamu (not verified) on

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!