最近需要做一个无线的IPC产品,经过一段空闲时间的研究,无线终于可以出图了(呵呵,后面还有很多工作完善)!
简单总结一下:
一、资料准备:
软件开发环境:UBUNTU 10.0.4+wpa_supplicant-0.7.3.tar.gz( http://hostap.epitest.fi/wpa_supplicant/ )+openssl-0.9.8e.tar.gz(www.openssl.org/source/openssl-0.9.8e.tar.gz)
二、工具编译:
1)编译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 /home/qqtolm/vimicro/dm368/vimicro/code/wpa/openssl-0.9.8e/install
#vim Makefile
CC= arm-linux-gnu-gcc
AR= arm-linux-gnu-ar $(ARFLAGS)r
RANLIB= arm-linux-gnu-ranlib
INSTALLTOP= /home/qqtolm/vimicro/dm368/vimicro/code/wpa/openssl-0.9.8e/install
OPENSSLDIR /home/qqtolm/vimicro/dm368/vimicro/code/wpa/openssl-0.9.8e/install
#make
#make install
后面编译wpa_supplicant要依赖openssl中的lib和include
2)编译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源程序可以看到三个主要的可执行工具:wpa_supplicant和wpa_cli,wpa_passphrase。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。
三、配置wpa_supplicant
在板子根目录nfsroot/etc中建立wpa_supplicant.conf文件
文件内容如下:
#没有的话无法用wpa_cliterminate来关闭wpa_supplicant
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="max" //填写无线网络的的用户名
key_mgmt=WPA-PSK //加密方式
proto=WPA
pairwise=TKIP //加密算法
group=TKIP
psk="1234567890" //填写密码
}
注意要与你的无线路由中的设置对应。
另外要注意的是,无线路由中的模式应该设为: 11bg mixed
四、使用方法:
DM368硬件正确启动后:
insmod wifidrv/mt7601Usta.ko
ifconfigwlan0 up
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B
udhcpc -i wlan0
iwprivwlan0 connStatus
使用这种方法的好处是IPC可以自动重连AP.
在实现使用过程中遇到如何连接多个AP及无密码的AP ,解决办法如下: