[SOLVED] Re: RaLink 5370 USB Wifi Dongle

Kevin J. Cummings cummings at kjchome.homeip.net
Sun Sep 25 19:47:43 UTC 2011


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=U0wyRnpjMlYwY3k4eU1ERXhMekExTHpFeEwyUnZkMjVzYjJGa056azVPREF3T1RFek9DNWllakk5UFQweU1ERXhYekEwTURkZlVsUXpNRGN3WDFKVU16TTNNRjlTVkRVek56QmZVbFExTXpjeVgweHBiblY0WDFOVVFWOVdNaTQxTGpBdU1sOUVVRTg9Qw%3D%3D

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 at 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.

-- 
Kevin J. Cummings
kjchome at verizon.net
cummings at kjchome.homeip.net
cummings at kjc386.framingham.ma.us
Registered Linux User #1232 (http://www.xlinuxcounter.net/)


More information about the users mailing list