RK3399-aircrack-ng交叉编译与移植

一、环境和资源准备

(一)交叉编译环境搭建
交叉编译工具链:aarch64-linux-gnu-*
编译平台:ubutun16.04
安装所需软件:sudo apt-get install autoconf libtool -y
(二)安装源码包装备
所需依赖库的源码安装包(文章中存放在:/home/ubuntu/build目录下):
(1)openssl-OpenSSL_1_0_2l.tar.gz
(2)libnl-3.2.25.tar.gz
(3)zlib-1.2.11.zip
(4)aircrack-ng-1.2.tar.gz
上述资源我已打包放在(点击下载)

二、编译过程

(一)编译libopenssl
解压:tar zxvf openssl-OpenSSL_1_0_2l.tar.gz

cd openssl-OpenSSL_1_0_2l
./config no-asm shared --prefix=$(pwd)/__install --cross-compile-prefix=aarch64-linux-gnu-

修改Makefile:删除所有的’-m64’

make depend
make install
ls __install //查看是否编译成功
bin  include  lib  ssl

(二)编译libnl

//解压
tar zxvf libnl-3.2.25.tar.gz
cd libnl

1、先编译x86版本

./configure
make

2、再交叉编译其他平台的

make distclean
./configure --host=aarch64-linux CC=aarch64-linux-gnu-gcc --prefix=$(pwd)/__install
make && make install
ls __install
etc  include  lib  sbin  share

(三)编译zlib

//解压:
unzip zlib-1.2.11.zip
cd zlib-master

1、先编译x86版本

./configure
make

2、再交叉编译其他平台的

./configure --prefix=$(pwd)/__install

vi Makefile
备注:./configure不支持–host选项,交叉编译时手动修改Makefile,将Makefile里所有的gcc(共有3处)、ar、ranlib均加上前缀aarch64-linux-gnu-

make
make install
ls include  lib  share

(四)编译aircrack-ng

//解压:
tar -zxvf aircrack-ng-1.2.tar.gz
cd aircrack-ng-1.2

1、先安装x86版本的

autoreconf --install

如果出现如下错误:

src/Makefile.am:333: error: Libtool library used but 'LIBTOOL' is undefined
src/Makefile.am:333:   The usual way to define 'LIBTOOL' is to add 'LT_INIT'
src/Makefile.am:333:   to 'configure.ac' and run 'aclocal' and 'autoconf' again.
src/Makefile.am:333:   If 'LT_INIT' is in 'configure.ac', make sure
src/Makefile.am:333:   its definition is in aclocal's search path.

则查看是否安装了libtool,如未安装,则执行:sudo apt-get install libtool 命令进行安装,如已安装,则参考:

https://blog.csdn.net/a13393665983/article/details/102184926
进行修改(aclocal -I /usr/share/aclocal1.10 -I /usr/share/libtool/m4 --install)。

./configure --with-experimental
make

2、再编译其他平台的
注意:首先要查看一下aarch64-linux-gnu-gcc和aarch64-linux-gnu-g++是否存在,如果不存在,切换root用户下进行编译。
在aircrack-ng的根目录下创建build.sh脚本,并写入以下编译命令

#!/bin/bash
./configure \
--with-experimental \
--host=aarch64-linux-gnu \
--prefix=$(pwd)/__install \
--with-openssl=/home/ubuntu/build/openssl-OpenSSL_1_0_2l/__install \
CFLAGS="-L/home/ubuntu/build/openssl-OpenSSL_1_0_2l/__install/lib \
-L/home/ubuntu/build/libnl-3.2.25/__install/lib \
-I/home/ubuntu/build/libnl-3.2.25/__install/include \
-I/home/ubuntu/build/openssl-OpenSSL_1_0_2l/__install/include \
-L/home/ubuntu/build/zlib-master/__install/lib \
-I/home/ubuntu/build/zlib-master/__install/include"

交叉编译

make distclean
sh build.sh
make
make install
bin  libexec  sbin  share

三、移植过程

bin、sbin目录下就是我们的aircrack-ng工具集了,把这些目录拷贝到目标系统相关路径下,如果运行过程缺少库的话,将上面移植的openssl、libnl也拷贝到目标系统相关路径下。

致谢:感谢此文(https://blog.csdn.net/cpongo3/article/details/93995894)博主提供了在mips下移植aircrack-ng作为参考。

你可能感兴趣的:(RK3399)