八月 26 2014

关于Tomato固件

以下内容大多数转自Shibby的个人网页 Shibby website.

 谢谢Shibby,谢谢他为Tomato社区做出的持续的巨大的贡献。

tux1Tomato is a system based on Linux, dedicated for routers with Broadcom chipset and distributed on the GPL license. Its development was started by Jonathan Zarate. This advanced system consists of especially user-friendly interface, thanks to which even inexperienced users can work with it easily. The most important functions are:

  • Bandwidth monitoring
  • Advanced QoS
  • Access control
  • Enabled SSH/Telnet protocols
  • Configurable buttons and LED’s
  • Support for many wireless modes

In addition to that, excellent mods of official software emerged extending even more built-in functionalities, like:
Built-in openVPN server/client

  • SNMP protocol
  • Support for SD/MMC/SDHC (for devices with SD-MOD)
  • BW Limiter (QoS Limit) – graphic interface to generate HTB scripts
  • ARP Binding

At the end of 2008, Fedor Kozhevnikov (known as a Teddy_Bear) releases for everyone in the world his modification of Tomato called “TomatoUSB”. This software was dedicated for Asus routers WL500GP, WL500W and DIR-320 – first routers with USB port, but, what’s most important, this software works also on routers supported before without USB port. The most important new features added by Teddy_Bear:

  • Support for USB1.1 and USB2.0
  • Support for mass storage memory and for file systems like: ext2/3, fat32 and NTFS
  • Auto mounting for connected drives
  • Built-in Samba server
  • Built-in FTP server
  • Built-in minidlna server (multimedia)
  • Built-in print server (p910nd)
  • Support for Wireless-N (2,4GHz) standard
  • Support for new routers
  • New wireless driver (version 4.150.10.29)

When Asus introduced RT-N16, Teddy_Bear released his new modification -TomatoUSB K26:

  • Migration from old kernel K2.4 to a new one K2.6
  • Support for new devices (Asus RT-N10/12,/16, Netgear WNR3500L etc.)
  • Web monitor – based on Gargoyle project
  • New wireless driver (version 5.10.56.46)
  • At the end of 2010, Build53 was released. This was one of the biggest milestones in Tomato firmware history because:
  • the support for dual-band (allowing devices to access the network on the 2.4GHz and the 5GHz frequency bands) was added
  • New wireless driver (version 5.10.147.0) was updated
  • the support for Linksys E2000/E3000/E4200 and WNR610Nv2 was added as well as
  • support for IPv6

The last version released by Teddy_Bear was Build54. In April 2011 from private reasons Teddy_Bears ended his work on TomatoUSB. However, others developers accepted the challenge to improve Tomato. Most active developers are: Victek, Toastman, Shibby.
August 31st, 2011, Teddy_Bear once proved his activity by issuing a series of modifications in his GIT repository (tomato-RT). Unfortunately, the final firmware was not released. Fedor created also a new branch called tomato-RT-N in which he updated wireless driver to 5.100.138.9. Thanks to that, Linksys E4200 was eventually provided with fully operating 5GHz band. This branch was also prepared for incoming Asus RT-N66u. From this day we have not heard anything about our colleague Teddy_Bear.
My compilation of Tomato is a continuation of Teddy’s work. Most important features added by me:
Torrent client integration (Transmission) with user-friendly GUI for configuration.

  • NFS server integration
  • sd-idle tool added to K26
  • Support for USB 3G modems (thx @LDevil)
  • SNMP protocol integration
  • APCUPSD integration (thx @arrmo)
  • DNScrypt-proxy integration
  • possibility to change path for system logs

As an senior developer on Tomato community, Shibby gives his great contribution to Tomato,  includes also work results of the other Tomato developers (Victek, Toastman, Teaman). The most important from them:

  • renewed IP/MAC BW Limiter (Victek/PrinceAMD/Phykris/Shibby)
  • extended Sysinfo
  • Captive Portal (nocatsplash)
  • Support for file system HFS/HFS+
  • IPTraffic Monitor
  • ARP Binding
  • GUI to configure VLAN’s
  • Support for multiple LAN’s
  • Support for simultaneous SSID
  • UPDxy integration
  • PPTP integration
  • Configurable labels for QoS classes

Actually I am not a newbee for Tomato. I worked a Chinese version of Tomato 1.23 that PolarCloud had released many years ago. My major jobs includes,

  • Support Simple Chinese UI
  • Display wireless chip temperature and txpwr
  • Display CPU occupancy rate
  • Add support for Tenda W1800R,N80,N60 and N6 models
  • Add support for ChinaNet HG320, H218N ,RG200E-CA, RG100E-CA B0/C0 models
  • Add support for Vivick Q-W601,Buffalo WHR-HP-G(Japan) models
  • Add support for Buffalo WZR-D1800H models(experimental)
  • Add support for Phicomm FWR706, FIR303B, FIR302B
  • Add support for Netcore NR235W, NI360, Q3
  • Add support for Netgear WNDR3400/3400v2/3700v3/4000 (Thanks arrmo) R6300v1
  • Xunlei Remote integration
  • GUI for Xunlei Remote
  • Aria2 integration
  • GUI (include yaaw) for Aria2
  • TinyProxy and Srelay integration and GUI
  • Python 2.7.3(Full), gevent/greelet/pyOpenSSL integration
  • GoAgent/Wallproxy integration
  • Transparent over Wall integration and GUI (credit by Jun Lee, PunkDM)
  • ToW supports WebVPN, Shadowsocks(local and redir), SSH, GAE/WallProxy
  • Support PPPoE Relay
  • Support PPPoE Server
  • MySQL database server integration and GUI
  • and so on