Page 1 of 15 12311 ... LastLast
Results 1 to 10 of 142

Thread: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

  1. #1
    Join Date
    Mar 2008
    Beans
    33

    Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    Hi,

    After some time of searching, switching between sadness and happiness and pulling my hair out I finally got my Tenda W541U V2.0 a.k.a. Tenda 54M Mini, a.k.a. Ralink RT2070L working.

    I wrote this tutorial because I googled and I found nothing, nobody seems to know how to do it or is not willing to share his method. I even emailed Tenda support and they said their hardware is not working on Linux but it seems it actually does.

    Note: There are many CHEAP usb adapters that are based on this Ralink chipset, the best way to see if yours is using it is to do a lsusb, and check for 148f:2070 at ID.

    Hardware:
    Tenda W541U V2.0 Wireless USB Adapter ( Ralink RT2070L Chipset)

    Bus 001 Device 003: ID 148f:2070 Ralink Technology, Corp.

    Driver:
    RT3070USB(RT307x) http://www.sendspace.com/file/xfk1tg

    Host:
    Linux mercury 2.6.28-15-generic #52-Ubuntu SMP Wed Sep 9 10:49:34 UTC 2009 i686 GNU/Linux

    Ubuntu 9.04 \n \l

    Tutorial:

    1. Download the RT3070USB driver from Ralink. (link is listed above).
    2. Unpack it.

    Code:
    $sudo su
    #tar jxvf 2009_0525_RT3070_Linux_STA_v2.1.1.0.bz2
    3. Navigate to os/linux and add the following line to usb_main_dev.c

    Code:
    #cd 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux
    #pico usb_main_dev.c
    ...
    add:
            {USB_DEVICE(0x148F,0x2070)}, /* Ralink 2070L */
    under #ifdef RT3070
    ...
    4. Compile the module.

    Code:
    #cd ../..;make
    5. Install the module.

    Code:
    #make install
    6. Copy the .DAT file to /etc/Wireless. (the install script should do it but just in case). Also copy the rt2870.bin file to /lib/firmware. (just in case).

    Code:
    #mkdir -p /etc/Wireless/RT2870STA
    #cp RT2870STA.dat /etc/Wireless/RT2870STA/
    #apt-get install tofrodos
    #dos2unix /etc/Wireless/RT2870STA/RT2870STA.dat
    #chmod +x /etc/Wireless/RT2870STA/RT2870STA.dat
    
    #cp common/rt2870.bin /lib/firmware/
    7. Start the module.

    Code:
    #modprobe rt3070sta
    8. Test to see if it works.

    Code:
    #ifconfig ra0 inet 192.168.0.33 up
    
    #iwconfig ra0
    9. Configure the card.

    For step 9, you can find numerous tutorials, the configuration is exactly the same as for the rt2870 chipset.

    UPDATE: Linux Kernel >= 2.6.31 / Ubuntu Karmic Koala 9.10 compile patch!
    Ok, after speaking with another person and installing Ubuntu 9.10 on my other box I noticed this driver will not compile on my brand new 2.6.31-14-generic kernel.

    The error I received (and probably many people do when attempting to compile most ralink drivers under 2.6.31 because this kernel replaced the old net_device structure with a new one called net_device_ops) was:

    Code:
      CC [M]  /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.o
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c: In function ‘RtmpOSNetDevAttach’:
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c:1510: error: ‘struct net_device’ has no member named ‘open’
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c:1511: error: ‘struct net_device’ has no member named ‘stop’
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c:1512: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c:1513: error: ‘struct net_device’ has no member named ‘do_ioctl’
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c:1519: error: ‘struct net_device’ has no member named ‘get_stats’
    /root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.c:1553: error: ‘struct net_device’ has no member named ‘validate_addr’
    make[2]: *** [/root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/../../os/linux/rt_linux.o] Error 1
    make[1]: *** [_module_/root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-14-generic'
    make: *** [LINUX] Error 2
    After some deep searching I found this rt3070-2.6.31-compile.patch (a part of rt3070-kmod Fedora 11 package) on lists.rpmfusion.org/pipermail/rpmfusion-commits/2009-August/006214.html. Once you apply it, it will compile just fine.

    I have attached it to this post, just:

    Code:
    $gunzip rt3070-2.6.31-compile.patch.gz
    
    $patch -p0 < rt3070-2.6.31-compile.patch
    
    patching file 2009_0525_RT3070_Linux_STA_v2.1.1.0/include/rtmp_os.h
    patching file 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/rt_linux.c
    patching file 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/rt_main_dev.c
    
    $cd 2009_0525_RT3070_Linux_STA_v2.1.1.0/
    
    $make
    Also make sure that rt2800usb, rt2x00usb and rt2x00lib are blacklisted as they now recognize this device (under Ubuntu 9.10) but the device will not function properly (no scan results).

    Code:
    $sudo pico /etc/modprobe.d/blacklist.conf
    
    add the following lines:
    blacklist rt2x00usb
    blacklist rt2x00lib
    blacklist rt2800usb
    close and save.
    
    $sudo rmmod rt2x00usb (just in case)
    $sudo rmmod rt2x00lib (just in case)
    $sudo rmmod rt2800usb (just in case)
    Good luck.

    Update 2: If when you are trying to load the module you receive the following (on Karmic):

    Code:
    $sudo modprobe rt3070sta
    $dmesg
    815108.907620] rt3070sta: module is from the staging directory, the quality is unknown, you have been warned.
    And your device is NOT detected, copy the rt3070sta.ko file in the staging directory like this:

    Code:
    $cd os/linux
    $sudo cp ./rtk3070sta.ko /lib/modules/`uname -r`/kernel/drivers/staging/rt3070/
    $sudo rmmod rt3070sta
    $sudo modprobe rt3070sta
    Update 3:
    For some reason the common/rtusb_io.c file contains a very annoying line that will fill your dmesg with empty lines cointaining only #. In order to fix this "bug":

    Code:
    $nano common/rtusb_io.c
    replace:
    DBGPRINT(RT_DEBUG_OFF, ("#\n"));
    with:
    //DBGPRINT(RT_DEBUG_OFF, ("#\n"));
    $sudo make clean && make && make install
    Also I noticed Ralink "updated" the driver "directory" as the driver itself still wont compile on 2.6.30 >= kernels, and from a first impression it is the exact same driver. A quick fix would be to do the following, after you download the and extract driver archive:

    Code:
    $mv 2009_1106_RT3070_Linux_STA_V2.1.1.0 2009_0525_RT3070_Linux_STA_v2.1.1.0
    That is because the rt3070-2.6.31-compile patch is designed to search for that directory in particular.

    Security Update:
    For those using this driver with wpasupplicant you should know about this bug which could affect your system:

    http://bugzilla.kernel.org/show_bug.cgi?id=14591

    A quick fix for it is to:

    Code:
    $cd os/linux
    $nano sta_ioctl.c
    replace
    struct iw_mlme *pMlme = (struct iw_mlme *)wrqu->data.pointer;
    with
    struct iw_mlme *pMlme;
    and
    struct iw_pmksa *pPmksa = (struct iw_pmksa *)wrqu->data.pointer;
    with
    struct iw_pmksa *pPmksa;
    $sudo make clean && make && make install
    The only disadvantage is that the driver will lack SIOCSIWPMKSA and SIOCSIWMLME functions. However I managed to connect to the AP (WPA,WEP) just fine w/out these two.

    Update: Ralink kept changing the driver version, so I added a link to 2009_0525_RT3070_Linux_STA_v2.1.1.0.bz2. Also I tried to compile the driver with the patch applied on 2.6.32-22-generic-pae (Lucid) and it worked.
    Attached Files Attached Files
    Last edited by lesnoland; June 7th, 2010 at 08:43 PM.

  2. #2
    Join Date
    Oct 2009
    Beans
    1

    Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    This is fantastic lesnoland. I almost gave up on installing Ubuntu on my daughter's PC because of this damn rt2070 chip! Your instructions are spot on.
    I would like to add a couple of tips to anyone who uses WPA security.
    Before compiling the driver, make the following changes in os/linux/config.mk:
    HAS_WPA_SUPPLICANT=y
    HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
    Also, if you are using WICD, ensure that WPA Suppliant Driver is wext.
    Finally, if you are running lesnoland's instructions in Ubuntu, type sudo at the start of each command as you will need to run them as root.

  3. #3
    Join Date
    Oct 2009
    Beans
    4

    Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    How to set rt2070 to mode Master ?

  4. #4
    Join Date
    Mar 2008
    Beans
    33

    Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    Quote Originally Posted by thanh2050 View Post
    How to set rt2070 to mode Master ?
    I dont think that is possible with this driver, and I am unaware of another drivers existance for Linux.

    However, I managed to provide Internet to my notebook by setting the notebooks wireless card to Master and connecting the USB Adapter to the AP. At first it felt kind of weird because the "router" was connecting to the "client" and not the other way around, but I encountered no problems.
    Last edited by lesnoland; October 19th, 2009 at 12:37 PM.

  5. #5
    Join Date
    Mar 2006
    Beans
    55
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    Thank you so much for this .. you're a life saver

  6. #6
    Join Date
    Jul 2006
    Beans
    68
    Distro
    Ubuntu 10.04 Lucid Lynx

    Lightbulb Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    I can confirm (with patch) for Ubuntu Karmic Koala with a "0df6:003e Sitecom Europe B.V."

    Sorry for my bad English
    Before buy Check your hardware is compatible on Ubuntu Hardware Compatibility List.

  7. #7
    Join Date
    Oct 2009
    Beans
    2

    Unhappy Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    In Ubuntu 9.10 (10.29)
    I type:modprobe rt3070sta
    then:lsmod
    but I didn't found "rt3070sta",the 3070 didn't load.can you please tell me why?

  8. #8
    Join Date
    Oct 2009
    Beans
    2

    Unhappy Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    I modprobe rt2800usb ,it can find the wireless Adapter, can find wireless network,but through the connecting I can't explore www. if I rmmod rt2800usb and modprobe rt3070sta,lsmod , I can't find rt3070sta,reboot,also. please help me.thanks !

  9. #9
    Join Date
    Jul 2009
    Beans
    37

    Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    I'm using an Azio usb wireless adapter with the rt3070 chipset, and this little tutorial (with the patch on the end) finally got my wireless card working in 9.10

    I thought I was doomed.

    THANK YOU!!!!

  10. #10
    Join Date
    Jan 2008
    Beans
    2

    Smile Re: Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070 How To

    Thank you very much. With your instruction, my 0411:015d MelCo., Inc. (Buffalo WLI-UC-GN 802.11n USB-WiFi adapter) is working fine under Ubuntu 9.10 now.

Page 1 of 15 12311 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •