Q: I'm new to FreshTomato. Where should I start?
A: You're in the right place.
Q: Does FreshTomato support only old devices or newer ones too?
A: FreshTomato supports a variety of devices. See the Hardware compatibility page for details. Keep a close eye on CPU speed, Ethernet speed and WiFi speed.
Until recently, it was not possible to create releases that support 802.11ax or newer WiFi standards. However, Broadcom recently released some details about their wireless drivers. As a result, FreshTomato developers are currently writing code to support the Asus TUF AX3000. Traditionally, Broadcom's wireless driver source code has been an industry secret.
Q: What is FreshTomato's default IP(v4) address and subnet mask?
Q: What are FreshTomato's default login credentials?
Q: What do those cryptic filenames mean? How do I choose the right build for my router?
A: The naming scheme for ARM-based models (with some exceptions) is roughly as follows:
Build Name Term | Description |
FreshTomato | The Tomato mod name. This is always FreshTomato, as currently it's the only fork in development. |
Hardware model | Specifies the router or access point model number. |
ARM/MIPS | Specifies the build is intended for devices with ARM or MIPS CPU architecture. |
Wireless Driver (optional) | NG - Indicates whether the New Generation Broadcom binary wireless driver is in the build. Broadcom never released the driver source code, so developers rely on binary drivers. Builds for newer hardware required the newer wireless driver and a newer software development kit (SDK). These builds were called “NG” (“New Generation”) driver builds. RT-N - indicates the build's driver supports 802.11n. RT-AC - indicates the build's driver supports 802.11ac. |
Release name | e.g. 2021.3 - indicates the third release in the year 2021. It does NOT indicate the 3rd month of 2021! |
Build Type | e.g. (Mini / AIO / VPN) - indicates the features included in the build. See Feature matrix to learn more. |
NVRAM size | (32K / 64K / 128K) - Optional. For models with multiple hardware revisions where each revision may include more or less NVRAM. |
NOSMP | (Optional) - This is a special build with single core CPU where SMP (Symmetric Multi Processing) is intentionally disabled. |
Custom | (Optional) - identifies a build which includes or excludes a certain feature (set). |
Reserved for future use | |
Reserved for future use |
For example, we can know the following features from the ARM build with filename:
freshtomato-RT-AC3200-ARM-2021.3-AIO-128K.zip_no_media_server
For more help choosing a build, see the Installing Firmware-Basic Concepts and Procedures page in the HOWTOs section.
When browsing firmware folders on the website, a subfolder named “K26” indicates the build includes Linux kernel 2.6.x . Such folders generally contain generic builds for MIPSR1/MIPSR2 routers. Generally, only old models (before 2010) use the MIPSR1 architecture. Most routers made after 2010 use MIPSR2 or ARM architectures.
The other subfolders, such as K26RT-AC and K26RT-N contain dedicated builds, meant for specific router models. Unless you're experienced, it's recommended you install specific hardware builds. If there is no specific builds for your model, choose a generic build in the K26 folder. Think carefully before deciding if it should be a MIPSR1 or MIPSR2 build.
If you have a Netgear R-series router with Netgear firmware installed, you must first flash with one of the “Netgear R-series initial” files. Once you have an R-series initial build installed, you can then upgrade FreshTomato to newer versions using regular build files. The initial .zip file contains a firmware file with a .chk file extension. The original Netgear firmware can use that file to install FreshTomato.
MD5SUM files are available in each website folder containing firmware. You are strongly advised to run a hash program against the .zip file of the build you downloaded. Then, compare the value in that program with the listed hash value for that build in the MD5SUM file. If the two don't match, your download is corrupt, and you shouldn't flash with that file or you could damage your router. Try downloading it again and performing the hash check until the hashes match.
Q: How can I make temporary changes to FreshTomato's settings that aren't saved unless I want them to be?
A: In the Debugging menu, enable “Avoid committing to NVRAM”. If you don't want to keep the setting changes, just reboot FreshTomato and settings will return to what they were before you made them. If you decide later to save the changes, uncheck Avoid performing an NVRAM commit button. This make experimentation fun and safe.
Another option while debugging is to make a backup configuration and then make your changes, if you decide you messed things up, just restore the backed-up configuration. NOTE that configuration backup files do not work across different releases of FreshTomato.
Q: What are some common device names used to represent router interfaces/components?
This can become a complex topic rather quickly. In general, there will be physical interfaces, such as “eth” and “wl”, and logical interfaces, like “br” and “vlan”. When using FreshTomato's VPN technologies, other interface names may appear. For example, a VPN interface might be named “tun11”, “tinc”, “ppp0”, or “wg0”.
Some structures, like additional SSIDs (Virtual Wireless LANs) will create sub-interfaces. Thus, it's common to see interfaces with periods in them. For example, wl0.2 would represent the second alias of the first WiFi radio.
Q: Where is the System log file located? How are logs stored?
A: * By default, the logfile is located in “/var/log/messages”.
If you've set a different path/filename under Custom Log File Path, “/var/log/messages” is still valid, but will be available in the form of a symbolic link. The only exception occurs if you configure remote (external) storage, that is, external syslog.
Unless some type of permanent storage is configured, “/var/log/messages” is stored in RAM. As a result, it will not survive a router reboot.1)
Q: What is BusyBox?
A: BusyBox provides the Linux commands used in FreshTomato.
(See https://busybox.net/)
BusyBox combines tiny versions of many common UNIX/Linux utilities into a single small executable. It provides minimal replacements for most utilities you find in GNU coreutils, util-linux, etcetera. Generally, BusyBox utilities have fewer options than their GNU equivalents. However, the options included provide the expected functionality and behave much like their GNU equivalents.
Read more at: https://www.commandlinux.com/man-page/man1/busybox.1.html
Q: The GUI is slow. Is this normal?
No. FreshTomato was specifically built for speed and simplicity. There are some very rare cases where the GUI might become slow/unresponsive. This is almost always related to browser issues.
To resolve these issues, please do the following:
If the GUI is completely unresponsive, log in via SSH (preferred) or telnet and check:
Q: What are the “Netgear R-series initial files”?
If you have the Original Netgear firmware installed, you must use an initial build to install FreshTomato the first time. The initial zip files contain firmware with a “.chk” extension that a Netgear router can use to install FreshTomato.
After you've installed an initial build, you can upgrade to any appropriate FreshTomato version you wish. Regular build zip files contain firmware files with a .trx extension. For details on how to flash Netgear routers, see the Installing FreshTomato HOWTO.
Support for modem dongles in FreshTomato is a somewhat complex topic. However, here is some information to help you get your USB modem running.
FreshTomato has functions to automate the process of installing/configuring 3G/4G/5G connected USB modems. However, those functions are limited. One limitation is that generally, the FreshTomato build on your router must contain the the Plug and Play VendorID (VID) and DeviceID (PID) of your modem. If it's not included, the modem may not be detected or configured correctly.
First, check the 3G/4G/5G compatibility page to see if FreshTomato supports your modem. When possible, that page will contain the modem's Vendor ID and Device ID(s).
Next, in FreshTomato's USB Support menu, verify that USB support is enabled. Then, enable the 3G/4G USB modem support option in that same menu.
If you don't know the make/model of your modem, connect it to your router and ensure USB Support and 3G/4G USB mode support are enabled. Then log on to FreshTomato and use the lsusb command to check if its output lists your modem's Vendor ID (make) and Product ID (model).
You should NOT enable a PIN on your modem's SIM card. Doing so may prevent it from working with FreshTomato.
Many USB modems have two modes of operation:
In modem mode, the device operates normally, and allows the host device to communicate with most modem functions.
In storage emulation mode, the modem emulates a storage device, like a CDROM or USB flash drive. This makes it easier to install drivers on PC operating systems, since drivers are right on the device.
However, FreshTomato already include USB modem drivers in the form of kernel modules. The modem, though, won't accept communication commands in storage mode. It must be switched to modem mode to accept commands.
Being in storage mode complicates things for earlier forks of Tomato. The modem would appear/behave like a storage device. In earlier forks or Tomato, the “media eject” command was used to force the device to switch to modem mode. However, it didn't always work.
Instead, FreshTomato includes switch4g switch4g . The switch4g Bash script switches modes on USB modems more reliably. If FreshTomato's kernel module contains the right VendorID and DeviceID for your modem, switch4g can usually issue the correct command to switch your modem into modem mode.
FreshTomato also uses the usb_modeswitch module for some functions. USB_modeswitch takes the important parameters from a configuration file and does all the initialization and other steps to set up communications.
For more advanced users, you can get detailed information about usb_modeswitch here: Draisberghof Software-usb_modeswitch