wpa_supplicant移植与使用

本文详细介绍了在tiny6410开发板上移植wpa_supplicantV0.3.7和openssl1.0.2l的过程。包括配置、编译及在目标环境中测试的步骤,以及解决版本选择和链接库问题的方法。

前言

开发环境

目标环境

  • tiny6410开发板
  • Linux 4.19.78
  • Wifi模块,友善之臂的SDWIFI-YS09(Marvell)

关于wpa_supplicant版本选用的问题,我曾使用过更高版本的工程进行移植编译,但总是会出现这样那样的问题,而网上大家对wpa_supplicant的移植大多使用0.7.3版本,但是其对应的链接下载0.7.3版本源码,似乎已经失效了。我所使用的版本是在官网中找到的,且无需打补丁也可以编译使用。

openssl配置与编译

配置

tar xvzf ~/Downloads/openssl-1.0.2l.tar.gz
cd openssl-1.0.2l/
./config no-asm shared --prefix=$(pwd)/build

修改Makefile

修改Makefile文件中的内容

CC= gcc
CC= arm-linux-gnueabi-gcc

删除CFLAG中的-m64,因为硬件是32位的

AR= ar $(ARFLAGS) r
AR= arm-linux-gnueabi-ar $(ARFLAGS) r

RANLIB= /usr/bin/ranlib
RANLIB= arm-linux-gnueabi-ranlib

NM= nm
NM= arm-linux-gnueabi-nm

SHARED_LDFLAGS=-m64
SHARED_LDFLAGS=

编译

make
make install
# 查看build文件夹下是否如下
ls build/
bin  include  lib  ssl

ls build/lib/
engines      libcrypto.so        libssl.a   libssl.so.1.0.0
libcrypto.a  libcrypto.so.1.0.0  libssl.so  pkgconfig

wpa_supplicant 配置与编译

tar xvjf ~/Downloads/hostap_0_7_3.tar.bz2
cd hostap_0_7_3/wpa_supplicant/
cp defconfig .config

修改.config文件,增加以下内容,配置编译编译工具,已经刚才编译的openssl库的相关路径

CC=arm-linux-gnueabi-gcc
CFLAGS += -I/home/eric/linux-develop/openssl/build/include
LIBS += -L/home/eric/linux-develop/openssl/build/lib

make

# 编译完成后,查看当前目录是否有wpa_supplicant,wpa_cli这两个可执行程序
file wpa_supplicant
wpa_supplicant: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=6a90ae62f8baf3db9d30d132baa3a2c8189a7ca6, not stripped

file wpa_cli
wpa_cli: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=43487ac17069197d90f8c1e39d3fb3ebdd4b5e8b, not stripped

开发板测试

部署

  1. openssl/build/lib文件夹下的动态链接库拷贝到开发板文件系统的/lib文件夹下
  2. 将wpa_supplicant, wpa_cli可执行文件拷贝到开发板文件系统的/usr/bin文件夹下
  3. 建立wpa_supplicant配置文件,将配置文件wpa_supplicant.conf放在/etc
~ wpa_supplicant.conf 文件内容

ctrl_interface=/var/run/wpa_supplicant/
ap_scan=1

network={
    scan_ssid=1
    ssid="wifi名称"
    psk="wifi密码"
    priority=1
}
mkdir -p /var/run/wpa_supplicant

ifconfig wlan0 up

wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0

wpa_cli -iwlan0 status // 查看状态

# 配置IP地址
ifconfig wlan0 192.168.1.22
ping 192.168.1.1

修改/etc/resolv.conf添加DNS(路由器的ip):
nameserver 192.168.1.1

这样就可以ping qq.com访问外网了

存在问题

我的电脑和开发板连着同一个路由器,在同一网段,但这两者间无法ping通

参考资料

openssl移植到ARM Linux
linux wpa_supplicant移植
使用WIFI网卡 wpa_supplicant

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值