前言
开发环境
目标环境
- 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
开发板测试
部署
- 将
openssl/build/lib文件夹下的动态链接库拷贝到开发板文件系统的/lib文件夹下 - 将wpa_supplicant, wpa_cli可执行文件拷贝到开发板文件系统的
/usr/bin文件夹下 - 建立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
本文详细介绍了在tiny6410开发板上移植wpa_supplicantV0.3.7和openssl1.0.2l的过程。包括配置、编译及在目标环境中测试的步骤,以及解决版本选择和链接库问题的方法。
463

被折叠的 条评论
为什么被折叠?



