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

一. 简介

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

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

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

本文开始实现  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 上网功能。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android中调试WiFi,通常会使用wpa_supplicantwpa_cli。下面是一些总结和步骤: 1. 在设备上运行wpa_supplicant 在设备上运行wpa_supplicant,它是一个用于处理WiFi连接的后台进程。可以在终端中使用以下命令启动它: ``` wpa_supplicant -iwlan0 -Dwext -c /data/misc/wifi/wpa_supplicant.conf ``` 其中,`wlan0` 是设备的WiFi接口名称,`wext` 是驱动程序的类型,`/data/misc/wifi/wpa_supplicant.conf` 是包含WiFi配置信息的文件路径。 2. 使用wpa_cli进行WiFi连接 wpa_cli是一个命令行工具,用于与wpa_supplicant进行交互并管理WiFi连接。可以在终端中使用以下命令启动它: ``` wpa_cli -iwlan0 ``` 此时会进入wpa_cli交互模式。可以使用以下命令执行一些操作: - `scan` 扫描可用的WiFi网络 - `scan_results` 查看扫描结果 - `add_network` 添加一个新的WiFi网络配置 - `set_network` 设置WiFi网络配置 - `enable_network` 启用WiFi网络 - `disable_network` 禁用WiFi网络 - `status` 查看当前连接状态 例如,如果要连接到名为“mywifi”的WiFi网络,可以执行以下步骤: 1. 扫描可用的WiFi网络 ``` > scan ``` 2. 查看扫描结果 ``` > scan_results ``` 会显示可用的WiFi网络列表,找到名为“mywifi”的网络并记下其network id。 3. 添加一个新的WiFi网络配置 ``` > add_network ``` 会返回一个新的network id。 4. 设置WiFi网络配置 ``` > set_network <network_id> ssid "mywifi" > set_network <network_id> psk "mypassword" ``` 其中,`<network_id>` 是上一步中返回的新的network id,`mywifi` 是WiFi网络的SSID,`mypassword` 是WiFi网络的密码。 5. 启用WiFi网络 ``` > enable_network <network_id> ``` 6. 查看连接状态 ``` > status ``` 如果连接成功,会显示类似于以下内容的信息: ``` wpa_state=COMPLETED ip_address=192.168.1.100 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值