In middle July, I bought a TendaW541UV2.0 wireless network card from tengda. I didn't expect it to be used in linux. I came back and found that the driver problem was troublesome. The official website did not provide a linux driver, the solution on the Internet was not successful, and it was depressing. I wrote a letter to the technical support of Tenda and gave a driver, but I didn't talk about the details of the compilation. I tried it myself.
In middle July, I bought a Tenda W541U V2.0 V2.0 wireless network card. I didn't expect it to be used in linux. When I came back, I found that the driver problem was troublesome. The official website did not provide a linux driver, the solution on the Internet was not successful, and it was depressing. I wrote a letter to the technical support of Tenda and gave a driver, but I didn't talk about the details of the compilation. I tried it myself.
In middle July, I bought a Tenda W541U V2.0 V2.0 wireless network card. I didn't expect it to be used in linux. When I came back, I found that the driver problem was troublesome. The official website did not provide a linux driver, the solution on the Internet was not successful, and it was depressing.
I wrote a letter to the technical support of Tenda and gave a driver, but didn't talk about the details of the compilation. I tried to compile a. o file myself, And lsmod still couldn't detect the wireless network card. No response is returned when you write a letter. This problem may be a good solution, but I cannot solve it myself.
I went to the ubuntu Forum website two days ago and found a post from a foreigner, saying that this problem was solved. I tried it according to the corresponding steps and compiled the available driver, the steps and precautions are summarized as follows. I also hope to help me use Tenda W541U V2.0 (I am switching back to the stream for this model!
Reference URL: http://georgia.ubuntuforums.org/showthread.php? T = 1285828
Title: Tenda W541U V2.0 Wireless USB Adapter/Ralink RT2070
For specific procedures, you can refer to the steps on the post. I just want to briefly summarize the procedures and precautions:
I. Requirements:
1 hardware:
Wireless Network Card model:
Tenda W541U V2.0 Wireless USB Adapter (Ralink RT2070L Chipset)
Enter lsusb in the Command Terminal
The content of the wireless network adapter is similar to the following:
Bus 001 Device 003: ID 148f: 2070 Ralink Technology, Corp.
The ID must be followed by 148f: 2070. If it is not, it cannot be guaranteed whether the subsequent IDs are successful. |
2 driver download:
Driver:
RT3070USB (RT307x) http://www.ralinktech.com/support.php? S = 2
3 Operating System: ubuntu 9.04
2. steps:
Note: If you have not performed the following operations due to permission issues, add sudo to the beginning and try again!
1. Download RT3070USB driver (above URL)
2. decompress:
# Sudo tar jxvf 2009_0525_RT3070_Linux_STA_v2.1.1.0.bz2
3. Add the following statement under # ifdef RT3070 in usb_main_dev.c iN OS/linux:
{USB_DEVICE (0x148F, 0x2070)},/* Ralink 2070L */
4. Compilation module:
Go back to the initial directory to solve the first-level directory:
Cd ../..
Make
5. If the compilation is successful, install: |
Make install
If the compilation fails and your LINUX kernel version is later than or equal to 2.6.31, go to Step 11 to check and process it!
6 COPY the. DAT file to/etc/Wireless, copy. bin to/lib/firmware
# 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/
Note: Install dos2unix to remove unnecessary characters when files are transferred in windows.
7 startup module:
# Modprobe rt3070sta
8. Test Module (set the IP address of 192.168.0.33 as follows ):
# Ifconfig ra0 inet 192.168.0.33 up
# Iwconfig ra0
If you enter ifconfig, you can see the ra0 device.
9 configure the NIC:
Because I use not the default network management tool of ubuntu, but the WICD tool, I only need to enter ra0 in the wireless network, and the other will be configured according to the corresponding network settings.
Note the following two points:
A) As for the WPA-based encryption, refer to the reference post to modify the configuration file OS/linux/config. mk during compilation:
HAS_WPA_SUPPLICANT = y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT = y
B) if you use the WICD tool, select the WPA Suppliant Driver as wext.
10 after the refresh, the wireless network should be able to be detected, and finally we can say goodbye to the wired day. Happy!
11 if the LINUX kernel version is later than or equal to 2.6.31, a compilation error occurs during compilation. See the patch provided in the reference post.
I won't go over the following section. You can basically understand it.
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 got Ed (and probably got 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 1make[1]: *** [_module_/root/2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux] Error 2make[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.patchpatching file 2009_0525_RT3070_Linux_STA_v2.1.1.0/include/rtmp_os.hpatching file 2009_0525_RT3070_Linux_STA_v2.1.1.0/os/linux/rt_linux.cpatching 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.confadd the following lines:blacklist rt2x00usbblacklist rt2x00libblacklist rt2800usbclose and save.$sudo rmmod rt2x00usb (just in case)$sudo rmmod rt2x00lib (just in case)$sudo rmmod rt2800usb (just in case)
12 I only use W541U as the Station mode, and the AP mode has never been used. I do not know how to operate the specific settings.
Good luck!