Slackware64 13.0 on the MacBook: wireless

After Ubuntu 10.04 melted down–more on that later–on the MacBook, I decided to re-install Slackware64 13.0.  Of course, I didn’t keep notes from the last install so I was starting over.

I booted to MacOS, inserted the Slackware DVD, selected Foreign OS on SlackDVD in Startup Disk, and clicked the Restart . . . button.  The install went well and quickly.  When installing LILO, I selected the Expert option and placed LILO on the MBR of /dev/sda.

When I rebooted, LILO took over and booted Slackware. After logging in as root, I shut down, using halt: experience has taught me that reboot doesn’t work on the Mac..  To get back to MacOS I had to clear the Mac’s PRAM holding command+option+p+r and wait for the startup chord. This got me back to normal Mac startup and I opened a terminal window and re-blessed rEFIt. (Yeah, I still use rEFIt; I never bothered to learn how BootCamp works -)

Upon rebooting into Slackware, I installed wicd from extra.  I started the wicd daemon, opened wicd and found that I had no wireless driver.  (From this point, I’ll skip all the mistakes I made getting to the solution. Perhaps I’ll blog about those later, though I doubt it!)

For those keeping score, I’m working with one of the unibody MacBooks.  Going to About This Mac and clicking the More info . . . button reveals the Model Identifier MacBook5,1 (whatever that means).

In Linux as root, running lspci -v revealed the wireless adapter:  Broadcom Corporation BCM4322. I recalled that the quick way to get this working was to install the driver the Broadcom web site.  I rebooted to MacOS and after some poking around I finally found the 802.11 Linux STA driver page. I downloaded the 64-bit driver (hybrid-portsrc-x86_64-v5.60.48.36.tar.gz) and saved it to my Mac desktop.

Back in Linux, I mounted the MacOS partion–type hfsplus–and used tar zxf to put the driver in /usr/src/broadcom on my Linux partition. README.txt gave me the very simple build directions: type make in the top-level directory. All went well, and I ended up with the driver wl.ko, which I copied to the /lib/modules/2.6.29.6/kernel/drivers/net directory. All that left was blacklisting b43 and ssb in /etc/modprobe.d/blacklist.conf and rebooting.

The driver loaded and when I open wicd, I can see my wireless network.  One click connected me and now I’m up-and-blogging.

May 22, 2010 – Update: I installed Linux kernel version 2.6.34 and, of course, broke the wireless driver.

When I tried to compile the driver using, I got the error:

/usr/src/broadcom/src/include/linuxver.h:23:28: error: linux/autoconf.h: No such file or directory

A little poking around led me to the solution.  It seems that autoconf.h has moved in 2.6.34: it now lives in generated (instead of linux).  In the Broadcom driver source, in the file src/include/linuxver.h, I changed the line:

#include

to

#include

The module compiled and worked when I loaded it manually.

In order to load it automagically, I created a new /etc/rc.d/rc.netdevice:

#!/bin/sh
modprobe wl

Getting the sound working is another story

1 thought on “Slackware64 13.0 on the MacBook: wireless”

Leave a Comment