Tomato (firmware)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Tomato Firmware
Tuxt.png
Original author(s)Jonathan Zarate
Developer(s)FreshTomato Project
Initial releaseDecember 2006; 13 years ago (2006-12)
Stable release
1.28 / June 28, 2010;
9 years ago
 (2010-06-28)
Written inC++
Operating systemLinux
PlatformMIPS, ARM
TypeRouting software
LicenseFreeware
Backend: GNU General Public License
Frontend: proprietary[1]
Websitewww.polarcloud.com/tomato

Tomato is a family of community-developed, custom firmware for consumer-grade computer networking routers and gateways powered by Broadcom chipsets. The goal of the project is to provide users with an alternative to the firmware pre-installed on their equipment by the manufacturer, providing:

  • Additional features, making fuller use of the device's hardware
  • Enhanced security
  • More frequent updates
  • Ultimately, greater control over its configuration and behavior

With over a decade of (mostly) free open-source development invested by hundreds of contributors since its inception, there have often been multiple forks actively supported at any given time, the unique goals and implementations of each further empowering users to have options and provide feedback on how the device operates.

History[edit]

Tomato was originally released by Jonathan Zarate in 2006, using the Linux kernel and drawing extensively on the code of HyperWRT. It was targeted at many popular routers of the time, most notably the older Linksys WRT54G series, Buffalo AirStation, Asus routers and Netgear WNR3500L.[2] His final release of the original Tomato firmware came in June 2010, by which point its popularity had grown large enough that development and support continued through the user community, resulting in a series of releases (dubbed "mods") by individual users or teams of them that continues to the present day.

Fedor Kozhevnikov created a notable early mod he called TomatoUSB, which ceased development in November 2010.[3] It was then forked by other developers[4] and remains the nearest common ancestor to all of the forks with any recent activity. Arguably the project's largest recognition to date came when Tomato was chosen by Asus as the base used to build the firmware currently preinstalled on their entire line of home routers, ASUSWRT.[5][6]

As is often seen in projects founded on volunteer effort, the Tomato ecosystem slowly became more fragmented over time and thus more vulnerable to attrition. As of 2019 there is only a single extant fork under active development: FreshTomato.

Features[edit]

Several notable features have been part of Tomato long enough to be common to all forks, among them are:

  • The graphical user interface (accessed via web browser), including:
    • Access to almost the entirety of the features provided by the hardware (manufacturers typically omit many of these from their firmware to prevent misuse and reduce support costs)
    • Extensive use of Ajax to display only the settings that are germane to the device's current setup, reducing confusion and keeping related options near each other using fewer pages/tabs
    • A CSS-based custom interface theming
    • SVG-based graphical bandwidth monitoring, showing total network inbound/outbound activity and that of each connected device through pie charts and line graphs that update in real-time
      Image of TomatoUSB settings page displaying live line graph of incoming and outgoing router bandwidth
      Tomato live bandwidth monitor
  • A personal web server (Nginx) that uses the device's "always on, always connected" design to allow users to host their own websites from home for free
  • Access and bandwidth restriction configurable for each device or the network as a whole, providing control over the speed and amount of traffic available at any time to any device
  • Unrestricted access to the internal system logs and the ability to store them for easier troubleshooting and security audits
  • CLI access (BusyBox) via the web-based interface, as well as via Telnet or SSH (using Dropbear)
  • Netfilter/iptables with customizable settings, IPP2P and l7-filter
  • Wake-on-LAN
  • Advanced QoS: 10 unique QoS classes defined, real-time graphs display prioritized traffic with traffic class details
  • Client bandwidth control via QoS classes
  • The Dnsmasq software built-in, which provides:
    • DHCP server (with static allocation of IP addresses)
    • Local DNS server (usually forwarding requests to the DNS provider of choice)
  • Wireless modes:
    • Access point (AP)
    • Wireless client station (STA)
    • Wireless Ethernet (WET) bridge
    • Wireless distribution system (WDS also known as wireless bridging)
    • Simultaneous AP and WDS (also known as wireless repeating)
  • Dynamic DNS service with ezUpdate and services extended for more providers
  • SES button control
  • JFFS2
  • SMB client
  • Wireless LAN Adjustment of radio transmit power, antenna selection, and 14 wireless channels
  • 'Boot wait' protection (increase the time slot for uploading firmware via the boot loader)
  • Advanced port forwarding, redirection, and triggering with UPnP and NAT-PMP
  • Init, shutdown, firewall, and WAN Up scripts
  • Uptime, load average, and free memory status
  • Minimal reboots - Very few configuration changes require a reboot
  • Wireless survey page to view other networks in your neighborhood
  • More comprehensive dashboard than stock firmware: displays signal strengths of wireless client devices, reveals UPnP mappings
  • Configuration persistence during a firmware upgrade

