`
marshal
  • 浏览: 294555 次
社区版块
存档分类
最新评论

TP-Link WN322G+ USB无线网卡在ubuntu8.04下的安装

阅读更多

TP-Link WN322G+ 是802.11g(54MB)的USB无线网卡

有windows驱动,但在Linux下安装,却比较麻烦。

芯片组比较新,是zd1215,ubuntu 8.04中使用的kernel(2.6.24-16-server)能够识别为zd1211,但是却无法配置使用。

试过很多办法,想在内核中加入合适的本地驱动,都没有成功。

只好改用ndiswrapper,见:http://ndiswrapper.sourceforge.net/ ,该工具可以使用windows的无线网卡驱动程序为linux 提供网卡支持。

相当于在windows驱动程序的包装器--包装为Linux下可用的驱动。

以下安装过程,其他无线网卡应该也适用。

 

安装步骤如下:

 

插入usb网卡 ,其实现在通过lsusb命令可以看到系统识别了,但是就是不可用,因为芯片的发射部分比驱动新。

安装ndiswrapper ,命令行下输入:

 

apt-get install ndiswrapper-common ndiswrapper-utils-1.9

 

找到usb网卡的windows驱动程序 ,tp-link的驱动在光盘中的相应目录,找到ZD1211BU.INF和ZD11BUXP.SYS两个文件,复制到ubuntu中。

如果是其他网卡,也要找到相应的inf和sys文件。如果驱动程序是exe或者cab格式,需要用zip或者cabextract工具解开并找到上述文件。

安装驱动程序 ,执行:

 

ndiswrapper -i ZD1211BU.INF

 

其中ZD1211BU.INF是驱动放置在ubuntu下的路径,我这里是在当前路径下。

加载驱动程序:

 

root@dell:~/54u# ndiswrapper -l
zd1211bu : driver installed
        device (0ACE:1215) present (alternate driver: zd1211rw)

 

设置 系统启动时加载, 编辑/etc/modules文件,在末尾加入:ndiswrapper

执行depmod ,检查当前加载的模块,如果没有报错,才可以执行下面的命令:

 

depmod -a

 

加载mdiswrapper模块 :

 

modprobe ndiswrapper

 

 加载wlan0:

 

root@dell:~/54u# ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...

************************************************************************
*
* The update-modules command is deprecated and should not be used!
*
************************************************************************

 

在ubuntu的模块黑名单上加上网卡的名称 ,该黑名单的作用就是不用ubuntu加载,而是自行负责加载。

网卡名称在执行“ndiswrapper -l”时的提示中找,这里是“zd1211rw”,在/etc/modprobe.d/blacklist文件末尾加入“blacklist zd1211rw”即可。

重启ubuntu

查看网卡是否识别,执行iwconfig命令,应该有类似下面的输出:

 

wlan0     IEEE 802.11g  ESSID:"TP-LINK"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: 00:1D:0F:85:7B:76   
          Bit Rate=54 Mb/s   Tx-Power:-2147483648 dBm   Sensitivity=0/3  
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:4/100  Signal level:-93 dBm  Noise level:-96 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

 

启动网卡 ,输入:

 

ifconfig wlan0 up

 

为网卡配置ip地址,自动启动和安全方面的配置 ,编辑/etc/network/interfaces,加入:

 

iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant.conf
auto wlan0

 

我这里是通过DHCP获取,如果静态ip地址,可以在网上参考其他文档。

如果无线不需要安全设置,可以省略wpa-conf /etc/wpa_supplicant.conf这行,不过这样不安全,我当前使用的是WPA-PSK [TKIP],没有使用WEP,安全程度不好。

如果没有配置安全,以下步骤就可以忽略,重启ubuntu,无线网卡应该获得。

配置wpa安全,创建/etc/wpa_supplicant.conf文件,输入:

 

network={
        ssid="MarshalsNetwork"
        key_mgmt=WPA-PSK
        proto=WPA
        pairwise=TKIP
        psk=密码的16进制字符串
}

 

psk的获得,需要执行:

 

root@dell:~# wpa_passphrase MarshalsNetwork your_password
network={
        ssid="MarshalsNetwork"
        #psk="your_password"
        psk=e9eb25bd7410ee3e1a96e138591fa064ee3bdc305eac25f8b41f315177932eb7
}

 

将输出的psk部分,复制到wpa_supplicant.conf文件中psk属性中即可。

重启ubuntu,无线网卡就应该可以工作了。

上述步骤,在我另外一块usb无线网卡:水星(Mercury)MW54U下也测试成功,发现和TP-Link WN322G+使用的完全相同的芯片,驱动程序也一样可以互换。

这种方法的缺点(这也是我开始不打算使用的原因)是,占用CPU较高,本来USB网卡比PCI网卡就消耗CPU,通过包装器ndiswrapper做翻译就更消耗资源。

在Piii 866环境下,长期占用5%~10%,在dell d600的迅驰1.4G CPU下,长期占用1%~3%。

初步测试了一下网速 ,无线路由就在旁边的情况下:

从t61(无线)到dell(以太网线)通过SSH 上传71M的JDK6到ubuntu上,测试数据为1425.5kB/s,下载速度更快一些,测试数据为1573.0kB/s。

从t61(无线)到server(无线tp-link)通过SSH上传71M的JDK6到ubuntu上,测试数据为930.0kB/s,下载速度更快一些,测试数据为1240.8kB/s。

从t61(无线)到dell(无线水星)通过SSH上传71M的JDK6到ubuntu上,测试数据为732.9kB/s,下载速度更快一些,测试数据为1021.8kB/s。

测试不严格,没有做交叉测试,初步看来,tp-link应该比水星无线网卡快点儿。

 

本文最早由本人(marshal@javaeye)发表在:http://marshal.easymorse.com

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics