hostapd 交叉编译

0. 编译工具链

#用root账户
su
#安装基础编译环境
apt-get install gcc g++ libgcc1 libg++ make gdb
#创建目录
mkdir -p /opt/toolchain/
cd /opt/toolchain/
#根据需要下载对应编译工具链
wget https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz
#解压
xz -d gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz
tar xvf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar
#加入环境变量
PATH=/opt/toolchain/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin:"${PATH}"
#生效环境变量
source /etc/bash.bashrc


#查看是否安装成功
arm-linux-gnueabi-gcc –v

#安装解析器
sudo apt-get install bison flex

sudo apt-get install pkg-config

1. 编译libnl

if [ -d "$(pwd)/__install" ];then
    mkdir -p $(pwd)/__install
fi

GCC_PATH=/opt/toolchain/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc

./configure CC=$GCC_PATH \
    --prefix=$(pwd)/__install \
    --host=arm-none-linux-gnueabihf \
    CFLAGS=-I/usr/include/libnl3

make && make install

3.编译openssl

if [ -d "$(pwd)/__install" ];then
    mkdir -p $(pwd)/__install
fi

GCC_PREFIX=/opt/toolchain/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-

#no-asm 不使用汇编代码代码加速编译过程
#-disable-shared 禁止生成动态连接库
#-enable-static 生成静态连接库
#no-async 交叉编译工具链没有提供GNU C的ucontext库
#prefix 安装路径
#cross-compile-prefix 交叉编译工具前缀

./config no-asm -disable-shared -enable-static no-async --prefix=$(pwd)/__install --cross-compile-prefix=$GCC_PREFIX

sed -i "s/-m64//g" $(pwd)/Makefile

make && make install

4.编译hostapd

cp defconfig .config

sudo find / -name "libnl-3.0.pc"
export PKG_CONFIG_PATH=/media/test/workspace/complie_hostapd/libnl-3.2.25/__install/lib/pkgconfig/libnl-3.0.pc
sudo apt-get install libnl-3-dev

sudo apt-get install libnl-genl-3-dev
#修改hostapd的Makefile
CFLAGS += -I$(abspath ../../openssl-1.1.1w/__install/include)
CFLAGS += -I$(abspath ../../libnl-3.2.25/__install/include)
LIBS += -L../../libnl-3.2.25/__install/lib
LIBS += -L../../openssl-1.1.1w/__install/lib
CC=/opt/toolchain/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc

#完了编译
make


#调试ok后可以strip了
/opt/toolchain/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-strip hostapd

备注:

如何修改root用户密码

#先修改当前用户的密码
sudo passwd
#在修改root用户的密码
su root

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值