8432|6

2144

帖子

3

TA的资源

五彩晶圆(中级)

楼主
 

helper2416_tl-wn725n移植02_wpa-supplicant篇 [复制链接]

这个工具包移植,依赖的包比较繁杂,大家注意一下,想了解他的话请参考源码主页,搞wifi的人对这个包都是很熟悉的,相当熟悉应该说,吃透了这个包基本上25w的工作不愁了。 一、安装openssl
  1. 1、下载openssl-0.9.8e.tar.gz源码地址https://www.openssl.org/source/openssl-0.9.8e.tar.gz
  2. 2、解压源码,将wpa_supplicant-2.2/patch/openssl-0.9.8e-tls-extensions.patch拷贝到openssl-0.9.8e目录下
  3. 3、运行patch -p1 < openssl-0.9.8e-tls-extensions.patch安装补丁
  4. 4、进入openssl-0.9.8e目录,mkdir openssl-install
  5. 5、修改Makefile文件 vi Makefile
  6. CC= arm-linux-gcc
  7. AR= arm-linux-ar $(ARFLAGS) r
  8. RANLIB= arm-linux-ranlib
  9. INSTALLTOP=/home/develop/helper2416/TL-WN725N/openssl-0.9.8e/openssl-install
  10. OPENSSLDIR=/home/develop/helper2416/TL-WN725N/openssl-0.9.8e/openssl-install
  11. 6、执行make和make install
复制代码
二、安装wpa_supplicant
  1. 1、下载wpa_supplicant-2.2.tar.gz源码地址http://w1.fi/wpa_supplicant/
  2. 2、此处编译wpa_supplicant需要依赖openssl的lib/和include/,进入目录新建安装文件夹 mkdir openssl-install
  3. 3、进入wpa_supplicant-2.2/wpa_supplicant中执行如下命令
  4. cp defconfig .config
  5. vi .config
  6. CC=arm-linux-gcc -L/home/develop/helper2416/TL-WN725N/openssl-0.9.8e/openssl-install/lib/
  7. CFLAGS += -I/home/develop/helper2416/TL-WN725N/openssl-0.9.8e/openssl-install/include
  8. LIBS += -L/home/develop/helper2416/TL-WN725N/openssl-0.9.8e/openssl-install/lib
  9. LIBS_p += -L/home/develop/helper2416/TL-WN725N/openssl-0.9.8e/openssl-install/lib
  10. 4、执行make
  11. 5、编译不通过,需要屏蔽.config中的CONFIG_DRIVER_NL80211=y
  12. 6、重新编译成功,测试发现运行wpa_supplicant会有出现乱码的情况,推测是5中屏蔽导致的问题
复制代码
三、安装libnl
  1. 1、下载libnl-1.1.tar.gz源码地址http://www.infradead.org/~tgr/libnl/files/libnl-1.1.tar.gz
  2. 2、解压源码,进入使用./configure --help查看相关,新建安装文件夹 mkdir libnl-install
  3. 3、使用./configure --prefix=/home/develop/helper2416/TL-WN725N/libnl-1.1/libnl-install(注意可以使用$(pwd)/libnl-install替代)
  4. 4、修改生成的Makefile.opts文件如下
  5. CC := arm-linux-gcc
  6. AR := arm-linux-ar
  7. 5、在/include/netlink-local.h的28行加一个头文件#include <limits.h>
  8. 6、修改lib/route/link/vlan.c添加如下内容
  9. #ifndef VLAN_FLAG_REORDER_HDR
  10. #define VLAN_FLAG_REORDER_HDR 0x01
  11. #endif
  12. 7、执行make和make install命令
复制代码
四、重新安装wpa_supplicant
  1. 1、修改.config文件添加libnl-install/include和libnl-install/lib
  2. 2、修改libnl-install/include/linux/genetlink.h为3.2.x内核中的头文件,测试发现不行,在.config中直接添加内核的/include/linux/路径编译成功
