Building TAYGA for TomatoUSB
Steven Walter contributed the below instructions on how to build TAYGA for the TomatoUSB firmware for WRT54-like home routers.
I started with a Tomato USB firmware with IPv6 and JFFS enabled. To
start with I downloaded the git repository for Tomato, since it
contains the necessary MIPS cross-compiler tool chain.
Read tools/README in the tomato source tree and follow the
instructions for putting the compiler toolchain in $PATH. You can go
ahead and build Tomato as indicated; the only part that's really
necessary is to build the tun.o kernel module. It is built by
default, but not included in the flash image. Alternately, you can
use a firmware image that supports OpenVPN. To build TAYGA, configure
it like so:
CC=mipsel-linux-uclibc-gcc ./configure --host=mipsel-linux-uclibc \
--build=i686-linux-gnu-pc
You can build it with the usual "make", and then copy the binary to
/jffs on your router. You might want to strip it with
mipsel-linux-uclibc-strip first. Then copy tun.o also onto /jffs, if
necessary. Create /jffs/tayga.conf as you would for any other Linux
system.
From the router's shell:
# cd /jffs
# insmod ./tun.o
# ./tayga -c tayga.conf --mktun
# (configure your tun device, use "ip" just like on any other Linux system)
# ./tayga -c tayga.conf
At this point tayga is running and functional. You might find, as I
did, that the default firewall rules prevent it from being very
useful. I added this rules to my iptables:
# iptables -A FORWARD -i nat64 -j ACCEPT
# iptables -A FORWARD -o nat64 -j ACCEPT
ip6tables will need to allow forwarding as well, but that was not
already denied on my system.