<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       最近开始做的一个实验,这才是第一步工作。

 

1. 实验目的

PC 机子上的 Atheros 无线网卡安装 madwifi 驱动,并配置它连接到附近的 AP

 

2. 实验环境

       硬件环境:一台 PC 机,一块 Atheros  AR5212 无线网卡
       操作系统: Fedora 9
       内核版本:<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /> 2.6.25 .11-97.fc9.i686
       驱动版本: madwifi-0.9.5-42

 

PS 其实基本上所有的 Atheros 芯片无线网卡都可以使用 Madwifi 驱动,关于使用 Atheros 芯片的无线网卡型号查询可以查阅 [url]http://customerproducts.atheros.com/customerproducts/[/url]

 

3. 安装前的准备

在安装 madwifi 之前需要安装 sharutils 工具包,可以直接从 Fedora 安装光盘中找到,也可以在线安装,在此使用后者:
#yum install sharutils*

 

4. 下载并安装 madwifi

如果原来已经安装过 madwifi 的话,需要先把旧版本卸载。例如下载 madwifi 的源代码 madwifi-0.9.4.tar.gz ,然后运行:
#tar –zxvf madwifi-0.9.4.tar.gz         

#cd madwifi-0.9.4/scripts             

#./madwifi-unload.bash               

#./find-madwifi-modules.sh /lib/modules

如果没有安装过 madwifi ,这一步可以跳过。
       由于实验的操作系统是 Fedora 9 ,所以选择下载 Fedora 9 rpm 格式的 madwifi 软件包进行安装,下载地址为 [url]http://atrpms.net/dist/f9/madwifi/[/url] ,进入下载地址后有许多文件链接,这时需要弄清楚自己的内核版本号,千万注意一定要针对对应的版本进行下载!
       使用命令
#uname –r

获得内核版本号,得到
2.6.25 .11-97.fc9.i686

所以针对这个内核下载对应的四个软件包:
madwifi-0.9.5-42_r3771.fc9.i386.rpm

madwifi-devel-0.9.5-42_r3771.fc9.i386.rpm

madwifi-hal-kmdl-2.6.25.11-97.fc9-0.9.5-42_r3771.fc9.i686.rpm

madwifi-kmdl-2.6.25.11-97.fc9-0.9.5-42_r3771.fc9.i686.rpm

然后一起安装
#rpm –Uvh madwifi-*.rpm

注意这里一定要将这三个 rpm 一起安装,否则会出现循环依赖,安装失败。如果你是其他发行版请下载对应的软件包,并进行安装。安装后会有多个命令可用,这里只需要其中 3 个: wlanconfig iwconfig iwlist

 

5. 配置无线网卡

安装后会自动产生一个 wifi0 的网卡,会在 /etc/sysconfig/hwconf 文件中添加对应的驱动信息,会在 /etc/sysconfig/network-scripts/ 目录下产生一个 ifcfg-ath0 文件,现在需要设置 ip 地址,子网掩码, SSID ,网络连接 KEY ,网络认证方式,访问点。
首先,加载驱动模块
#modprobe ath_pci

然后,启动 ath0
#ifconfig ath0 up

在扫描可用的 AP 之前要先插入扫描模块
#modprobe wlan_scan_sta

之后再开始扫描
#iwlist ath0 scan   或者使用   #wlanconfig ath0 list scan
假设扫描得到 5 AP ,并且我们要接入 essid 为“ test ”的 AP
#iwconfig ath0 essid “test”

如果需要密码则再加一行
#iwconfig ath0 key 1234-1234-12

最后,使用 DHCP 自动分配一个 IP 地址
#dhclient ath0

到此为止,无线网卡就驱动完成, ping 一下网关会看到网络已经连通了,大功告成。

 

6. 出现的问题及解决

       1 )内核版本和madwifi 版本号不匹配

       由于系统最初安装的是 Fedora 8 ,内核版本为 2.6.23 .1-42.fc8 ,一直在 [url]http://madwifi.org[/url] 上找不到对应版本的驱动,所以试图用源代码安装,但是安装完毕系统却找不到接口 ath0 ,反复多次,最终决定升级内核。
       解决: 重新安装了 Fedora 9 ,但仍没有对应内核版本的驱动,于是继续升级内核到最新版本 2.6.25 .11-97.fc9 ,终于在 [url]http://atrpms.net[/url] 上找到对应的 rpm 软件包,进行无数次的卸载和安装,最终得以见到 ath0 ,激动万分!

 

       2 )安装方法的选择问题

由于 Linux 各种版本的不同, [url]http://madwifi.org[/url] 提供了很多种不同的安装方法,有最原始的源代码安装、通过 Subversion 安装、下载最新的 Snapshots ,以及提供给 Red Hat Fedora .rpms 下载。我最初用了源代码安装,但是发现驱动不成功,又用了 yum 在线安装 madwifi package ,还是不成功。
解决: 由于几种方法的混杂,造成内核的崩溃,最终只得重装。经过详细研究,才发现对于 Fedora 的实验环境,选择 rpm 软件包的安装才最适合。注意千万不可以同时使用几种方法,如果用不匹配内核的源代码安装了之后,务必要卸载干净之后再进行 rpm 循环安装。

 

3 madwifi ath5k 的冲突

对于 Fedora 8 以上的版本,已经自带了 ath5k 这种驱动,所以再安装 madwifi 就会出现冲突,现象是找不到 ath0.
解决: /etc/modprobe.d/blacklist 中加上一行
blacklist ath5k
也就是把 ath5k 加入黑名单,这样终于解决掉冲突。