Feature comparison[edit]

Mod name Base
version
Mod
version
Latest
release
5 GHz
(802.11
a/n/ac/ax)
IPv6 USB
support
Memory card
support
VPN
protocols[a]
SFTP Virtual LANs
TomatoVPN
(SgtPepperKSU)[7]
1.27[b] 1.27vpn3.6 Jan 2010 No No No No OpenVPN No No
Tomato 1.28[c] 1.28 Jun 2010 No No No No No No No
Tomato ND 1.28[d] 1.28 Jun 2010 No No No No No No No
SpeedMod
(hardc0re)
1.28[b] 120 Jul 2010 No No No No No No No
TomatoUSB
(Teddy Bear)[8]
1.28[d] Build 54 Nov 2010 Yes Yes Printer sharing,
NAS (CIFS/FTP),
DLNA server
No OpenVPN Via
Optware
Yes
slodki 1.28[d] 1.28.02 Feb 2011 No No Printer sharing,
NAS (CIFS/FTP)
SD,
SDHC,
MMC
OpenVPN Via
Optware
No
DualWAN[9] 1.28[b] 1.28.0542 Jan 2012 No Yes Printer sharing,
NAS (CIFS/FTP),
DLNA server,
3G Modem
No OpenVPN,
PPTP
Via
Optware
Yes
Teaman[10] 1.28[d] v0025 Jun 2012 Yes Yes Printer sharing,
NAS (CIFS/FTP),
3G Modem
SD,
SDHC,
MMC
OpenVPN,
PPTP (server)
Via
Optware
With GUI
EasyTomato[11] 1.28[b] 0.8 Jun 2013 Yes Yes Printer sharing,
NAS (CIFS/NFSv3/FTP),
DLNA server,
3G Modem
SD,
SDHC,
MMC
OpenVPN,
PPTP
Via
Optware
With GUI
Victek RAF[12] 1.28[b] 1.28.9013 R1.3 Jul 2014 Yes Yes Printer sharing,
NAS (CIFS/NFSv3/FTP),
DLNA server,
3G Modem
SD,
SDHC,
MMC
OpenVPN,
PPTP
Via
Optware
With GUI
Toastman[13] 1.28[b] RT: 1.28.7511.5
RT‑N: 1.28.0511.5
ARM: 1.28.9008.8
Jan 2017 Yes Yes Printer sharing,
NAS (CIFS/NFSv3/FTP),
DLNA server,
3G Modem
SD,
SDHC,
MMC
OpenVPN,
PPTP
Via Entware‑ng
or
Optware‑ng
With GUI
Shibby 1.28[b] v140‑MultiWAN May 2017 Yes Yes Printer sharing,
NAS (CIFS/NFSv3/FTP),
DLNA server,
3G/LTE Modem,
UPS monitoring
SD,
SDHC,
SDXC,
MMC
OpenVPN, PPTP,
L2TP (client),
tinc (server)
Via Entware
or
Optware‑ng
With GUI
AdvancedTomato V2 1.28[b] 3.5-140 Nov 2017 Yes Yes Printer sharing,
NAS (CIFS/NFSv3/FTP),
DLNA server,
3G/LTE Modem
and UPS monitoring
SD,
SDHC,
SDXC,
MMC
OpenVPN, PPTP,
L2TP (client),
tinc (server)
Via Entware
or
Optware‑ng
With GUI
FreshTomato‑ARM
and
FreshTomato‑MIPS
1.28[b] 2019.4[14] Dec 2019 Yes Yes Printer sharing,
NAS (SMB2/NFSv4/FTP),
DLNA server,
3G/LTE Modem
and UPS monitoring
SD,
SDHC,
SDXC,
MMC
OpenVPN, PPTP,
L2TP (client),
tinc (server)
Via Entware
or
Optware‑ng
With GUI
Mod name Base
version
Mod
version
Latest
release
5 GHz
(802.11
a/n/ac/ax)
IPv6 USB
support
Memory card
support
VPN
protocols
SFTP Virtual LANs

