WIFI驱动移植实验: wpa_supplicant工具的移植

本文详细介绍了如何移植wpa_supplicant工具,并配置其依赖的openssl和libnl库,包括解压、配置文件设置、指定交叉编译器和库路径,以及最终的编译和测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 简介

前面两篇文章实现了wpa_supplicant工具所依赖的两个库的移植。文章如下:

WIFI驱动移植实验: openssl库的移植(wpa_supplicant 依赖库)-优快云博客

WIFI驱动移植实验: libnl 库的移植(wpa_supplicant 依赖库)-优快云博客

本文开始实现  wpa_supplicant工具的移植。

二.  WIFI驱动移植实验: wpa_supplicant工具的移植

接下来移植 wpa_supplicant wpa_supplicant 源码我们已经放到了开发板光盘中,路径为:
1 、例程源码 ->7 、第三方库源码 ->wpa_supplicant-2.7.tar.gz

wpa_supplicant-2.7.tar.gz 拷贝到 Ubuntu系统的某个文件目录下
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools$ cp /mnt/hgfs/Ubuntu_Shares/wpa_supplicant-2.7.tar.gz ./
输入如下命令进行解压:
 tar -xvf wpa_supplicant-2.7.tar.gz 

1.  配置 wpa_supplicant源码

解压完成以后,进入wpa_supplicant-2.7文件夹下,然后进行配置。

wpa_supplicant 的配置比较特殊,需要将 wpa_supplicant 下的 defconfig 文件拷贝一份并重命名为 .config,操作如下:

再进入 wpa_supplicant/目录下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/wpa_supplicant-2.7$ cd wpa_supplicant/

wpa_supplicant 下的 defconfig 文件拷贝一份并重命名为 .config:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/wpa_supplicant-2.7/wpa_supplicant$ cp defconfig .config

2.  指定 交叉编译器,openssl库,libnl库与头文件路径

完成以后打开 .config 文件,在里面指定交叉编译器、 openssllibnl 库和头文件路径,设置 如下:
CC = arm-linux-gnueabihf-gcc
#openssl库与头文件路径
CFLAGS += -I/home/wangtian/zhengdian_Linux/tools/openssl_tools/include
LIBS += -L/home/wangtian/zhengdian_Linux/tools/openssl_tools/lib -lssl -lcrypto

#libnl 库和头文件路径
CFLAGS += -I/home/wangtian/zhengdian_Linux/tools/libnl_tools/include/libnl3
LIBS += -L/home/wangtian/zhengdian_Linux/tools/libnl_tools/lib

CC 变量用于指定交叉编译器,这里就是 arm-linux-gnueabihf-gcc CFLAGS 指定需要使用的库头文件路径, LIBS 指定需要用到的库路径。
编译 wap_supplicant 的时候需要用到 openssl 和 libnl 库,所以 .config 文件 中指定了这两个的库路径和头文件路径。

3.  编译 wpa_supplicant源码

.config 文件配置好以后就可以编译 wpa_supplicant 了,使用如下命令编译:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/wpa_supplicant-2.7/wpa_supplicant$ export PKG_CONFIG_PATH=/home/wangtian/zhengdian_Linux/tools/libnl_tools/lib/pkgconfig:$PKG_CONFIG_PATH
上面的操作是,我们使用 export 指定了 libnl 库的 pkgconfig 路径,环境变量 PKG_CONFIG_PATH 保存 pkgconfig 包路径。在 之前移植libnl库时(创建的 libnl_tools目录下)libnl_tools文件夹的 /lib 目录 下有个名为 “pkgconfig ”的目录:

编译 wpa_supplicant 的时候是需要指定 libnl pkgconfig 路径,否则会提示“ libnl-3.0 ”或者 “ libnl-3.0.pc ” 找不到等错误。
编译 wpa_supplicant源码,输入 "make"命令:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/wpa_supplicant-2.7/wpa_supplicant$ make

编译完成以后,就会在本目录下生成 wpa_supplicant wpa_cli 这两个软件

将编译生成的 wpa_cli wpa_supplicant 这两个文件,拷贝到开发板根文件系统的 /usr/bin
目录中,命令如下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/wpa_supplicant-2.7/wpa_supplicant$ sudo cp wpa_cli wpa_supplicant /home/wangtian/linux/nfs_File/rootfs/usr/bin/ -f

wpa_supplicant工具测试:

拷贝完成以后重启开发板!
wpa_supplicant -v 命令,查看一下 wpa_supplicant 版本号。 如下图 所示:

可以看出, wpa_supplicant 的版本号输出正常,说明 wpa_supplicant 移植成功,接下来就是使用 wpa_supplicant 将开发板的 WIFI 链接到路由器上,实现 WIFI 上网功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值