Archive for December, 2007

Fixing rt61pci in Ubuntu Gutsy

December 9, 2007

I’d experienced what were, judging by the forums, similar issues to many others using Gutsy with the supplied rt2x00 drivers. Wireless when connected worked just fine, but wouldn’t connect on login; you’d need to either click on the network manager icon, and then on the wireless connection to force a reconnect, or with the network using ‘manual configuration’, untick/tick the configured connection.

There are various solutions proposed using the ‘legacy’ rt61 drivers, but I wanted something that worked well with network manager – hence fixing the Gutsy ‘rt61pci’ approach. Here’s how, from the terminal:

  • Do a search for rt2x00-cvs-20070914.tar.bz2 , and download (you can find this here). I found issues with the latest rt2x00 source and the stock kernel, but this version seems to work fine.
  • Unpack the file, using the command: tar xjvf rt2x00-cvs-20070914.tar.bz2
  • Following the advice found on the rt2x00 forum, detailed here , using a text editor make the following changes to the source:
    • in source/rt2x00/rt2x00mac.c : search for “rt2x00dev->interface.id, and remove that specific block of text where found, including the comma (there should be two instances of this).
    • in source/rt2x00/rt2x00_compat.h : Add the line:
  • #define IEEE80211_TXCTL_LONG_RETRY_LIMIT (1 << 20)
    below the line:

    #define RT2X00_COMPAT_H

  • Now, from the source/rt2x00 directory, do a make .  The source should compile cleanly.  Then, sudo make install
  • Now, change to the /lib/modules/2.6.22-14-generic directory.  Backup the contents of the ubuntu/wireless/rt2x00 directory to somewhere outside of the /lib/modules structure, and delete.  You can use this to restore from if you find that the newly compiled modules don’t work as anticipated.
  • Finally, to neaten things up, do a sudo mv rt2x00 ubuntu/wireless/ which will move your newly compiled modules to the default location.

Reboot, and the wireless should now work as intended!