===== The rt2x00 project ====== Wireless cards based on RaLink's chipsets are very well-suited for Linux computers. RaLink actively supports Linux and the Open Source community by releasing the code for a driver and configuration utility. Based on that code, re-developed drivers for these cards are hosted at [[http://rt2x00.serialmonkey.com]]. These drivers (although still in beta) are working well and are quite stable. They are different from other modern wireless drivers in that they have built-in WPA support. It is not dependent on a third-party tool like [[http://hostap.epitest.fi/wpa_supplicant/ | wpa_supplicant]]. The rt2x00 driver will eventually replace the current rt2400, rt2500, rt2570, rt61 and rt73 drivers. ==== Kernel-supported rt2x00 (2.6.24 and later) ==== The rt2x00 driver included in the Linux kernels since 2.6.24 and which replaces all of the legacy RaLink drivers, does not have a built-in WPA support. Instead, it communicates with wpa_supplicant through the **''wext''** driver of wpa_supplicant. For more information on how to configure wpa_supplicant see the [[:slackware:network#wpa_encryption|WPA section of my //Slackware network configuration// page]]. ==== Legacy drivers ==== I still use the "legacy" drivers from the Serialmonkey web site myself, since I do not consider the kernel's own rt2x00 driver stable enough (for me the rt2x00 often does not work with WPA connections). Therefore, the rest of this article concerns itself with building and configuring these out-of-kernel modules. === Getting the software === I maintain a Slackware package for several RaLink drivers. For instance, you will find the rt2500 driver (54Mbit wireless cards) [[http://www.slackware.com/~alien/slackbuilds/rt2500/ | here]]. Install a package for your release of Slackware (the version number should correspond with your running kernel) or build your own package using the [[http://www.slackware.com/~alien/slackbuilds/rt2500/build/rt2500.SlackBuild | SlackBuild script]] and the other files found in that location. An easy way to download all source files in one command is lftp -c "open http://www.slackware.com/~alien/slackbuilds/rt2500/; mirror build" When this command completes, you will end up with a subdirectory called "//build//" in your current directory. Build the package as follows: cd build sh rt2500.SlackBuild The resulting package will be created in the ''/tmp'' directory and can be installed with (for example) installpkg /tmp/rt2500-20080517_2.6.24.5_smp-i486-1alien.tgz SlackBuild scripts and packages for the rt2570, rt61 and rt73 drivers can be found at the same location. Build and installation is analogous to the above instructions for the rt2500 driver. === Loading and configuring the rt2500 driver === After installing the software, a simple /sbin/modprobe rt2500 is enough to load the driver. A reboot would do the same, if you have enabled hotplug. Without hotplug, you can add the line ''/sbin/modprobe rt2500'' to the end of either /etc/rc.d/rc.netdevice or /etc/rc.d/rc.modules so that the driver will load upon boot.\\ This will create an network device called //__ra0__// . Slackware since release 10.2 can handle network devices that are not called //ethX// and you can have a look at the [[#sample_configuration | sample configuration below]]. For older releases of Slackware, you can have a look at [[http://www.slackware.com/~alien/rc_scripts/ | my updated network scripts]] that are written as a drop-in replacement for your current //rc.inet1// and/or //rc.wireless// scripts (if you upgrade, upgrade them both!). === Sample configuration === Taken from my ''/etc/rc.d/rc.inet1.conf'', your configuration for a rt2x00 driven card could look like this (several parameter values are specific to your own network and you should edit where appropriate): # Config information for ra0: IFNAME[5]="ra0" IPADDR[5]="" NETMASK[5]="" USE_DHCP[5]="yes" DHCP_HOSTNAME[5]="icculus" WLAN_ESSID[5]=MYWAVES WLAN_MODE[5]=Managed WLAN_CHANNEL[5]="auto" WLAN_IWPRIV[5]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=1234567890123456789012345678901234567890123456789012345678901234" The last line (//WLAN_IWPRIV[5]//) is the necessary configuration for WPA. The 64-character string '//12345.....901234//' I copied in there should be replaced by your Access Point's 64-character hexadecimal WPA key. The above notation for the **//WLAN_IWPRIV//** variable has changed starting with Slackware 12.0. The old notation for ''IWPRIV'' in before Slackware 12.0 was like this: \\ ''WLAN_IWPRIV[5]="AuthMode=WPAPSK EncrypType=TKIP WPAPSK=the64characterkey"'' \\ Starting with Slackware 12.0, you should use the new syntax WLAN_IWPRIV[5]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=the64characterkey"