T113-S3-全志平台wpa_supplicant/hostapd交叉编译移植

目录

前言

一、源码获取

二、编译前准备

三、hostapd交叉编译

四、wpa_supplicant交叉编译

总结


前言

在嵌入式系统开发中,交叉编译和移植wpa_supplicant和hostapd是实现无线网络功能的重要步骤。本文将分享在T113-S3全志平台上成功交叉编译和移植wpa_supplicant和hostapd的经验和步骤。

一、源码获取

可以通过官网链接方式下载wpa_supplicant/hostapd源码,本文采用wifi模块厂家提供的源码进行交叉编译,一般建议使用模块厂家提供的无线网络管理配置工具,因为他们对官网的工具代码进行了优化,以适配他们的模块达到最佳状态,本文使用的根据为RTL8822无线模块厂家FAE提供的代码工具,使用版本如下图所示:如果想要该源码,可以私信博主获取。

二、编译前准备

编译wpa_supplicant/hostapd工具依赖libnl、openssl,所以我们需要提前编译libnl、openssl。

a、libnl-3.2.25交叉编译,配置编译如下所示:

cpp 复制代码
1、./configure CC=/opt/QZ/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc --prefix=/home/cftc/workspace/QZ/driver/libnl_install --host=arm-linux-gnueabi
2、Make && make install

编译完成生成库在/home/cftc/workspace/QZ/driver/libnl_install目录中。

b、openssl-3.0.2交叉编译,配置编译如下所示:

cpp 复制代码
1、./Configure linux-armv4 --cross-compile-prefix=/opt/QZ/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- --prefix=/home/cftc/workspace/QZ/driver/openssl_install
2、make
3、make install

三、hostapd交叉编译

a、.config配置文件修改:具体修改主要是指定交叉编译器,libnl以及openssl库路径地址,具体修改如下所示:

cpp 复制代码
CFLAGS += -I/home/cftc/workspace/QZ/driver/libnl_install/include/libnl3
LIBS += -L/home/cftc/workspace/QZ/driver/libnl_install/lib

CFLAGS += -I/home/cftc/workspace/QZ/driver/openssl_install/include
LIBS += -L/home/cftc/workspace/QZ/driver/openssl_install/lib

# Use libnl v2.0 (or 3.0) libraries.
CONFIG_LIBNL20=y

# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored)
CONFIG_LIBNL32=y

# Select TLS implementation
# openssl = OpenSSL (default)
# gnutls = GnuTLS
# internal = Internal TLSv1 implementation (experimental)
# none = Empty template
CONFIG_TLS=openssl

b、Makefile修改:

c、make编译即可,如果显示如下报错部分:

执行该环境变量即可:

cpp 复制代码
export PKG_CONFIG_PATH=/home/cftc/workspace/QZ/driver/libnl_install/lib/pkgconfig/:$PKG_CONFIG_PATH

再次make clean & make即可:

四、wpa_supplicant交叉编译

a、.config配置文件修改:具体修改主要是指定交叉编译器,libnl以及openssl库路径地址,具体修改如下所示:

cpp 复制代码
# Uncomment following two lines and fix the paths if you have installed OpenSSL
# or GnuTLS in non-default location
#CFLAGS += -I/usr/local/openssl/include
#LIBS += -L/usr/local/openssl/lib
CFLAGS += -I/home/cftc/workspace/QZ/driver/openssl_install/include
LIBS += -L/home/cftc/workspace/QZ/driver/openssl_install/lib

# Uncomment following two lines and fix the paths if you have installed OpenSSL
# or GnuTLS in non-default location
#CFLAGS += -I/usr/local/openssl/include
#LIBS += -L/usr/local/openssl/lib
CFLAGS += -I/home/cftc/workspace/QZ/driver/openssl_install/include
LIBS += -L/home/cftc/workspace/QZ/driver/openssl_install/lib

# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
#CONFIG_DRIVER_BSD=y
#CFLAGS += -I/usr/local/include
#LIBS += -L/usr/local/lib
#LIBS_p += -L/usr/local/lib
#LIBS_c += -L/usr/local/lib
LIBS_p += -L/home/cftc/workspace/QZ/driver/openssl_install/lib

特别注意项点:需要添加LIBS_p += -L/home/cftc/workspace/QZ/driver/openssl_install/lib配置项点,不然编译会报错:

b、Makefile修改:

c、make编译即可。


总结

通过按照上述步骤进行交叉编译和移植,你应该能够在T113-S3全志平台上成功使用wpa_supplicant连接无线网络,以及使用hostapd作为热点管理程序。移植wpa_supplicant和hostapd可能是一个挑战,但也是实现无线网络功能的必要步骤。希望本文对那些尝试在T113-S3上移植wpa_supplicant和hostapd的开发者们有所帮助

相关推荐
_lizhiqiang6 分钟前
联想拯救者R9000P 网卡 Realtek 8852CE Ubuntu/Mint linux 系统睡眠后,无线网卡失效
linux·运维·ubuntu·r9000p·无线网卡·8852ce
Livingbody15 分钟前
Fast Whisper 语音转文本
后端
程序员岳焱22 分钟前
深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?
java·人工智能·后端
XRZaaa27 分钟前
常见排序算法详解与C语言实现
c语言·算法·排序算法
G探险者27 分钟前
《深入理解 Nacos 集群与 Raft 协议》系列五:为什么集群未过半,系统就不可用?从 Raft 的投票机制说起
分布式·后端
G探险者29 分钟前
《深入理解 Nacos 集群与 Raft 协议》系列一:为什么 Nacos 集群必须过半节点存活?从 Raft 协议说起
分布式·后端
G探险者32 分钟前
《深入理解 Nacos 集群与 Raft 协议》系列四:日志复制机制:Raft 如何确保提交可靠且幂等
分布式·后端
G探险者34 分钟前
《深入理解 Nacos 集群与 Raft 协议》系列三:日志对比机制:Raft 如何防止数据丢失与错误选主
分布式·后端
G探险者34 分钟前
《深入理解 Nacos 集群与 Raft 协议》系列二:Raft 为什么要“选主”?选主的触发条件与机制详解
分布式·后端
洛神灬殇35 分钟前
【LLM大模型技术专题】「入门到精通系列教程」基于ai-openai-spring-boot-starter集成开发实战指南
网络·数据库·微服务·云原生·架构