阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1136|回复: 0

[转帖] IXP435上安装madwif全过程(一)

[复制链接]
  • TA的每日心情
    开心
    2011-10-28 15:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2011-10-28 14:59:22 | 显示全部楼层 |阅读模式
                    从一开始了解这件事情,到网卡选型,驱动下载,一直到现在Atheros的网卡在IXP435上边正常工作,已经挺长时间了。过程磨难多多,但终于拨开云雾见彩虹。现在把过程详细写一下吧,作为工作的总结,也作为想做这方面工作朋友的参考。

    刚接触到这件事情的时候导师提出了三条要求:1、网卡选用芯片为Atheros系列;2、支持802.11a/b/g;3、选用madwifi的驱动。根据这三点要求我从http://madwifi.org/下载了官方发布的最新驱动程序源码-madwifi-0.9.4.tar.gz。并根据前两条要求选择了Atheros 5212这款网卡。(但这款网卡为Atheros早期作品,市面基本为二手网卡或者库存产品,如果现在选的话,我会选择5416)。

    接下来的事情就是要交叉编译了,包括Linux kernel(2.6.16),madwifi-0.9.4。首先,按照IXP435软件手册上的说明cp SDK到PC机上的/home/MonteGole/目录下,将各个压缩包解压缩,命令如下:

    # cd /

    # tar xPvfz /home/MonteGold/timesys_toolchain.tar.gz

    # cd /home/MonteGold

    # tar xzvf /home/MonteGold/timesys-ixp435.tar.gz

    # unzip BSD_ixp400AccessLibrary-2_4.zip

    # unzip IPL_ixp400NpeLibrary-2_4.zip

    # unzip GPL_ixp400LinuxEthernetDriverPatch-1_7.zip

    # vim ixp400_xscale_sw/buildUtils/environment.linux.sh (修改这个.sh文件以设置一系列环境变量,具体修改如下)

    linuxbe_KERNEL_DIR=/home/MonteGold/timesys-ixp435

    LINUX_SRC=/home/MonteGold/linux

    CROSSCOMPILER_DIR=/opt/timesys/toolchains/armv5b-Linux/bin

    IX_XSCALE_SW=/home/MonteGold/ixp400_xscale_sw

    IX_DEVICE=ixp43X

    IX_PLATFORM=kixrp43x


    # . ixp400_xscale_sw/buildUtils/environment.Linux.sh (. 和ixp之间有一个“空格”)

    然后打上一些补丁

    # cd timesys-ixp435

    # patch -p1 < ../ixp400LinuxEthernetDriver-1_7.patch

    # mv ../ixp400_eth.c drivers/net

    # patch -p1 < ../ monte_gold-pci.patch

    # make ARCH=arm menuconfig (定制内核,可以参考网上资料,例如http://www.host01.com/article/se ... 621409102845293.htm,关键是要使内核支持无线)

    # make ARCH=arm V=1 CROSS_COMPILE=armv5b-Linux- zImage

    # make ARCH=arm V=1 CROSS_COMPILE=armv5b-Linux- modules

    # cd ../ixp400_xscale_sw

    # make all (用于生成ixp400.ko)

    至此内核编译完成,主要用到的是在Image文件,放到tftp文件夹备用。

    # cp zImage /var/lib/tftpboot

    然后将下载的madwifi-0.9.4.tar.gz解压缩,编译:

    # tar –vxzf madwifi-0.9.4.tar.gz

    # cd madwifi-0.9.4

    # make KERNELPATH=/home/MonteGold/timesys-ixp435 CROSS_COMPILE=armv5b-linux- TARGET=xscale-be-elf

    如没有错误,会在ath ath_hal ath_rate/sample ath_rate/amrr ath_rate/onne net80211文件夹下生成相应的.ko文件:

    ath_pci.ko      Atheros driver for PCI/Cardbus devices

         ath_hal.ko      Atheros HAL

         wlan.ko                802.11 support layer

         wlan_wep.ko       WEP cipher support

         wlan_tkip.ko        TKIP cipher support

         wlan_ccmp.ko           AES-CCMP cipher support

         wlan_xauth.ko           external authenticator

         wlan_acl.ko          MAC ACL support for AP operation

         wlan_scan_ap.ko       AP scanning support

         wlan_scan_sta.ko           station scanning support

         ath_rate_onoe.ko           ONOE rate control

         ath_rate_amrr.ko      AMRR rate control

         ath_rate_sample.ko   SAMPLE rate control

    拷贝到一个文件夹待用。

    # cd /home/MonteGole

    # mkdir file_ko

    # cd /home/MonteGold/madwifi-0.9.4/ath

    # cp *.ko /home/monteGold/file_ko

    # cd ../ath_hal

    # cp *.ko /home/monteGold/file_ko

    # cd ../ath_rate/sample

    # cp *.ko /home/monteGold/file_ko

    # cd ../amrr

    # cp *.ko /home/monteGold/file_ko

    # cd ../onne

    # cp *.ko /home/monteGold/file_ko

    Cd ../../net80211

    # cp *.ko /home/monteGold/file_ko

    接下来就是修改IXP435自带的ramdisk了。(什么是ramdisk,如何创建和修改见http://www.99net.net/study/system/linux/1084931637.html

    # cd /heme/MonteGold

    # gunzip ramdisk_32M.gz

    # mkdir ramdisk

    # mount –o loop ramdisk_32M ramdisk

    # cd ramdisk/lib/modules/2.6.16/kernel/net

    # cp /home/MonteGold/file_ko.ko .

    # cd /home/MonteGold

    # umount ramdisk

    #gzip ramdisk_32M

    # cp ramdisk_32M.gz /var/lib/tftpboot


    未完待续

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表