The October 11, 2006
What I Did on My Summer Vacation
In the unrelenting quest for qwertyness, the Almanack spent the summer obsessing
over operating systems. At last word, FedoraCore5 32-bit had the floor. But
since then, Redmond has provided a dvd, the newcomer Freespire made an
appearance, and Fedora returns. (Unless you're particularly fond of geeky
pursuits, now would be a good time to visit Yahoo.)
It has to be said that installers, partition managers and boot loaders have come
a long way in the past decade or so. This poor little Compaq has been invaded
by XP (the original OS, twice), Vista (two versions, three installs), Gentoo,
Ubuntu, Freespire, Fedora 64-bit (twice), and Fedora 32-bit (twice). Each
installer looked only at its own partition, politely asked about preserving the
data, and reassuringly displayed its progress. Twelve installs, no surprise
lost data; that's huge.
But after that comes chaos, which is all about expectations. We just expect
programs to do what they're supposed to, especially operating systems.
Especially Windows. This particular rant is about HOW THINGS DON'T WORK.
A couple of weeks ago, Microsoft kindly forwarded a copy of Vista, Release
Candidate 1. The screen is gorgeous. And they seem to have got the security
thing knocked. Whenever anything touches a sensitive structure, the OS asks for
a password, like a proactive sudo. (You can shut that off, but it would be
stupid.) The firewall is easy to get at, easy to tweak, and seems to have
sensible defaults. The screen is gorgeous. There are lots of cool user
interface features, like thumbnails instead of icons. There's a nifty facility
called User Access Control that absolutely has to be shut off before you can do
anything drastic, and it yells until you turn it back on. Legacy programs can
run in various 'emulation modes', which can be set and saved, like properties.
Alas, neither UAC suppression nor XP emulation could enable the Palm Desktop,
nor Juniper i/p tunneling, and the jury's still out on TurboTax. These are
absolutely non-negotiable backward-compatibility requirements. But did we
mention, the screen is gorgeous?
Googling for the easiest Linux installation turned up Freespire, the gratis
distribution (distro) of Linspire, derived from Debian. Not that there was
anything wrong with the handful of other distros, but this is about qwertyness,
which is about acceptance, and ease-of-use always figures in. Freespire does
your disk, your screen, your sound, your network, and most rare, your wireless
card. Automatically, and without pain. So we launched into installing apps
with very high expectations, indeed. Freespire and Linspire rely on a
repository called CRM that creatively packages both open source and commercial
apps for automated download and hands-off installation. Slick. KDE has this
cute dialogue box that pops up when things crash, a fried nerd with a
screwdriver or something, that asks if you want to send a bug report. No, not
for an install, we just want it to work! The downside of 'slick' is: loss of
FedoraCore5-64 is enticing if you have an extra 32 bits sitting idle in your
processor. It installs easily, there are thousands of packages for it, and
there is plenty of online advice. Things that haven't been ported to 64 bits
can generally run well in 32-bit emulation. But for the million or so laptops
with Broadcom wireless cards, there is no getting around it: Broadcom cards
send the kernel to an early shower. 32 bits work better. YMMV.
Back to FC5-32, install 2. We'll jump over the easy bits, and get right to the
wireless setup. If you have a laptop with an unsupported wireless card (a fairly
normal situation), the conventional wisdom is, Just Try It. It will probably
lock up your machine, but go ahead:
0 - Install bcm43xx-fwcutter. Find a copy of bcmwl5.sys, and rip it (there are
instructions for this all over the place). Run System/Administration/Network to
set up your card, and activate it. If you have lived a blameless life, you will
connect to your network. Go away, you don't need this page.
1 - Delete the junk fwcutter put in /lib/firmware. Edit
/etc/modprobe.d/blacklist, and add the line 'blacklist bcm43xx'.
2 - Update your kernel to the current version. Go to linux.org and download the
source for the current kernel. Unpack the tarball in a clean directory,
preferably /usr/src/linux-v.x.x.x., with a sym link to /usr/src/linux.
3 - 'make menuconfig'. This is a curses menu, ugly but very serviceable. Go to
'kernel hacking' and turn 'Use 4kb for kernel stacks' off. Spend an hour
checking other settings to make sure nothing obviously conflicts with your
machine. Exit/save, and 'make'. It'll take about an hour.
4 - Copy System.map and arch/i386/boot/bzImage to /boot, renaming as
appropriate. Use the contents of /boot as a guide. You might want to save
.config in /boot, as well. Reboot.
5 - Download ndiswrapper from Sourceforge. Unpack the tarball in any clean
directory. ./configure, make, make install.
6 - There are a number of sites that have 80211g.zip, particularly acer.ca, .be,
etc. Download until you find one with bcmwl5a.inf.
7 - 'ndiswrapper -i bcmwl5a.inf'; 'ndiswrapper -ma'; edit /etc/modprobe.conf,
add 'alias wlan0 ndiswrapper'; 'modprobe ndiswrapper'.
8 - System/Administration/Network, New device 'Wireless connection', wlan0.
Configure it with your key, etc, and activate it.
Simple, huh? You can find several good pages that will explain compiling the
kernel, and plenty of advice on using ndiswrapper, and if you look hard enough,
there will be a mention of 4k stacks. But putting it all together is insanely
difficult, and takes forever.
The backstory is that Broadcom makes wireless cards, and doesn't publish the
specs. The only folks with the interface are in Redmond. The fellows at the
bcm43xx project have responded by reverse-engineering drivers for a number of
the cards, but Broadcom cranks 'em out faster than the hackers can analyze.
Ndiswrapper was always a stopgap, a shim for an actual Windows driver, so it's
inelegant and incomplete, and it has to be compiled in sync with your kernel.
But it's versatile and it works pretty well. The only reason we need to compile
the kernel, as opposed to simply using the right headers, is an overly
aggressive technical decision at Fedora to cut the size of the kernel stacks in
half. Why, one might well ask? And why is ndiswrapper not included in the
distro? And why is it deprecated when it's still the only viable solution?
Moving on, there is a similar story behind printing from FC5. Start with
upgrading the foomatic package, go to Sourceforge for gutenprint, ./configure;
make; make install (as root), . . . You get the idea. A computer science
degree and a hundred hours of work will get you a free system.
The point is, Linux developers and Linux users seem to be the same people. It
doesn't matter if installation is miserably hard, it helps folks 'learn the
system'. Dropping bread crumbs for newbies to follow into the maze qualifies as
documentation, right? There's a ton of advice to winnow, but anything more than
4 months old is probably obsolete or downright misleading.
C'mon, folks, the idea is to promote the system, encourage its adoption, show
the elegance to real people, not just hackers. Fedora is free, it doesn't
crash, and things do work. But qwertyness is a stretch for something this
Please add a comment.