移植wpa_supplicant及简单使用

        嵌入式环境下的设备有时会需要能连接到外网进行一些数据的交互,通过利用wpa_supplicant客户端结合有线网卡或无线网卡,即可配置好网络达到目的。

        资源:openssl-0.9.8e.tar.gz + wpa_supplicant-0.7.3.tar.gz

        源代码下载路径一:https://download.csdn.net/download/DIANZI520SUA/88485067

        源代码下载路径二:wpa_supplicant 源码下载地址 :Index of /releases

                                        openssl 源码下载地址:/source/index.html

一、安装openssl

        交叉编译wpa_supplicant之前需要安装openssl,因为编译wpa时需要依赖openssl的相关头文件和库。

        将源代码压缩包文件复制到虚拟机路径下(不要放置在Windows与Linux共享文件路径下,编译时会出现创建软链接失败等问题,切记切记!),开始下面的解压、编译、安装步骤。

1.解压

#tar zxvf wpa_supplicant-0.7.3.tar.gz
#tar zxvf openssl-0.9.8e.tar.gz

2.拷贝补丁

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

3.创建ssl安装路径文件夹

#mkdir /home/mike/ssl

4.修改openssl Makefile文件

#cd openssl-0.9.8e

按下图内容修改交叉编译工具链

...
INSTALLTOP=/home/mike/ssl //此处改为自己创建的openssl安装路径
OPENSSLDIR=/home/mike/ssl //此处改为自己创建的openssl安装路径
...
//改为自己的交叉编译工具链路径
CC= /root/DCJ_hf/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc 
AR=/root/DCJ_hf/buildroot/output/host/usr/bin/arm-linux-gnueabihf-ar $(ARFLAGS) r
RANLIB= /root/DCJ_hf/buildroot/output/host/usr/bin/arm-linux-gnueabihf-ranlib
...

5.交叉编译&&安装

#make
#make install

        可能会在编译安装过程出现如下错误,

cms.pod around line 457: Expected text after =item, not a number
cms.pod around line 461: Expected text after =item, not a number
cms.pod around line 465: Expected text after =item, not a number
cms.pod around line 470: Expected text after =item, not a number
cms.pod around line 474: Expected text after =item, not a number
POD document had syntax errors at /usr/bin/pod2man line 69.
make: *** [install_docs] Error 1

        解决方法:执行下面命令并重新编译安装即可。

rm -f /usr/bin/pod2man 

        正常情况下会在/home/mike/ssl路径下生成如下内容,我们后面需要的是include和lib,

至此,openssl交叉编译及安装完成。

二、交叉编译wpa_supplicant

1.修改配置文件

#cd wpa_supplicant-0.7.3/wpa_supplicant
#cp defconfig .config

打开.config,增加如下内容,

CC= /root/DCJ_hf/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc -L/home/mike/ssl/lib/
CFLAGS += -I/home/mike/ssl/include/
LIBS += -L/home/mike/ssl/lib/

执行编译,

#make

成功后会生成如下所示文件(wpa_cli、wpa_passphrase、wpa_supplicant)

wpa_supplicant是关键可执行文件,后面读取配置文件并执行相关功能都是它,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。wpa_passphrase负责生成wpa_supplicant.conf文件(编译完成后有自带的一份该文件,支持不同的配置样式)。

三、拷贝可执行文件到开发板

        将这3个文件(wpa_cli、wpa_passphrase、wpa_supplicant)复制到开发板的/bin路径下,并赋予其可执行权限。

四、生成wpa_supplicant.conf文件

在开发板的/etc路径下执行如下命令,TPLINK为我所使用的交换机的牌子,wpa_passphrase用法可自行参考相关文档说明(也可自创该文件填写相关内容),

#wpa_passphrase TPLINK 874565412 >> wpa_supplicant.conf

此时在/etc路径下会生成wpa_supplicant.conf文件,内容会类似如下:

network={

     ssid="www.xxx.cn"

     #psk="1234567890"

psk=54deb3710e9ea2354e8d57e8bdb3b2a2127af44960d73216c3254ea213

}

五、运行验证

#wpa_supplicant -i eth0 -c /etc/wpa_supplicant.conf -B -Dwired

        无错误提示情况下,可以ping 180.101.50.242(百度IP)验证是否能成功访问,关机重启后默认还是会能正常访问。

        更复杂的认证协议、证书等功能还需继续深入学习,此篇文章只纯粹简单记录移植过程,验证设备是否能通过802.1x认证。

参考文章:

wpa_supplicant移植与使用 (YFW)-蒲公英云

嵌入式Linux移植WIFI调试工具wpa_supplicant ,wpa_cli,wpa_passphrase解决方法 NUC972 ARM9-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值