Chinaunix首页 | 论坛 | 博客
  • 博客访问: 459105
  • 博文数量: 293
  • 博客积分: 4204
  • 博客等级: 上校
  • 技术积分: 3060
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-21 10:27
个人简介

nobody

文章分类

全部博文(293)

文章存档

2014年(27)

2013年(105)

2012年(41)

2011年(109)

2010年(11)

分类:

2011-02-24 21:48:28

1 找到网卡的驱动源代码,并使用交叉编译器编译(通常是生成.ko文件,需要insmod);
2 下载wpa_supplicant源代码包并做适当的配置,之后使用交叉编译器编译,使用到的可执行文件只有wpa_supplicant;
3 根据用户输入的信息(主要是AP的ESSID/KEY)生成wpa_supplicant.conf,并启动wpa_supplicant(不过之前看到一款采用andriod系统的产品中,wpa_supplicant是作为deamon 进程存在的);
4 接下来要做的是:查询网卡是否associated到AP(这部分代码可以从wpa_cli中stole):status对应的代码;
5 关于发送命令给wpa_supplicant使其scan AP的功能代码,也从wpa_cli源代码中:scan_result对应的代码;
一旦查询到网卡associated 到AP,则物理层的操作就完成了,如果AP 被配置为DHCP server ,则
网卡可以使用busybox中的udhcpc  -i 获取IP 地址。

6 向wpa_supplicant 发送退出命令的代码为wpa_cli的terminate命令对应的代码;
7 关于wpa_cli是如何同wpa_supplicant通信的呢?这涉及到Linux中的一种IPC 方式 :socket(PF_UNIX, SOCK_DGRAM, 0)。And if you want more info  please RTFC!
阅读(3797) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~