wpa_supplicant交叉编译

一、准备

源码下载链接:

openssl  : https://www.openssl.org/source/ openssl-3.1.6.tar.gzicon-default.png?t=N7T8https://www.openssl.org/source/openssl-3.1.6.tar.gz

libnl : http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html 

libnl3_9_0/libnl-3.9.0.tar.gzicon-default.png?t=N7T8https://github.com/thom311/libnl/releases/download/libnl3_9_0/libnl-3.9.0.tar.gz

wpa_suplicant: http://w1.fi/releases/ 

wpa_supplicant-2.10.tar.gzicon-default.png?t=N7T8https://w1.fi/releases/wpa_supplicant-2.10.tar.gz

二、编译 

openssl 编译:

#mkdir _install
#./config  no-asm shared --prefix=$PWD/_install --cross-compile-prefix=aarch64-linux-gnu- 
#make CC=aarch64-linux-gnu-gcc
#make insatll

编译报错aarch64-linux-gnu-gcc: error: unrecognized command line option '-m64' 

打开Makefile 查找里面的 ‘-m64’,并将其删除即可

libnl编译:

#mkdir _install
#./configure --host=aarch64-linux-gnu --prefix=$PWD/_install
#make 
#make install

wpa_supplicant 编译:

添加配置:
#cd wpa_supplicant/
#cp defconfig .config

在Makefile中添加libssl和libnl的路径,如下:

CFLAGS += -I/home/ubuntu/workplace/tinkerboard/wifi/openssl/openssl-3.1.6/_install/include
LIBS += -L/home/ubuntu/workplace/tinkerboard/wifi/openssl/openssl-3.1.6/_install/lib64
CFLAGS += -I/home/ubuntu/workplace/tinkerboard/wifi/libnl/libnl-3.9.0/_install/include
LIBS += -L/home/ubuntu/workplace/tinkerboard/wifi/libnl/libnl-3.9.0/_install/lib

编译:
#make CC=aarch64-linux-gnu-gcc

编译报错aarch64-linux-gnu/bin/ld: cannot find -ldbus-1 在.config中注释dbus相关

# Add support for new DBus control interface
# (fi.w1.wpa_supplicant1)
#CONFIG_CTRL_IFACE_DBUS_NEW=y

# Add introspection support for new DBus control interface
#CONFIG_CTRL_IFACE_DBUS_INTRO=y

若需静态编译生成wpa_supplicant, 在Makefile中找到对应的编译选项加上-static字段即可

wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
	$(Q)$(LDO) --static $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS) -lm -lpthread
	@$(E) "  LD " $@
wpa_cli: $(OBJS_c)
	$(Q)$(LDO) -static $(LDFLAGS) -o wpa_cli $(OBJS_c) $(LIBS_c)
	@$(E) "  LD " $@

静态编译如果报错:

Package libnl-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnl-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnl-3.0' found

可如下修改src/drivers/drivers.mak文件,将链接的库直接修改为libnl-3.0

    PKG_CONFIG ?= pkg-config
#    DRV_CFLAGS += $(shell $(PKG_CONFIG) --cflags libnl-3.0)
    DRV_CFLAGS += -llibnl-3.0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值