ubuntu下腾达W541U V2.0 无线网卡驱动的使用

原创
2016-06-07 15:27:00 1422浏览

7月中旬买了块腾达的Tenda W541U V2.0的无线网卡,当时没想到要在linux下用,回来后才发现驱动问题比较麻烦,官方不提供linux下的驱动,网上的解决方案没有试成功的,很是郁闷。 给Tenda的技术支持写过信,给到了一个驱动,但没有说具体编译的细节,自己试着

7月中旬买了块腾达的Tenda W541U V2.0的无线网卡,当时没想到要在linux下用,回来后才发现驱动问题比较麻烦,官方不提供linux下的驱动,网上的解决方案没有试成功的,很是郁闷。

给Tenda的技术支持写过信,给到了一个驱动,但没有说具体编译的细节,自己试着编译出一个.o文件,lsmod后还是检测不到无线网卡。再写信就无回音了。可能这个问题很好解决,但自己确实搞不定。

前两天到ubuntu论坛网站上去看,发现老外的一篇贴子,说是解决了这个问题,按照相应步骤试了一下,果然编译了可以使用的驱动,现将步骤和应注意事项总结如下,还希望能帮助和我一样用Tenda W541U V2.0(这个型号我现在是倒背如流了)无线网卡的人!

参考的网址:http://georgia.ubuntuforums.org/showthread.php?t=1285828
标题是:Tenda W541U V2.0 Wireless USB Adapter / Ralink RT2070

具体的流程大家可以参考贴子上的步骤进行,我只是简单的总结一下流程与要需注意的地方:

一、需求:

1 硬件:
无线网卡型号:
Tenda W541U V2.0 Wireless USB Adapter ( Ralink RT2070L Chipset)

在命令终端里输入:lsusb
关于无线网卡的内容应该是类似于以下:
Bus 001 Device 003: ID 148f:2070 Ralink Technology, Corp.
其中ID 后面必须是148f:2070 ,如果不是,不能保证后面是否成功。|
2 驱动下载:
Driver:
RT3070USB(RT307x) http://www.ralinktech.com/support.php?s=2

3 操作系统:ubuntu 9.04

二、步骤:
注意: 以下操作凡是因权限问题而未执行的,请在前面加上sudo再次尝试!
1. 下载RT3070USB driver(上面的网址)
2. 解压:
#sudo tar jxvf 2009_0525_RT3070_Linux_STA_v2.1.1.0.bz2
3 在 os/linux下的usb_main_dev.c 里的#ifdef RT3070下面增加以下语句:
{USB_DEVICE(0x148F,0x2070)}, /* Ralink 2070L */
4 编译模块:
回到刚开始的目录,即解决完进入的第一层目录:
cd ../..
make
5 如果编译成功,则安装:|
make install
如果编译不成功,且你的LINUX 内核版本高于等于2.6.31 的情况,请到步骤11查看并处理!

6 COPY .DAT文件到 /etc/Wireless,copy .bin 到 /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/

注意:要安装dos2unix来去掉一些windows下文件转过来时的多余的字符。
7 启动模块:
#modprobe rt3070sta
8 测试模块(以下192.168.0.33的IP地址自己定 ):
#ifconfig ra0 inet 192.168.0.33 up

#iwconfig ra0
这时,如果输入:ifconfig,应该可以看到ra0设备
9 配置网卡:
因为我用的不是ubuntu默认的网络管理工具,而是WICD工具,只需要 无线网络 处填入 ra0后其它的按相应网络设定配置后 即可配置完毕。
有两点要注意的:
a) 至于有用到WPA方式加密的情况,参考贴里有提到需要修改编译时的配置文件 os/linux/config.mk:
HAS_WPA_SUPPLICANT=y
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
b) 如果使用WICD工具的话,将WPA Suppliant Driver选为wext。

10 刷新后,无线网络应该能被检测到,终于可以告别有线的日子了。happy一个!

11 对于LINUX 内核版本高于等于2.6.31 的情况,编译时会出现一个编译错误,参考贴中提供了patch。
下面这段我就不翻了,大家基本上都能看明白的。

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 

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)

12 我只是将W541U用来当Station模式来用,AP模式还没用过,具体设置不知如何操作。

祝各位好运!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。