LJ Archive

/etc/rant

The 64-Bit Question

Nicholas Petreley

Issue #145, May 2006

Linux is blowing its opportunity to be the best AMD64 platform for all needs.

I haven't upgraded my main workstation in years, so it is about time for a change. I've heard nothing but great things about the AMD64 processor, so that's the route I take.

I decide to shop for a lower-speed dual-core AMD64 processor instead of a high-speed single-core processor. I want dual-core, because I'm not looking for the ultimate gaming machine. I want a good “lets me compile, burn a DVD, and maybe do two or three other things at the same time and still have a very responsive desktop” machine. I find that I can put together a decent dual-core AMD64 box with a PCI Express x16 NVIDIA display card, two huge SATA drives and 4GB of RAM for a surprisingly reasonable price. I get most of my stuff on-line from www.newegg.com, which has some pretty good deals.

A few days later, most of my stuff arrives. It takes about a day to tinker together the new computer between editing sessions on the old one. With the exception of a couple of dumb mistakes, everything comes together, and the new computer is running fine.

My SATA DVD drive hasn't arrived yet. I use my old IDE DVD drive to install the AMD64 version of Kubuntu. This turns out to be an accidental lucky break, as you'll see in a moment.

I upgrade Kubuntu AMD64 to use the K8-SMP version of the kernel in order to take advantage of my dual-core processor. Big mistake. The SMP kernel crashes. A lot. I check the forums, and it crashes a lot for many Kubuntu/Ubuntu users. Kubuntu released an updated version of the kernel, but it still crashes, just not as often.

So I compile my own 2.6.15.4 version of the kernel. It doesn't support the graphical boot screen, and it reports some meaningless errors. I don't care. My version of the kernel is stable and it supports all my hardware.

My SATA DVD drive arrives. I remove my IDE drive and install the SATA drive. My Linux kernel can't recognize the drive. Why? Because there is a kernel driver parameter called atapi_enabled that needs to be set to 1 in order for the kernel to recognize the DVD/CD drive. I modify the source code to change the default and recompile. That works. (You don't have to modify the source, but it's beyond the scope of this rant to explain why I chose that method over the alternatives.)

Then I attempt to install the AMD64 version of Debian. Thanks to the default atapi_enabled=0 in the Debian kernel on the DVD, the installation program can't find the DVD/CD drive in order to install the software. I can't find any way to change the parameter to 1. I read that the kernel boot option libata.atapi_enabled=1 should work, but it doesn't. So I can't install Debian AMD64 (or probably any other distribution) unless I put an additional IDE DVD/CD drive in the machine. That's nuts.

Then I run Firefox under Kubuntu. The latest official Kubuntu version is 1.07. I want to use 1.5 or later, and there is no AMD64 version available. So I compile one myself. That's fine, but no AMD64 version of Firefox can run Flash because there is no 64-bit version of Flash. There is an AMD64 version of Java, but it doesn't include a plugin library, so I can't run AMD64 Java from this browser, either. The Ubuntu forums explain how to get 32-bit Firefox working with Flash and Java without having to chroot to a 32-bit environment, but those instructions don't work for me. I eventually track the problem down to another kernel configuration option.

I suppose I can avoid all these problems by running i386 versions of Linux on this machine. I suppose I could also have avoided all these problems if I had researched existing support for AMD64 and chose not to go with an AMD64 chip. But I didn't think I had to research AMD64 support. The AMD64 is practically an old chip now by modern standards. There are lots of notebook computers that use a version of the AMD64, so don't tell me it's a server-only chip.

Granted some of the problems are external to Linux, such as the lack of an AMD64 Java plugin library and lack of AMD64 Flash plugin. But there's no excuse for Linux being unable to recognize a SATA DVD/CD drive, no matter what chip you're using. And since Ubuntu shows that it is possible with customization, there's no excuse for any AMD64 distribution failing to let you run 32-bit Firefox with plugins right out of the box.

The 64-bit version of Windows is still struggling. So there is still a window of opportunity for Linux to be the first, best AMD64 desktop platform. It's high time distro developers (and third parties) got off their arses to help make this possible.

Nicholas Petreley is Editor in Chief of Linux Journal and a former programmer, teacher, analyst and consultant who has been working with and writing about Linux for more than ten years.

LJ Archive