Building TAYGA for TomatoUSB

Back to main page

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.