1、前言
在linux物理机(ubuntu22.04, x86_64)下载并编译出能够运行在板卡(arm)上的wireless_tools。由于两者的架构不同,所以需要进行交叉编译,使用的交叉编译器是arm-linux-gnueabihf-gcc。
2、源码下载
官网:https://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html
2.1 解压并进入解压目录
tar -xvf wireless_tools.29.tar.gz
cd wireless_tools.29/
2.2 打补丁
patch -Np1 -i ../wireless_tools-29-fix_iwlist_scanning-1.patch
3、交叉编译
3.1 修改makefile
设置交叉编译工具链
CROSS_COMPIL = /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
## Compiler to use (modify this for cross compile).
CC = $(CROSS_COMPIL)gcc
## Other tools you need to modify for cross compile (static lib only).
AR = $(CROSS_COMPIL)ar
RANLIB = $(CROSS_COMPIL)ranlib
3.2 编译
make
4、安装
sudo make PREFIX=$(pwd)/install/ install
安装完成后会在install/sbin目录下生成iwconfig、iwlist、iwpriv等工具的可执行文件。