交叉编译适用于mips架构ar71xx的mentohust
交叉编译
因为我的wr740N硬改了16M flash,刷上了openwrt 15.05.01,但是这个路由器有点老,适用于锐捷认证的mentohust没有这么高版本的可执行文件,于是今天自己试着交叉编译了一下。
途中还是挺顺利的。
准备工作
- centos 6 (64bits)腾讯云服务器
- 依赖安装(都是网上找来的)
1
sudo yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel curl curl-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel xz openssh-clients cmake libtool
- 下载openwrt sdk
1
2
3
4cd /root
wget https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
tar jxvf OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
mv OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64 op - 下载libpcap
直接把依赖库libpcap也编译进去(当然也可以opkg opdate && opkg install libpcap
)1
2wget http://www.tcpdump.org/release/libpcap-1.7.4.tar.gz
tar zxvf libpcap-1.7.4.tar.gz - 下载mentohust-proxy
1
git clone https://github.com/updateing/mentohust-proxy.git
- 环境变量的设置和windwos下的环境变量作用一样,调用mips-openwrt-linux-uclibc-gcc 来编译mentohust。
1
2export PATH=$PATH:/root/op/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin:/root/op/staging_dir/host/bin
export STAGING_DIR=/root/op/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/mips-openwrt-linux-uclibc
编译libpcap.a
1 | cd /root/libpcap-1.7.4 |
完成之后在当前目录生成libpcap.a
文件。
编译mentohust
1 | sh autogen.sh |
--with-pcap
指定了当前的libpcap.a路径。
在src目录下的mentohust就是最终编译好的文件了。
从云端拿下来
1 | scp root@xxx.xxx.xxx.xx:/root/mento*/src/mentohust ~ |
把mentohust上传至路由器
1 | scp ~/mentohust root@192.168.1.1:/bin |
运行mentohust
1 | mentohust |
第一次运行会生成配置文件/etc/mentohust.conf
,你可以更改源码中的myconf.c
来修改路径。
下载我编译的mentohust文件:click here!
评论
评论插件加载失败
正在加载评论插件