条件:你有or准备入手一台能够正常运行openwrt/LEDE等第三方rom的路由器,以及mentohust源码。
准备
类Unix环境必须要有的啦,这里有对大部分类Unix搭建环境的说明。博主用的是Fedora 25,下面都是用root账号实施的命令,如果没有的话可以用sudo以防出错。
下载对应你路由器cpu的SDK,比如博主的是Hiwifi 3,型号是HC5861,CPU是ramips的mipsel架构MT7620A(找到的只有MT7620,不过能用),OpenWrt-SDK-ramips-mt7620_gcc-5.3.0_musl-1.1.16.Linux-x86_64.tar.bz2,就是这个,可以在openwrt的wiki上找到tech info来查看。
下载libpcap源码。
配置交叉编译环境
解压下载的SDK
然后配置环境变量
1 | # export PATH=$PATH:/home/laplacence/LEDE/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16/bin |
这里不可以照抄,看清楚再贴位置,测试$ echo $PATH
。
交叉编译libpcap动态链接库
解压libpcap-1.8.1.tar.gz
1 | # ./configure --host=mipsel-openwrt-linux --prefix=/home/laplacence/Downloads/ --with-pcap=linux |
如果出错请检查bin里面的东西是否和host一致,得到libpcap.a,之后会用到。
编译mentohust
解压mentohust源代码,cd进去,然后修改部分源代码,因为配置文件和日志文件等是面对PC写的,openwrt上面一些路径是只读的,可以自定义喜欢的路径,最后不要忘记在路由器上mkdir和文件夹chmod就好。
1 | //myconfig.c |
保存,输入
1 | ./configure --host=mipsel-openwrt-linux --disable-encodepass --disable-notify --prefix=/mentohust --with-pcap=~/libpcap.a |
–with-pcap这里是刚刚libpcap.a的文件路径。
接着在src里面应该已经生成了mentohust的可执行文件。
上传到路由器的话,大家应该都会用scp命令吧,这里就不再做详细解释了,mentohust用法同理也不再赘述,之后可以-w参数保存后可以把命令$sudo mentohust
或者#mentohust
放进/etc/rc.local里面开机运行。