wpa_supplicant学习

来源:互联网 发布:租用 网络 视频会议 编辑:程序博客网 时间:2024/05/17 22:03

http://blog.csdn.net/weipeng1786/article/details/7329554


本来以为这个东西只有在Atheros的平台上用的,突然发现Ralink的平台也可以用,甚至还看到还有老美把这个东西往android上移植。看来是个好东西,学习一下。

官方的模块框图

 

 关于wpa_supplicant的介绍很多,在这时就不介绍了,接下来我们谈移植:

编译openssl-0.9.8e

由于编译wpa_supplicant需要用到openssl的库,所以先编译openssl

wpa_supplicant中的补丁拷贝到openssl中 

        #cp wpa_supplicant-0.6.10/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/

        #cd openssl-0.9.8e

        #vim Makefile

                CC= mipsel-linux-gcc

                AR= mipsel-linux-ar $(ARFLAGS) r

EX_LIBS= -ldl

                RANLIB= mipsel-linux-ranlib

        #make 

        #make install

/usr/local/ssl目录下安装了ssl

编译wpa_supplicant-0.6.10:

1

下载地址:http://hostap.epitest.fi/wpa_supplicant/ 

解压文件

   Cd  wpa_supplicant

2)

   Cp defconfig .config

编辑 .config

  CC= mipsel-linux-gcc -L /usr/local/ssl/lib/

  CFLAGS += -I/usr/local/ssl/include/

  LIBS += -L/usr/local/ssl/lib/

接下来 直接make 

一共生成了三个文件:wpa_supplicant,wpa_cli,wpa_passphrase

接下来要配置wpa_supplicant.conf:

一个/etc/wpa_supplicant/wpa_supplicant.conf的例子

# 请不要修改下面这一行内容,否则将不能正常工作ctrl_interface=/var/run/wpa_supplicant# 确保只有root用户能读取WPA的配置ctrl_interface_group=0# 使用wpa_supplicant来扫描和选择APap_scan=1# 简单的情形:WPA-PSk密码验证方式,PSK是ASCII密码短语,所有合法的加密方式都允许连接network={  ssid="simple"  psk="very secret passphrase"  # 优先级越高,就能越早匹配到。  priority=5}# 与前面的设置相同,但要求对特定的SSID进行扫描(针对那些拒绝广播SSID的AP)network={  ssid="second ssid"  scan_ssid=1  psk="very secret passphrase"  priority=2}# 仅使用WPA-PSK方式。允许使用任何合法的加密方式的组合network={  ssid="example"  proto=WPA  key_mgmt=WPA-PSK  pairwise=CCMP TKIP  group=CCMP TKIP WEP104 WEP40  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb  priority=2}# 明文连接方式(不使用WPA和IEEE802.1X)network={  ssid="plaintext-test"  key_mgmt=NONE}# 共享WEP密钥连接方式(不使用WPA和IEEE802.1X)network={  ssid="static-wep-test"  key_mgmt=NONE  # 引号包含的密钥是ASCII密钥  wep_key0="abcde"  # 没有引号包含的密钥是十六进制密钥  wep_key1=0102030405  wep_key2="1234567890123"  wep_tx_keyidx=0  priority=5}# 共享WEP密钥连接方式(无WPA和IEEE802.1X),使用共享密钥IEEE802.11验证方式network={  ssid="static-wep-test2"  key_mgmt=NONE  wep_key0="abcde"  wep_key1=0102030405  wep_key2="1234567890123"  wep_tx_keyidx=0  priority=5  auth_alg=SHARED}# 在IBSS/ad-hoc网络中使用WPA-None/TKIPnetwork={  ssid="test adhoc"  mode=1  proto=WPA  key_mgmt=WPA-NONE  pairwise=NONE  group=TKIP  psk="secret passphrase"}

接下来创建目录 mkdir -p /var/run/wpa_supplicant

还有,如果是访问,WPA的网络时,系统,需要使用,随机数。可能用到/dev/urandom这个文件,

mknod /dev/urandom c 1 9

wpa_supplicant -B -i eth0 -c /my.conf

先说一下,选项的含意,-B 是后台运行。比 & 专业。

-i 是网络接口,如:eth0 eth1

-c 是配置文件


原创粉丝点击