好贷网好贷款

wpa_supplicant的移植和可能遇到的问题

发布时间:2016-12-3 14:50:06 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"wpa_supplicant的移植和可能遇到的问题",主要涉及到wpa_supplicant的移植和可能遇到的问题方面的内容,对于wpa_supplicant的移植和可能遇到的问题感兴趣的同学可以参考一下。

http://blog.csdn.net/ti_tantbx/article/details/7037741 在本周的最后一个工作日的最后一个小时里,一个困扰了我几天的问题在近乎绝望的调试中突然通过了!人生真是充满惊喜啊 本来已经接近放弃了,抱着最后一试的打算,居然成功了。阳光果然就在50米开外的拐角处啊,坚持到底不放弃,奇迹就会出现! ======================================================== 正文 ======================================================== 因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具。 一、下载源码         http://hostap.epitest.fi/wpa_supplicant/         下载wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的补丁)                 #tar xvfz wpa_supplicant-0.7.3.tar.gz         下载www.openssl.org/source/openssl-0.9.8e.tar.gz                 #tar zxvf openssl-0.9.8e.tar.gz 二、编译openssl库 将wpa_supplicant中的补丁拷贝到openssl中          # cp wpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/         #cd openssl-0.9.8e         #mkdir /usr/local/ssl         #vim Makefile                 CC= arm-linux-gnu-gcc                 AR= arm-linux-gnu-ar $(ARFLAGS) r                 RANLIB= arm-linux-gnu-ranlib                 INSTALLTOP=/usr/local/ssl                 OPENSSLDIR=/usr/local/ssl         #make          #make install 在/usr/local/ssl目录下安装了ssl库  #ls /usr/local/ssl  #bin  certs  include  lib  man  misc  openssl.cnf  private 后面编译wpa_supplicant要依赖openssl中的lib和include 三、编译wpa_supplicant  进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:         #cp defconfig        .config         #vim .config                 CC=arm-linux-gcc  -L/usr/local/ssl/lib/           #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc CFLAGS += -I/usr/local/ssl/include #CPPFLAGS += -I../src/include -I../../src/router/openssl/include LIBS += -L/usr/local/ssl/lib         #make /*注:这里可能出现很多编译错误!不过不要慌张,认真看下到底是什么错误!基本上都是缺少函数声明, 不知道作者为什么会犯这样的错误。比如在wpa_supplicant.c中对某个函数没有定义,这时应该用grep 或者cscope等工具查找该函数名,找到在头文件里的定义,然后将头文件写入该文件中就可以了! */ 经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。 四、配置wpa_supplicant 在板子根目录nfsroot/etc中建立wpa_supplicant.conf文件 文件内容如下 ctrl_interface=/var/run/wpa_supplicant network={                 ssid="max"     //填写无线网络的的用户名                 key_mgmt=WPA-PSK                 proto=WPA                 pairwise=TKIP                 group=TKIP                 psk="1234567890" //填写密码 } 注意要与你的无线路由中的设置对应。 另外要注意的是,无线路由中的模式应该设为 :  11bg mixed 否则会出现些脑残情况! 五、测试 insmod zd1211rw.ko ifconfig wlan0 up iwconfig wlan0 essid  max wpa_passphrase ssid名 密码 >> /etc/wpa_supplicant.conf 之后wpa_supplicant.conf中会添加以下内容,然后把最后面的经过加密的密码修改到上面去,再把下面的内容删掉! network={       ssid="max"       #psk="1234567890"       psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba } 如: network={                 ssid="max"     //填写无线网络的的用户名                 key_mgmt=WPA-PSK                 proto=WPA                 pairwise=TKIP                 group=TKIP                 psk=4b2bc7cbb3710e9ea43f09e8d57e8bdb3b2a2127af44960d73216c3612f6baba                                 #psk="1234567890" //填写密码 } 链接AP wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B 当时我遇到的问题就是怎么都连不上,会打出以下信息 cfg80211: Calling CRDA to update world regulatory domain 不断的反复的出现 用dmesg查看后台,发现有该信息打出: [plain] view plaincopy zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0100077 bits 24   zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0200998 bits 24   zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x034644d bits 24   zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0025f98 bits 24   zd1211rw 2-1:1.0: zd_usb_rfwrite() value 0x0025f9a bits 24   经过无比煎熬的google,终于发现一个阿根廷人和一个德国人的对话,说这完全是正常情况,只是debug信息! 看到这里,我重新编译内核,将zd1211的debug选项去掉,再执行连接,发现顺利通过了!! 在执行udhcpc -i wlan0 可以顺利获取ip   wpa_supplicant更新问题 http://blog.csdn.net/ti_tantbx/article/details/7042320 上个星期成功解决了WPA-PSK加密的连接问题,这周尝试WPA2-PSK加密的连接, 整个上午都在测试wpa-supplicant.conf文件的配置,但依然不行,还是 4-Way Handshake failed - pre-shared key may be incorrect的问题 上午一点进展都没有,网上也找不到相关资料,重新编了无数次内核,把内核添加到接近3M的大小,不过也没什么作用。 后来想着,mx28内置的wpa_supplicant工具的版本是0.59,能不能支持上星期已经做成功的wpa-psk加密方式呢?ps: 那个是用0.73版本做成功的。 试验结果证实0.59版本的依然不给力,于是我知道,这个除了和内核有关,和wpa版本也有密不可分的关系。但网上最新的wpa工具也只是0.73而已,依然不支持wpa2-psk加密方式的连接吗。 于是我又想起wpa依赖的库openssl的版本,之前用的版本应该是0.98.于是果断从网上下了openssl最新的1.00e版本。 重新编译,有把wpa的依赖改为最新的openssl。果然这次完美支持wpa2了!

上一篇:6410移植linux3.3.5
下一篇:Invalid character constant

相关文章

相关评论