复制代码
五、在进一步就完成了
  1. 1、wpa_supplicant源码src/drivers/driver_wext.c wifi_driver
  2. ioctl[SIOCSIWAP]: Operation not permitted
  3. WEXT: Failed to set bogus BSSID/SSID to disconnect
  4. 参考具体函数:
  5. static void wpa_driver_wext_disconnect(struct wpa_driver_wext_data *drv)
  6. static int cfg80211_netdev_notifier_call(struct notifier_block * nb, unsigned long state, void *ndev)
  7. 2、内核RAW socket支持宏,
  8. socket(PF_PACKET): Address family not supported by protocol
  9. 具体解决方法:
  10. 内核不支持RAW socket,编译内核时把CONFIG_PACKET选项打开CONFIG_PACKET = y
  11. If we use CONFIG_PACKET=m instead of CONFIG_PACKET=y we'd need to include af_packet.ko into the initramfs for netboot installation.
  12. 手动加载af_packet.ko显示NET: Registered protocol family 17加载正常
  13. #insmod af_packet.ko
  14. 3、关于wpa_supplicant说明
  15. /etc/wpa_supplicant.conf正确配置
  16. # WPA-PSK/TKIP
  17. ctrl_interface=/var/run/wpa_supplicant
  18. network={
  19. ssid="XTRAMUS"
  20. scan_ssid=1
  21. key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
  22. pairwise=TKIP CCMP
  23. group=CCMP TKIP WEP104 WEP40
  24. psk="AABBCCDDEF"
  25. }
  26. 4、初步确认运行wpasupplicant时提示的错误分析,问题出现在第二条(内核RAW socket支持宏),需要重新编译内核。
复制代码
关于wpa_supplicant的使用,主要步骤简单说一下,可以参考源码主页的doc文档。 1)新建文件/etc/network/interfaces,添加如下内容
  1. auto wlan0
  2. wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
复制代码
2)/etc/wpa_supplicant.conf正确配置
  1. # WPA-PSK/TKIP
  2. ctrl_interface=/var/run/wpa_supplicant
  3. network={
  4. ssid="XTRAMUS"
  5. scan_ssid=1
  6. key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
  7. pairwise=TKIP CCMP
  8. group=CCMP TKIP WEP104 WEP40
  9. psk="AABBCCDDEF"
  10. }
复制代码
3)可以通过手动方式启动来测试wpa_supplicant.conf配置是否有用。 照旧贴图说明如下: 1)ping eeworld 2)ping baidu

最新回复

      详情 回复 发表于 2014-12-7 22:51
点赞 关注
个人签名电工

回复
举报

2144

帖子

3

TA的资源

五彩晶圆(中级)

沙发
 
由于板子没在边上。所以一些关于驱动安装、wpa_supplicant启动的脚本就没贴上来了,有问题大家跟帖讨论。
每个源码包都有点大,估计也传不上来了,大家按照我给的地址去下载吧。上传编译好的文件给大家测试,不知道有没有更新哦,在我的虚拟机里面的。


注意两点:
1)注意2和3的位置,我这是原始版本有思路体现的,之前未使用nl库尝试了一下。

2)注意文中的/home/develop/helper2416/xxx这些目录,需要自己体会。



driver &amp; libs &amp; apps.rar (2.91 MB, 下载次数: 26)

driver &amp; libs &amp; apps.rar (2.91 MB, 下载次数: 26)

 
个人签名电工
 

回复

1119

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
过来看看~~~~~~~~~~~~~~~
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

4
 
吃透wpa-supplicant,楼主是指工作中会修改wpa-supplicant的源码吗,所以需要吃透吗?

点评

机理吧,过程很复杂,涵盖的知识也挺多的80211协议栈,驱动继承啊什么的,主要还是在流程、协议栈和加密之类的吧我也不太清除,不搞这一行。  详情 回复 发表于 2014-9-11 16:44
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

5
 
wcabcd 发表于 2014-9-11 16:23
吃透wpa-supplicant,楼主是指工作中会修改wpa-supplicant的源码吗,所以需要吃透吗?

机理吧,过程很复杂,涵盖的知识也挺多的80211协议栈,驱动继承啊什么的,主要还是在流程、协议栈和加密之类的吧我也不太清除,不搞这一行。
 
个人签名电工
 
 

回复

59

帖子

0

TA的资源

一粒金砂(中级)

6
 
这个很牛啊,这个软件里面的东西很多,算法什么的还是很复杂的。作为用户,知道怎么编译和使用就OK了!
 
个人签名努力
 
 

回复

37

帖子

0

TA的资源

一粒金砂(中级)

7
 
   
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表