Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1121686
  • 博文数量: 82
  • 博客积分: 3362
  • 博客等级: 中校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-05 16:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(19)

2009年(62)

我的朋友

分类: LINUX

2009-10-09 17:05:23

当前linux内核自带的无线网卡驱动不多,主要是笔记本电脑使用的”Intersil Prism“芯片(著名的“ Intel Pro/Wireless 2100”)。另外还有”Atheros”芯片似乎是比较多linuxer使用。那么国内接PCI插槽的网卡,有哪些是可以被我使用的呢?搜索后发现,TP-LINK的无线网卡,我发现它是使用Atheros芯片,这样的话,就可以使用 站点上的驱动程序(madwifi是一个开源项目,专门用于Atheros芯片无线局域网网卡的Linux驱动程序)。

TP-LINKTP-WN550G, 54M速率,支持IEEE 802.11 b/g协议。 虽然还有其它更便宜的选择,比如二手的无线网卡,不过我想我的机器离AP的距离还是挺远的,足有6-8米,最要命的是中间隔着3堵墙,所以还是买一个新一 点的型号,性能可能会有报障一点。广州太平洋电脑城,150元买下来。那天是过年前的一天了,不知道为什么,好像每次过节之前我都会到电脑城去买东西。

另外列一下madwifi可用的tp-link无线网卡型号: TL-WN551GTL-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”命令,就可以进行实现连接,也可以写成一个启动脚本,在开机的时候自动进行链接。

转载本文请保留作者与出处等信息:
作者:
网站:
原文链接:

附上在interface文件里实现配置的方法

debian的wpasupplicant今天升级到0.4.8-3时,把/etc/init.d/wpa_suppllicant给自动删除了.
造成无线网卡不可登陆ap.

到/usr/share/doc/wpasupplicant看说明.

里面提到, 可以把wpa的配置文件直接放进网卡设置里面.这解决了wpa_supplicant需要在网卡之前启动的潜在问题.

可以在/etc/networks/interfaces里面直接配置wpa的认证信息,或者关联一个wpa_supplicant

我使用原来的配置文件/etc/wpa_supplicant.conf,
所以只要在/etc/networks/interfaces里面.相应网卡下面增加一行内容:
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
iface eth1 inet dhcp
wpa-conf /etc/wpa_supplicant.conf
#wpa-driver wext

多个网络自动配置的方法:

2004年12月,我还是LinuxFocus的中文编辑(志愿者,呵呵),为她写了一篇关于Linux 下玩弄无线网卡的文章(中文版英文版),时至今日,仍在被转载中,也很容易 Google 到,不过该文章中对各种无线认证技术的描述语焉不详,这实在是当时水平有限,而且也缺少环境。直到今年,才自己在家弄了个 Linksys 搭上玩玩。

搭 上无线网之后,一直也没准备写这篇介绍,一来是自己没什么长进,不想丢人来,二来也是 NetworkManager 实在很方便,比 Windows 的无线网卡配置要简单很多,觉得完全没有必要写东西介绍。不过,后来发现 NetworkManager 作为新兴工具,还存在很多不稳定的地方,有时会有一些莫名其妙的问题,因此,又回到了命令行/配置文件+后台Daemon的老朋友那,这里,向各位介绍 wpa_supplicant 的使用。

[注:如果你的环境中,NetworkManager 可以使用的话,大可不必如此费力,保持所有配置文件都是空的,在图形界面中配置即可。]

[注2:本文适用于 Debian 系统,其它 Distro 有所不同,仅供参考。]

WPA_supplicant 是 WPA/WPA2 认证的客户端,同时也适用于 WEAP,对有线、无线网络都可以使用,不过,WPA2/TKIP (就是前两天说被破解了的那个,不过目前仍然是最安全的WLAN无线连接方式。哦?你说WAPI?哦,不好意思,我没见过真的,不好说哈。)还是我们最首 选的方式。

要使用 WPA_Supplicant,在 /etc/network/interfaces (这个网卡配置文件的格式是 Debian 系的特点 RH/SuSE 系有明显不同,未做研究)中,需要指定使用 WPA_supplicant

allow-hotplug wlan0
iface wlan0 inet manual
wpa-driver wext
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
这里,注意第二行的 manual,指定既不配置固定IP,又不使用 DHCP,要“手工”配置,而后,指定了 WPA 的驱动,wext 是 Linux kernel 的 Wireless Extension,凡是使用 Linux 原生驱动的情况,只有使用固定网络的情况和使用 atmel 芯片的情况例外,关于这些例外,请参考软件文档。

wpa-roam (漫游模式)是指,根据后面指定的配置文件进行匹配,接入可以发现的网络,当然,也可以配置成不使用 wpa-roam,而是固定在这里写明配置,但对于大部分笔记本用户来说,在不同时间地点接入两个以上的网络是常有的事,因此 roam 是更常见的模式。

wpa_supplicant.conf 这个文件很简单,是用来描述一个个网络的,下面是我家的网络配置

network={
ssid="fusion"
scan_ssid=1
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP
psk="my-wlan-passwd"
id_str="fusion"
}


对每个网络都是这么一段,这里面 ssid 是无线路由器设置的 SSID,后面 key_mgment, proto, group
这几个字段指定了 WPA/TKIP 方式,而 psk 指定的就是我的密钥,这几个对于不同的认证方式有所不同,scan_ssid=1
是用来对付设置不广播网络SSID的路由器的,我的路由器就是这么配置的,呵呵,理由自然是增强一层安全性了。最后的 id_str
是这段描述的一个标记,在 /etc/network/interfaces 里,可以针对这个 id 进行配置,如


iface fusion inet dhcp



指定对这个网络进行 dhcp 获取 IP。如果是 WEP 的话,设置是这样(WEPKEY 不能加双引号

network={
ssid="Your ssid"
scan_ssid=1 #added if ssid is not broadcasted
key_mgmt=NONE #set to wep mode
wep_key0=Your Key in Hex
wep_tx_keyidx=0
id_str="conf_str" #ued to set connection in /etc/interface
}

当然,在 wpa_supplicant.conf 里可以设定一个缺省的网络,在没有其他网络时进行尝试


network={
key_mgmt=NONE
}

在 interfaces 里也可以指定一个缺省配置,如,对没有特殊声明的大多数网络都采用 dhcp


iface default inet dhcp

以上就是使用 wpa_supplicant 配置无线网络认证的简单方法,wpa_supplicant 也提供了很多例子可公参考,大家可以尝试一下。
阅读(679) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~