Nathan's Weblog
   


This is Nathan Lutchansky's weblog, Copyright (C) 2003-2005 Nathan Lutchansky.

Contact

  • Email
  • Web page
  • Categories

  • Tech
  • Personal
  • Subscribe

  • Atom feed
  • RSS feed
  • LiveJournal

  •        

    Sat, 20 Mar 2004
    Bittersweet victory

    Sad is the world of Linux wireless Ethernet. Sure, the "traditional" chipsets like Orinoco/WaveLAN, Prism, and Aironet work as well as they always have, but newer hardware like the Atheros chipset, the new MPI-350 card from Cisco, and the infamous Centrino chipset are all only supported by broken/outdated closed-source drivers, or are not supported at all.

    My new Thinkpad is "wireless-ready" meaning it has a built-in antenna and a mini-PCI slot for a wireless card. Nifty, right? The niftiness of having internal wireless hardware combined with the advantage of being able to select a NIC with good Linux drivers. But naturally, IBM doesn't make it this easy. For "regulatory" reasons, which I guess are understandable considering the anal retentiveness of the FCC, the BIOS is programmed to accept only one of three cards in the mini-PCI slot. You can guess which three cards they are based on the previous paragraph.

    The Thinkpad shipped with a Centrino card, which wasn't looking promising as Intel has been promising Linux drivers for over a year now without delivering anything. The best option seemed to be the Aironet card, since older Aironet cards have been supported under Linux since the beginning of time. The "official" Cisco Linux driver for the MPI-350 was a closed source module last updated over a year ago, but kernel 2.6.3 was released with experimental support for the card in the airo module, so I figured my odds of getting it working were good.

    I priced out the MPI-350 in the usual places, coming up with about $70, but then it occurred to me that the IBM OEM cards might have a different PCI ID and only the IBM-supplied MPI-350s would make it past the Nazi BIOS. So I bit the bullet and ordered an Aironet MPI-350 for $120 from IBM.

    The day before my new card showed up, Intel announced the first release of their Linux Centrino wireless driver. Open-source and everything. I tried it out and it worked. But a bit buggy and no WEP, so I decided not to return the Aironet card.

    So today I finally got around to installing the new card. Hardware installation was painless, of course. Then I booted up and found that the airo module had been loaded, but the card wasn't associating with the access point. A Google search revealed that my card's firmware was too new, and that I needed to downgrade to 5.00.03 to get it to work. No problem, I can download that from Cisco, and flash it into the card with... oops.

    The open-source driver won't talk to the new firmware at all. The Cisco Linux driver also requires an older firmware, so there were zero options for flashing the card on Linux.

    Two hours later, Windows XP was restored on the laptop. Three minutes after that, the card had been downgraded. An hour later, Linux was back.

    One final issue. Although Linux could now talk to the card, it wouldn't associate with an access point. It seemed to be a problem with the WEP configuration due to messages like:

    Setting key 0
    airo: Max tries exceeded waiting for command
    PC4500_writerid: Write rid Error 65535
    PC4500_writerid: Cmd=0121
    airo:  WEP_PERM set ffff

    The solution was to download the Cisco Linux Aironet Configuration Utility (ACU), which actually works with the open-source kernel module as well as Cisco's kernel module, and use that to set the WEP key. Since the card stores the key in non-volatile memory, this only needs to be done once. Now when I boot the system, I use iwconfig eth1 enc on to enable WEP without trying to set a key, and this uses the stored key to associate with the access point. Success!

    I believe at this point, my laptop is now fully functional. All I need to do now is figure out how to do some of the fancier power management to squeeze the maximum life possible out of my battery.

    [/tech/admin] Posted at: 18:46

    Comments

    Your Comment

     
    Name:
    URL/Email: [http://... or mailto:you@wherever] (optional)
    Title: (optional)
    Comment:
    Save my Name and URL/Email for next time