迅为iMX6ULL开发板-创建 ap 热点之交叉编译openssl libnl hostapd
本文转自迅为iMX6ULL开发板使用手册第九十九章,使用的资料已经放到了开发板网盘资料中,路径为:11_Linux 系统开发进阶\99_章节使用资料。
关注公众号“迅为电子” , 回复 “终结者”免费获取产品资料。
硬件平台:
99.1 实验环境
本实验使用到的硬件是迅为电子的 imx6ull 终结者开发板(板载 RTL8723wifi 模块),开发板上运行
的操作系统是 yocto 文件系统(所以开发环境搭建可以参考《i.mx6ull 终结者开发板使用手册》的 4.3 小
节“搭建交叉编译环境”)。如果大家使用的是其它的文件系统,需要注意的是搭建交叉编译环境所需要
的交叉编译器一定要和制作文件系统使用的交叉编译器一致。
99.2 交叉编译 openssl
使用 ssh 上传本压缩包里面的“openssl-1.0.2h.tar.gz”到 UBuntu 系统,如图 99.2.1 所示:
然后在终端输入“tar -xvf openssl-1.0.2h.tar.gz”,开始解压 openssl,如图 99.2.2 所示:
解压完成会生成“openssl-1.0.2h”目录,如图 99.2.3 所示:
我们使用“cd openssl-1.0.2h”命令,进入“openssl-1.0.2h”目录,如图 99.2.4 所示:
然后我们在终端输入“./config no-asm
shared --prefix=$(pwd)/ install”命令
no-asm:是在交叉编译过程中不使用汇编代码代码加速编译过程,原因是它的汇编代码 是对 arm 格
式不支持的;
Shared:生成动态连接库;
--prefix:指定 make install 后生成目录的路径(我们安装到当前目录的 install 文件夹里面);
运行结果如图 99.2.5 所示:
然后我们使用“vi Makefile”命令,打开 Makefile 文件,如图 99.2.6 所示:
我们需要修改 Makefile 文件里面的“CC,AR,RANLIB,MM,SHARED_LDFLAGS“这几个变量,这几个
变量分别改成:
最终修改结果如图 99.2.7 和 99.2.8 所示:
按照上面的修完完成以后保存并退出,接着在终端输入“make”命令,可以编译 openssl,运行结果如
图 99.2.9 所示:
编译完成如图 99.2.10 所示:
接着我们在终端输入“make install”安装命令,如图 99.2.11 所示:
执行完“make install”命令,会将编译生成的库文件,以及一些头文件拷贝到“ install” 文件夹,
如图 99.2.12 所示:
至此关于 openssl 的安装完成了。
99.3 交叉编译 libnl
使用ssh 上传本压缩包里面的“libnl-3.2.25.tar.gz”到Ubuntu 系统(与上面的 openssl 在同一个目录下),
如图 99.3.1 所示:
然后在终端输入“tar-xvflibnl-3.2.25.tar.gz”解压命令,如图 99.3.2 所示:
解压完成以后使用“cd libnl-3.2.25”进入到 libnl 目录,如图 99.3.3 所示:
然后我们在终端输入“./configure --host=arm-linux --prefix=$(pwd)/__install
--enable-shared --enable-static CC=arm-linux-gnueabihf-gcc”命令。
--prefix=$(pwd)/__install:指定编译出来的库存放的路径(当前目录下的__install 文件夹)
运行结果如图 99.3.4 所示:
接着我们在终端输入“make CC=arm-linux-gnueabihf-gcc”编译命令,如图 99.3.5 所示:
编译完成如图 99.3.6 所示:
然后我们在终端输入“make install”命令,安装编译生成的库文件到当前目录的“ install” 文件夹,
如图 99.3.7 所示:
我们可以使用“cd install”命令,进入到“
install”文件夹查看编译生成的文件,如图 99.3.8 所示:
至此 libnl 交叉编译就完成了。
99.4 交叉编译 hostapd
使用 ssh 上传本压缩包里面的“hostapd-2.9.tar.gz”到Ubuntu 系统(与上面的 openssl 和libnl
在同一个目录下),如图 99.4.1 所示:
然后我们在终端输入“tar -xvf hostapd-2.9.tar.gz”开始解压 hostapd,如图 99.4.2 所示:
接着我们使用“cd hostapd-2.9/hostapd”命令,进入到 hostapd 目录,如图 99.4.3 所示:
然后我们在终端输入“cp defconfig .config”生成配置文件,如图 99.4.4 所示:
然后我们使用“vi Makefile”打开 Makefile 文件,将
修改为:
如图 99.4.5 所示:
然后在 Makefile 文件里面添加:
CFLAGS += -I../../libnl-3.2.25/__install/include/libnl3/
CFLAGS += -I../../openssl-1.0.2h/__install/include/
LIBS += -L../../libnl-3.2.25/__install/lib/
LIBS += -L../../openssl-1.0.2h/__install/lib/
指定hostapd 依赖的头文件和库文件(前面编译 openssl 和libnl 安装到的目录),添加完成后如图 99.4.6
所示:
然后退出并保存,接着在终端输入“make”命令,开始编译,如图 99.4.7 所示:
编译完成后如图 99.4.8 所示:
我们在终端输入“ls”命令可以看到生成了“hostap”文件,如图 99.4.9 所示:
至此,hostap 编译完成了。
99.5 准备所需库文件,配置文件和执行文件
99.6 开发板上配置 AP 热点
详见下一篇文章~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人