Debian(Linux)下的无线网卡配置
2009年12月7日 | 标签: debian, linux, 无线,网卡
作者:joecen
网站:http://www.joecen.com
原文链接:http://www.joecen.com/2007/10/26/linux-wireless-setting/
这篇东西我半年前就想写了,打了草稿在”MONDEY GTD“上面n久,现在终于有时间把它写出来了。
DreamHost 到期之后,不想再续期,于是动了在家里面放一台PC来提供我自己的 blog服务的念头。接下来我们家又安装了ADSL包月的套餐,我心想,我的blog访问量这么少,ADSL应该也是可以支撑得住的。于是就将家里面的旧 PC翻了出来。不过启动机器后,发现在晚上的时候会觉得非常吵,应该不可能放在房间或者客厅中的。想来想去,唯一对生活质量没影响的地方就只有阳台了。可 是,装修的时候根本没想过会有在阳台连接网络的需求,所以并没有在阳台上面预留网络模块。要实现这个想法,唯一的方法就只能是使用无线网络的方式。刚好那 时候电信ADSL又送了一个中兴的AP,那么就决定用无线方式进行吧!
————————————————————————————–
当前linux内核自带的无线网卡驱动不多,主要是笔记本电脑使用的”Intersil Prism“芯片(著名的“ Intel Pro/Wireless 2100”)。另外还有”Atheros”芯片似乎是比较多linuxer使用。那么国内接PCI插槽的网卡,有哪些是可以被我使用的呢?搜索后发 现,TP-LINK的无线网卡,我发现它是使用Atheros芯片,这样的话,就可以使用 http://madwifi.org 站点上的驱动程序(madwifi是一个开源项目,专门用于Atheros芯片无线局域网网卡的Linux驱动程序)。
TP-LINK的TP- WN550G, 54M速率,支持IEEE 802.11 b/g协议。虽然还有其它更便宜的选择,比如二手的无线网卡,不过我想我的机器离AP的距离还是挺远的,足有6-8米,最要命的是中间隔着3堵墙,所以还 是买一个新一点的型号,性能可能会有报障一点。广州太平洋电脑城,150元买下来。那天是过年前的一天了,不知道为什么,好像每次过节之前我都会到电脑城 去买东西。
另外列一下madwifi可用的tp-link无线网卡型号: TL-WN551G,TL-WN650G(150-180元左右),TL-WN651G
开始安装
安装硬件就不用说了,操作系统还是在debian下,因为debian实在是太方便了:
1、grep CONFIG_NET_RADIO /boot/config-`uname -r`看内核是否支持无线。
CONFIG_NET_RADIO=y
2、lspci看是否找到硬件,没有lspci命令的话需安装pciutils包。
3、安装madwifi相关的包:
aptitude search madwifi
i madwifi-doc – documentation for the Multiband Atheros Driver for WiFi
i madwifi-source – source for the Multiband Atheros Driver for WiFi
i madwifi-tools – tools for the Multiband Atheros Driver for WiFi
将三个包都安装了。
其中madwifi-source包安装后会在/usr/src/目录中产生madwifi.tar.bz2文件,解压后的目 录名为”modules”,
cd /usr/src/modules/madwifi
make
make install
后完成modwifi的安装。
debian的话,先安装linux-header:
aptitude install linux-headers-2.6.18-3-686
否则可能会出现下面的错误:
/bin/sh: line 0: cd: /lib/modules/2.6.18-3-686/build: no such file or dir Makefile.inc:69:
*** /lib/modules/2.6.18-3-686/build is missing, please set KERNELPATH. stop.
之后重启系统或者用modprode ath_pci来加载模块。
如果成功,则使用”ifconfig”会看到新的网卡,网卡名是“ath0”。
安装软件
aptitude install wireless-tools
这个package包括iwconfig、iwlist等有用的工具。
* 我的ap使用的加密协议是比较简单的WPA-PSK,该协议xsupplicant不能使用,所以改为使用wpasupplicant 来进行配置。
aptitude install wpasupplicant
使用
iwlist ath0 scanning
命令可以查看当前能找到的接入点。
WPA配置
使用wpa_passphrase命令产生PSK:
用法:wpa_passphrase [passphrase]
比如:wpa_passphrase my_ssid abcd1234
1. network={
2. ssid=”my_ssid”
3. #psk=”abce1234″
4. psk=xxxxxxxxxxxxxxxxxxxxx
5. }
完整的配置文件/etc/wpa_supplicant.conf:
1. ctrl_interface=/var/run/wpa_supplicant
2. ctrl_interface_group=0
3. ap_scan=1
4.
5. network={
6. ssid=”my_ssid”
7. pairwise=CCMP TKIP
8. group=CCMP TKIP WEP104 WEP40
9. proto=WPA
10. key_mgmt=WPA-PSK
11. priority=5
12. psk=xxxxxxxxxxxxxxxxxxxx
13. }
手工启动:
wpa_supplicant -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf
使用命令
iwconfig ath0
可以查看,Access Poin是否连接成功了。如果是使用dncp的话,使用dhclient ath0来自动获取IP,如果使用静态的IP的话,直接使用ifconfig配置IP。
不过,有时候有些AP和无线网卡芯片不太兼容的话,有可能用不了WPA协议进行连接。比如我的笔记本就是这样,所以也可以使用WEP协议进行连接,安全性方面,我想使用128位的加密以及隐藏接入点,应该是没太大的问题的。
使用WEP协议的话,除了在AP上面要配置好之外,在debian上面只需要使用“iwconfig”命令,就可以进行实现连接,也可以写成一个启动脚本,在开机的时候自动进行链接。