首先我要鄙视一下自己的纠结,因为有另外一个刷了openwrt的路由器是可以上mentohust的。不过鉴于我对tomato的执著,所以花了一个多小时来折腾

下载libpcap 1.0.0的代码,不要图新用了1.3.0的,会用下面这个来打脸的(这个消耗了我半个小时)。

打开网卡vlan1失败: vlan1: vlan1: SIOETHTOOL(ETHTOOL_GTSO) ioctl failed: Invalid argument
接着
./configure --host=mipsel-linux-uclibc --with-pcap=linux --disable-largefile
注意不要漏了disable-largefile,否则会用下面这个打脸(又是半个小时)。
can't resolve symbol 'mmap64'
如果configure的时候提示下面
error: cannot determine linux version when cross-compiling
用文本编辑器打开configure文件,找到下面这句
ac_cv_linux_vers=unknown
改为
ac_cv_linux_vers=2
再重新configure。 然后make。
再svn checkout出mentohust的代码
./configure --host=mipsel-linux-uclibc --disable-encodepass --disable-arp --disable-notify --disable-nls --with-pcap=/path/to/libpcap.a --prefix=/opt --localstatedir=/var
然后make。

到src文件夹里翻出mentohust文件,是个260多K的文件,SCP到路由器里(路由器当然要有jffs分区哈),然后配上相应的启动参数或配置文件,启动~

对了,记得在开启了vlan支持的tomato版本里,不是用eth0来认证的,具体是哪个,设了IP后,SSH进去用ifconfig看一下哪个设备的IP是匹配的,一般是vlan1。