Out On The Edge
In my spare time (such as it is), I’ve been attempting to build and install a J2EE application server on a Linux system. My intention is to use it for testing and some other development activities when the new project gets rolling (we’re in that interim phase between submission of the cost/timeline and being given the go-ahead to get started on development).
I built an AMD Athlon 64 system and put SuSE 9.2 professional on it. Now my office is already full of hardware, and it’s on the verge of being uncoolable in the summer. So I decided I needed to put this new system somewhere else. With all the fans it’s pretty noisy, so I decided to put it in the guest room. It’s not used often, and if it’s being used then I can shut the system down.
Having decided on the placement, that left the issue of getting network access. I didn’t want to hard-wire an Ethernet port in there, and I definitely didn’t want wires strewn across the floor between there and the office, which left me with the wireless option. Wireless on Linux is something of a difficult area, though, since most chipset makers won’t release either a driver or the specs to create a driver. However, Linux geeks don’t give up easily, so there are various reverse-engineered drivers available. And for those cards that won’t easily give up their secrets for reverse-engineering, someone created a handy hack called ‘ndiswrapper’, which lets you load the Windows driver in Linux. I did some research on the various sites and decided on a Linksys USB 802.11g adapter, since it showed support through ndiswrapper.
After installing SuSE, I noticed that the adapter wasn’t seen automatically, which was to be expected. So I tried ndiswrapper with the Win32 driver. It reported that it couldn’t see the hardware, which was sort of an inauspicious start. Some research showed that a newer version of ndiswrapper corrected this problem, so I downloaded the package, installed the kernel sources, and built a new ndiswrapper. That went well, and ndiswrapper reported that the driver had been installed and the hardware was present.
Then I ran into the 64-bit wall. The driver wouldn’t load, since I was running a 64-bit system and the driver was 32-bit. Some checking showed that there are very few 64-bit Windows wireless drivers, and to use ndiswrapper on my system I’d need one of those. I briefly considered trying to run the system with the 32-bit kernel, but the SuSE installer was too smart for me. There is no option (at least that I could find) to override the automatic architecture detection in the installer. So I was stuck with 64-bit (even though the AMD64 architecture allows full backwards compatibility with 32-bit code).
A little more research into the area of 64-bit Linux with wireless showed that the solution was to find an adapter that used one of the chipsets that had a “native” Linux driver. Some more research on drivers and chipsets allowed me to make a list of potential PCI cards to use and a quick trip to Staples yielded a NetGear WG311TNA PCI card. I popped the card in, booted up, and SuSE automatically found the new card and let me configure it. After all that fiddling, it was almost a letdown for it to be that simple.
Despite having been out for over a year, I suppose 64-bit processors in the PC world are still pretty new. What’s bad is that I didn’t even think about 64-bit being an issue. Oh well, they don’t call it the “bleeding edge” for nothing. If nothing else, I can serve as an example to others of what not to do.
It is a bit of a bummer to have all your mad hacking skillz be preempted with a native driver. As I always tell myself at the end of one of those episodes, someday I’ll be able to use this (and then I promptly forget it.)