Finally I got a WiFi driver installed last night that works!
OK, I'm using the following software from RaLink:
http://www.ralinktech.com/license_us.php?n=2&p=0&t=U0wyRnpjMlYwY3k4e...
This is the 2.5.0.2 driver dated 05/11/2011. I had to make the following edits to the source in order for it to work for me with the 2.6.35.14-96.fc14.x86_64 kernel:
This change is to ensure that the module works properly with Fedora's NetworkManager!
os/linux/config.mk:
--- config.mk~ 2011-04-06 21:46:49.000000000 -0400 +++ config.mk 2011-09-24 23:50:16.020580997 -0400 @@ -54,11 +54,11 @@ HAS_APCLI=n
# Support Wpa_Supplicant -HAS_WPA_SUPPLICANT=n +HAS_WPA_SUPPLICANT=y
# Support Native WpaSupplicant for Network Maganger -HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n +HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
#Support Net interface block while Tx-Sw queue full HAS_BLOCK_NET_IF=n
This next change removes the "tainted" message when installing the module.
os/linux/usb_main_dev.c:
--- usb_main_dev.c~ 2011-04-06 21:46:49.000000000 -0400 +++ usb_main_dev.c 2011-09-23 01:23:44.772507004 -0400 @@ -38,6 +38,7 @@ /* Otherwise post to forum in ralinktech's web site(www.ralinktech.com) and let all users help you. *** */ MODULE_AUTHOR("Paul Lin paul_lin@ralinktech.com"); MODULE_DESCRIPTION("RT2870 Wireless Lan Linux Driver"); +MODULE_LICENSE("GPL"); #ifdef CONFIG_STA_SUPPORT #ifdef MODULE_VERSION MODULE_VERSION(STA_DRIVER_VERSION);
And finally, this last change fixes the "unknown symbols" problem when the module is loaded.
include/os/linux/rt_linux.h:
--- rt_linux.h~ 2011-04-06 21:46:49.000000000 -0400 +++ rt_linux.h 2011-09-23 01:29:52.752507004 -0400 @@ -1160,8 +1160,8 @@ #define RTUSB_URB_ALLOC_BUFFER(_dev, _size, _dma) usb_alloc_coherent(_dev, _size, GFP_ATOMIC, _dma) #define RTUSB_URB_FREE_BUFFER(_dev, _size, _addr, _dma) usb_free_coherent(_dev, _size, _addr, _dma) #else -#define RTUSB_URB_ALLOC_BUFFER(_dev, _size, _dma) usb_buffer_alloc(_dev, _size, GFP_ATOMIC, _dma) -#define RTUSB_URB_FREE_BUFFER(_dev, _size, _addr, _dma) usb_buffer_free(_dev, _size, _addr, _dma) +#define RTUSB_URB_ALLOC_BUFFER(_dev, _size, _dma) usb_alloc_coherent(_dev, _size, GFP_ATOMIC, _dma) +#define RTUSB_URB_FREE_BUFFER(_dev, _size, _addr, _dma) usb_free_coherent(_dev, _size, _addr, _dma) #endif #else #define RTUSB_URB_ALLOC_BUFFER(_dev, _size, _dma) kmalloc(_size, GFP_ATOMIC)
Actually, this last change probably should be wrapped with:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
as it was in os/linux/rt_usb_util.c
To build it, I did:
make clean; make; sudo make install
from the top level directory, and it will produce a kernel module named: rt5370sta (at least it does for me). While testing, I used modprobe to load it, after making sure that no other rtxxxxx module was loaded (rmmod). When I rebooted, the interface came up automatically.