Feature comparison (cont.)[edit]

Name
Static ARP
Bandwidth limiter
NFS server
BitTorrent client
Guest WiFi
PPPoE server
Tor client
Multi‑WAN
Siproxd VoIP
LED control
Theming [15]
Per-IP traffic stats
TomatoVPN
(SgtPepperKSU)
No No No No No No No No No No No No No No No No No No No
Tomato No No No No No No No No No No No No No No No No No No No
Tomato ND No No No No No No No No No No No No No No No No No No No
SpeedMod
(hardc0re)
No No No No No No No No No No No No No No No No No No No
TomatoUSB
(Teddy Bear)
No No No No No No No No No No No No No No No No No Yes No
slodki No No No No No No No No No No No No No No No No No No No
DualWAN Yes Yes No Yes No Yes No No No No Yes No No No No No Yes Yes Yes
Teaman Yes Yes No No With
GUI
No No No No No No No No No No No Yes Yes Yes
EasyTomato Yes Yes Version 3 No With
GUI
No No No No No No No No No No No Yes Yes Yes
Victek RAF Yes VLAN Version 3 No With
GUI
No With
GUI
With
GUI
No No No With
GUI
With
GUI
by script No No Yes Yes Yes
Toastman Yes Yes Version 3 No With
GUI
No No With
GUI
No No No No No No No No Yes Yes Yes
Shibby Yes VLAN Version 3
(with GUI)
With
GUI
With
GUI
No With
GUI
Yes With
GUI
Yes Yes No Yes Yes Yes by script Yes Yes Yes
AdvancedTomato V2 Yes VLAN Version 3
(with GUI)
With
GUI
With
GUI
No With
GUI
Yes With
GUI
Yes Yes No Yes Yes Yes by script Yes Yes Yes
FreshTomato‑ARM
and
FreshTomato‑MIPS
Yes VLAN Version 4
(with GUI)
With
GUI
With
GUI
No With
GUI
Yes With
GUI
Yes Yes No Yes Yes Yes by script Yes No Yes
Name
Static ARP
Bandwidth limiter
NFS server
BitTorrent client
Guest WiFi
PPPoE server
Tor client
Multi‑WAN
Siproxd VoIP
LED control
Theming [15]
Per-IP traffic stats
  1. ^ Firmware supports listed protocols in client and server modes unless specified
  2. ^ a b c d e f g h i Tomato standard and ND
  3. ^ Tomato standard only
  4. ^ a b c d Tomato ND (New Driver) only

Supported routers[edit]

The Tomato by Shibby[16] and AdvancedTomato[17] projects offer lists of supported devices on their respective websites.

FreshTomato[edit]

The FreshTomato project offers downloads for the following devices:

