MiniEAP 交叉编译
MiniEAP 交叉编译
MiniEAP 交叉编译
MiniEAP 相对于原来的 Mentohust 更容易适配各个学校,并受到 mentohust 原作者推荐。 本文将在 Ubuntu 下将 MiniEAP 交叉编译到 lede 系统中。
本文参照这篇博文完成对 MiniEAP 的交叉编译,在此表示感谢!
##准备 将对应路由器 CPU 的 SDK、libpcap 源码、MiniEAP源码下载到 Ubuntu 中。我用的是斐讯K2路由器,在此提供相应的地址。LEDE-SDK-mt7620、libpcap-1.8.1、minieap。
为了方便说明,假设主目录位置为/home/admin/
,上面所有文件均放置在主目录文件下,且压缩包均已解压。
##配置交叉编译环境 在命令行中输入如下命令
export PATH=$PATH:/home/admin/lede-sdk-17.01.1/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin
这里不可以照抄,SDK 的文件夹名有所改动。最后测试的话 echo $PATH
##交叉编译 libpcap 动态链接库 进入解压后的 libpcap 文件夹,输入如下命令
./configure --host=mipsel-openwrt-linux --with-pcap=linux
如果出错,查看 --host=
后面的东西是否跟上一步中配置交叉环境中的 bin 里面的文件名开头一致。
没有问题的话开始编译
make
之后会在当前文件夹下得到 libpcap.a 的文件。
##编译 minieap
进入 minieap 文件夹并打开 config.mk
,参照 MiniEAP 主页进行一些定制化配置。
在我的Ubuntu上,有 getifaddr 和 iconv 库文件。因此我的 config.mk
配置如下:
#### Choose/Add your modules here ####
PLUGIN_MODULES := \
packet_plugin_printer \
packet_plugin_rjv3
# Linux
#PLUGIN_MODULES += if_impl_sockraw
# macOS / BSD
# PLUGIN_MODULES += if_impl_bpf
# Other OS
PLUGIN_MODULES += if_impl_libpcap
# This implementation is not included in the code.
# If you need it, add it yourselves.
# PLUGIN_MODULES += ifaddrs
ENABLE_DEBUG := false
ENABLE_ICONV := true
STATIC_BUILD := true
# If your platform has iconv_* integrated into libc, change to false
# Affects dynamic linking
LIBICONV_STANDALONE := false
CUSTOM_CFLAGS :=
CUSTOM_LDFLAGS :=
CUSTOM_LIBS += /home/work/libpcap-1.8.1/libpcap.a
CC := mipsel-openwrt-linux-gcc
# Example for cross-compiling
# CC := arm-brcm-linux-uclibcgnueabi-gcc
# ENABLE_ICONV := true
# CUSTOM_CFLAGS += -I/home/me/libiconv-1.14/include
# CUSTOM_LIBS += /home/me/arm/libiconv.a
# PLUGIN_MODULES += ifaddrs
# STATIC_BUILD := true
保存后输入
make
编译出可执行文件。
##备注
这是我第一次尝试交叉编译,如有问题尽管指出。
编译后的 MiniEAP 有些 bug,比如不能自动生成配置文件,需要手动在 /etc/minieap.conf
中填写相应信息。填写要求参考 MiniEAP 项目主页。
我编译好的版本在这里 密码 7dv9