Slackware9 rt61 Howto
From Rt2x00Wiki
Contents |
RT61PCI Install on Slackware 9
By Zach Vickery, 2007
Yes, yes, I know it's an old distribution. But the details here should apply pretty well to newer Slackware versions and possibly other distributions too. So in a way this is a guide to installing a wireless card in an older distribution, or perhaps Slackware in general. At the least, I think my experiences documented below will be helpful to others..
Kernel Configuration
Your kernel will need to support wireless networking and all
subsystems appropriate for your card. For the RT61PCI, this included
CONFIG_NET_WIRELESS, CONFIG_NET_RADIO, and CONFIG_PCI. The default
Slackware kernel should have all of this but if you build your own
kernels you may want to double check that nothing has been disabled.
PCI Configuration
Obviously, you will want to install the card in the box before diving
in. Another key point is to have an updated PCI database (located in
/usr/share/pci.ids). With older distributions, an outdated pci.ids
database can cause the PCI subsystem to detect an "unknown network
controller" rather than the specific model that is installed. If in
doubt, grab the latest version from
[1]. With that said, after booting
up, run the command lspci. You should see something similar to the
below output:
01:0a.0 Network controller: RaLink RT2561/RT61 802.11g PCI
If you don't see this, it means the kernel is not seeing your hardware
and it will be impossible to load the driver. If you do see this,
you're ready to go. This output also has the side effect of
confirming which driver will be needed (in this case, the RT61). I
happened to have a Linksys WMP54G card but didn't know which driver I
needed until the above line from lspci told me.
Helper Packages
The wireless-tools package must be installed. This is included with Slackware and probably most any other distribution. It includes
commands like iwconfig and iwlist which are essential to using your wireless network card.
A recent version of the DHCP tools must also be installed (3.0.4 or later will
surely work with a wireless card, I'm not sure about earlier
versions). For my Slackware 9 system, this was a manual build and
update. This meant getting the source from
[2], building and installing. It should be an
easy update, should it be necessary. To determine which version you have, running the command dhclient -v will work.
You will also need kernel source installed in /usr/src/linux in order to build the module. Of course, the source must match the kernel you
are running. The Slackware stock kernel has corresponding source
packages that can be installed if you didn't install them on setup.
Building the Driver
With everything above in place, building and installing the driver
should be easy. Unpack the source in your favorite location and build
and install per the included directions. The end result is that a kernel module rt61.o will be installed in your kernel modules area. Typically this is the directory /lib/modules/<kernel version>/extra.
Loading the Driver
Once the driver is installed, the command /sbin/modprobe rt61 will
load the driver into your running kernel. If you would like the
module to automatically be loaded on boot, add the above modprobe
command to the end of /etc/rc.d/rc.modules.
Configuring the Wireless Card
With the driver loaded, the command /usr/sbin/iwconfig should reveal an interface ra0 representing your RT61 card. If ra0 exists, the command /sbin/ifconfig ra0 up will activate the wireless interface.
To verify that you can see wireless networks, the command iwlist ra0
scan will display all wireless networks in range that are
broadcasting their ESSIDs.
Once you know which network to which you would like to connect, use the following commands to do just that:
/usr/sbin/iwconfig ra0 essid "My Network" /usr/sbin/iwconfig ra0 channel 9 /usr/sbin/iwconfig ra0 key s:pword (for WEP networks) /sbin/dhclient ra0
Basically, this is setting the network name, channel, and WEP key for
your chosen network and then running dhclient to obtain a DHCP lease and perform the actual connection. The network name and channel can
be obtained from the iwlist ra0 scan output. Note that the network
does not have to be broadcasting its ESSID in order to connect in this
manner.
The final dhclient command will result in an IP address assigned to
ra0, routing tables configured, and DNS set up. After dhclient
finishes, the command /sbin/ifconfig ra0 should reveal that ra0 has an IP address associated with it. At this point everything should be working!
If you would like your system to associate with the network on boot,
you must be put the below commands in one of your system's startup
scripts (I used /etc/rc.d/rc.local but /etc/rc.d/rc.inet1 is also a good candidate):
/sbin/ifconfig ra0 up /usr/sbin/iwconfig ra0 essid "My Network" /usr/sbin/iwconfig ra0 channel 9 /usr/sbin/iwconfig ra0 key s:pword (for WEP networks) /sbin/dhclient ra0
Other Configuration
To get the wireless card to send a host name to the access point, the below line must be added to /etc/dhclient.conf:
send host-name "HOSTNAME";
dhclient.conf accepts many other parameters; for full details check out the man page (man dhclient.conf).
Conclusion
Hopefully this was helpful - it includes a few things I had to learn the hard way. Thank you also to the rt2x00 team for providing such an excellent driver collection and website to help people like myself get their cards running on Linux!