Model Rev CPU Type CPU Freq LAN USB2 USB3 WiFi Flash RAM Version Notes
Asus RT-N10 A1 R2 300 100 Mbps - - n300 4MB 16MB K26 Only build52 and earlier! B1/C1 are not supported
Asus RT-N10P R2 300 100 Mbps - - n300 8MB 32MB K26RT-N
Asus RT-N10U A1/B1/C1 R2 300 100 Mbps 1 - n300 8MB 32MB K26RT-N
Asus RT-N12 R2 300 100 Mbps - - n300 4MB 32MB K26
Asus RT-N12 B1/C1/D1 R2 300 100 Mbps - - n300 8MB 32MB K26RT-N
Asus RT-N15U R2 500 1 Gbps 1 - n300 8MB 64MB K26RT-N
Asus RT-N16 R2 480 1 Gbps 2 - n300 32MB 128MB K26 or K26RT-N NVRAM32K build required
Asus RT-N18U ARM 800 1 Gbps 1 1 n600 128MB 256MB K26ARM
Asus RT-N53 R2 300 100 Mbps - - n600 8MB 32MB K26RT-N A1 supported from V114
Asus RT-N66U R2 600 1 Gbps 2 - n900 32MB 256MB K26RT-N or K26RT-AC K26RT-N supports Wireless Client Mode (security works)
Asus RT-AC66U_B1 ARM 1000 x2 1 Gbps 1 1 ac1750 128MB 256MB K26ARM-NG
Asus RT-AC56S ARM 800 x2 1 Gbps 1 1 ac1200 128MB 128MB K26ARM
Asus RT-AC56U/R ARM 800 x2 1 Gbps 1 1 ac1200 128MB 256MB K26ARM
Asus RT-AC66U A1/B1 R2 600 1 Gbps 2 - ac1750 32MB 256MB K26RT-AC Need to fix revision information for this row
Asus RT-AC68U/R/P A1/A2/B1 ARM 800 x2 1 Gbps 1 1 ac1900 128MB 256MB K26ARM
Asus RT-AC68U C1/E1 ARM 1000 x2 1 Gbps 1 1 ac1900 128MB 256MB K26ARM-NG
Asus RT-AC1900P ARM 1400 x2 1 Gbps 1 1 ac1900 128MB 256MB K26ARM-NG
Asus RT-AC3200 ARM 1000 x2 1 Gbps 1 1 ac3200 128MB 256MB K26ARM7
Asus WL-330gE R1 240 100 Mbps - - g54 4MB 16MB K26
Asus WL-500GP v1/v2 R1 240 100 Mbps 2 - g54 8MB 32MB K26
Asus WL-500W R1 264 100 Mbps 2 - g54 8MB 32MB K26
Asus WL-520GU R1 240 100 Mbps 1 - g54 4MB 16MB K26
Belkin F5D - -
Belkin F7D 4302 533 100 Mbps - - a/n300 8MB 64MB
Belkin F9K - -
Buffalo WHR-G54S R1 200 100 Mbps - - g54 4MB 16MB K26
Buffalo WHR-G125 R1 240 100 Mbps - - g108 4MB 16MB K26
Buffalo WHR-HP-G54 R1 200 100 Mbps - - g54 4MB 16MB K26
Buffalo WZR-D1800H R2 600 1 Gbps 1 - ac1750 128MB 128MB K26RT-N
CD-R King CW-5358U R2 100 Mbps 1 - n300 8MB 32MB http://www.cdrking.com/index.php?mod=products&type=view&sid=15792&main=0
Cisco M10 v2 100 Mbps - - n300 4MB 32MB K26RT-N
D-Link DIR-320 R1 240 100 Mbps 1 - n150 4MB 32MB K26
D-Link DIR-620 C1 R2 530 100 Mbps 1 - n300 8MB 64MB K26RT-N
D-Link DIR-868L A1/B1/C1 ARM 800 x2 1 Gbps - 1 ac1750 128MB 128MB K26ARM NVRAM is limited to 32K use special build
Fiboom HG320 R2 533 100 Mbps 1 - 16MB 256MB K26RT-N
Huawei WS880 ARM 800 x2 1 Gbps - 1 ac1750 128MB 128MB K26ARM
Linksys E800 R2 300 100 Mbps - - n150 8MB 32MB K26RT-N
Linksys E900 R2 300 100 Mbps - - n300 8MB 32MB K26RT-N
Linksys E1000 v1/v2.0/v2.1 R2 300 100 Mbps - - n300 4MB 32MB K26RT-N
Linksys E1200 v1/v2 R2 300 100 Mbps - - n300 4MB 32MB K26RT-N
Linksys E1500 R2 300 100 Mbps - - n300 8MB 32MB K26RT-N
Linksys E1550 R2 300 100 Mbps 1 - n300 16MB 64MB K26RT-N
Linksys E2000 R2 354 1 Gbps - - n300 8MB 32MB K26
Linksys E2500 R2 300 100 Mbps - - n600 8MB 64MB K26RT-N NVRAM limited to 32kB
Linksys E3000 R2 480 1 Gbps 1 - n600 8MB 64MB K26
Linksys E3200 R2 500 1 Gbps 1 - n600 16MB 64MB K26RT-N NVRAM limited to 32kB
Linksys E4200 v1 R2 480 1 Gbps 1 - n750 16MB 64MB K26RT-N V2 is not supported!
Linksys EA6200 v1 ARM 800 1 Gbps - 1 ac900 128MB 128MB K26ARM single core
Linksys EA6300 v1 ARM 800 x2 1 Gbps - 1 ac1200 128MB 128MB K26ARM
Linksys EA6350 v1 ARM 800 1 Gbps - 1 ac1200 128MB 128MB K26ARM single core
Linksys EA6400 ARM 800 x2 1 Gbps - 1 ac1200 128MB 128MB K26ARM
Linksys EA6500 v2 ARM 800 x2 1 Gbps - 1 ac1750 128MB 256MB K26ARM
Linksys EA6700 ARM 800 x2 1 Gbps - 1 ac1750 128MB 256MB K26ARM
Linksys WRT54GL v1/v1.1 R1 200 100 Mbps - - g54 4MB 16MB K26
Linksys EA6900 ARM 800 x2 1 Gbps - 1 ac1900 128MB 256MB K26ARM
Linksys WRT54G/GS v2-v4 R1 240 100 Mbps - - g54 4-8MB 32-64MB K26
Linksys WRTSL54GS R1 266 100 Mbps 1 - g54 8MB 32MB K26
Linksys WRT160N v1 R1 266 100 Mbps - - n300 4MB 32MB K26
Linksys WRT160N v3 R2 300 100 Mbps - - n300 4MB 32MB K26
Linksys WRT300N v1 R1 264 100 Mbps - - n300 4MB 32MB K26
Linksys WRT310N v1 R1 300 1 Gbps - - n300 4MB 32MB K26
Linksys WRT310N v2 R2 300 1 Gbps - - n300 4MB 32MB K26 same as WRT160N v3
Linksys WRT320N R2 354 1 Gbps - - n300 8MB 32MB K26
Linksys WRT610N v2 R2 480 1 Gbps 1 - n300 8MB 64MB K26
Netgear R6250 ARM 800 x2 1 Gbps - 1 ac1600 128MB 256MB K26ARM
Netgear R6300 v1 R2 600 1 Gbps 2 1 ac1750 128MB 128MB K26RT-AC
Netgear R6300 v2 ARM 800 x2 1 Gbps 1 1 ac1750 128MB 256MB K26ARM
Netgear R6400 v1 ARM 800 x2 1 Gbps 1 1 ac1750 128MB 256MB K26ARM
Netgear R6400 v2 ARM 1000 x2 1 Gbps 1 1 ac1750 128MB 256MB K26ARM-NG
Netgear R6700 v3 ARM 1000 x2 1 Gbps 1 1 ac1750 128MB 256MB K26ARM-NG
Netgear R7000 ARM 1000 x2 1 Gbps 1 1 ac1900 128MB 256MB K26ARM
Netgear R8000 ARM 1000 x2 1 Gbps 1 1 ac3200 128MB 256MB K26ARM7
Netgear WNR2000 v2 R2 300 100 Mbps - - n300 4MB 32MB K26
Netgear WNR3500 v2 R2 453 1 Gbps - - n300 4MB 32MB K26
Netgear WNR3500L v1 R2 453 1 Gbps 1 - n300 8MB 64MB K26
Netgear WNR3500L v2 R2 500 1 Gbps 1 - n300 128MB 128MB K26RT-N
Netgear WNDR4500 v1 R2 600 1 Gbps 2 - n900 128MB 128MB K26RT-AC
Netgear WNDR4500 v2 R2 600 1 Gbps 2 - n900 128MB 128MB K26RT-AC
Ovislink WL1600GL R1 240 100 Mbps - - g125 4MB 16MB K26
Tenda AC15 ARM 800 x2 1 Gbps - 1 ac1900 16MB 128MB K26ARM
Tenda AC18 ARM 800 x2 1 Gbps - 1 ac1900 128MB 256MB K26ARM
Tenda N6 R2 300 100 Mbps - - n600 8MB 64MB K26RT-N
Tenda N60 R2 500 1 Gbps 1 - n600 8MB 64MB K26RT-N
Tenda N80 R2 500 1 Gbps 1 - n900 8MB 128MB K26RT-N
Tenda W1800R R2 600 1 Gbps 2 - ac1750 16MB 256MB K26RT-AC
ZTE ZXV10 H618B R1 240 100 Mbps 1 - g54 16MB 32MB K26
ZTE H218N R2 500 1 Gbps 1 - n300 16MB 64MB K26RT-N

