7月中旬买了块腾达的Tenda W541U V2.0的无线网卡,当时没想到要在linux下用,回来后才发现驱动问题比较麻烦,官方不提供linux下的驱动,网上的解决方案没有试成功的,很是郁闷。 给Tenda的技术支持写过信,给到了一个驱动,但没有说具体编译的细节,自己试着编译出一个.o文件,lsmod后还是检测不到无线网卡。再写信就无回音了。可能这个问题很好解决,但自己确实搞不定。 前两天到ubuntu论坛网站上去看,发现老外的一篇贴子,说是解决了这个问题,按照相应步骤试了一下,果然编译了可以使用的驱动,现将步骤和应注意事项总结如下,还希望能帮助和我一样用Tenda W541U V2.0(这个型号我现在是倒背如流了)无线网卡的人! 参考的网址:http://georgia.ubuntuforums.org/showthread.php?t=1285828 具体的流程大家可以参考贴子上的步骤进行,我只是简单的总结一下流程与要需注意的地方: 一、需求: 1 硬件: 二、步骤: 注意:要安装dos2unix来去掉一些windows下文件转过来时的多余的字符。
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.
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) 12 我只是将W541U用来当Station模式来用,AP模式还没用过,具体设置不知如何操作。 |