交叉编译适用于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
    4
    cd /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
    2
    wget 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
  • 环境变量的设置
    1
    2
    export 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
    和windwos下的环境变量作用一样,调用mips-openwrt-linux-uclibc-gcc 来编译mentohust。

    编译libpcap.a

    1
    2
    3
    cd /root/libpcap-1.7.4
    ./configure --host=mips-openwrt-linux-uclibc --with-pcap=linux
    make
    完成之后在当前目录生成libpcap.a文件。

编译mentohust

1
2
3
sh autogen.sh
./configure --host=mips-openwrt-linux-uclibc --disable-encodepass --disable-notify --with-pcap=/root/libpcap-1.7.4/libpcap.a
make

--with-pcap指定了当前的libpcap.a路径。
在src目录下的mentohust就是最终编译好的文件了。

从云端拿下来

1
scp [email protected]:/root/mento*/src/mentohust ~

把mentohust上传至路由器

1
scp ~/mentohust [email protected]:/bin

运行mentohust

1
mentohust

第一次运行会生成配置文件/etc/mentohust.conf,你可以更改源码中的myconf.c来修改路径。
下载我编译的mentohust文件:click here!

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×