See also[edit]

References[edit]

  1. ^ Zarate, Jonathan. "Tomato Firmware, tomato/release/src/router/www/tomato.js source file". Sourceforge.net. Retrieved 23 September 2014. Copyright 2006-2010 Jonathan Zarate For use with Tomato Firmware only. No part of this file may be used without permission.
  2. ^ "Tomato Firmware | polarcloud.com". www.polarcloud.com. Retrieved 2016-10-05.
  3. ^ "Tomato by Shibby » About Tomato (ang.)". tomato.groov.pl. Retrieved 2016-10-05.
  4. ^ List of Tomato Mods on the TomatoUSB website
  5. ^ "Asus ASUSWRT". Retrieved 2018-01-03.
  6. ^ "Asuswrt-Merlin » About". Retrieved 2018-01-03.
  7. ^ TomatoVPN official website
  8. ^ TomatoUSB Mod (Teddy Bear) Home page.
  9. ^ DualWAN Mod Home page.
  10. ^ Teaman Mod Home page. Augusto Bott is the author of the VLANs GUI, Per-IP Traffic Stats (author of cstats, which keeps per-IP data/track/history), Client Monitor Graphs (author of IPTraffic) and author of the Guest SSID GUI.
  11. ^ "EasyTomato Home Page". Retrieved 2019-03-11.
  12. ^ Victek RAF Mod Home page
  13. ^ Toastman Mod Home page. Tomato builds with many useful added features. Lean, stable, and fast with minimal bells and whistles, with a focus on QoS and Administration. Based on TomatoUSB and RT (selected features included from other firmware, plus new mods).
  14. ^ "FreshTomato - Alternative open source firmware for Broadcom-based routers".
  15. ^ a b "About Tomato Theme Base". Retrieved 2019-05-09.
  16. ^ "Tomato by Shibby » Router List". tomato.groov.pl. Retrieved 2016-12-10.
  17. ^ "AdvancedTomato » Downloads". advancedtomato.com. Retrieved 2016-12-10.

External links[edit]