jffs [FreshTomato Wiki]

Site Tools


Broadcom routers come with two important storage type:
FLASH - This is where your tomato image is uploaded and executed. At boot the images is loaded into a so called squash-filesystem which mean it's executed read-only. Flash size is measured in MB.
NVRAM - Is where the config is stored, so while loading from the squash-filesystem parameters under the form of variables are fetched from the NVRAM. NVRAM size is relatively small and is measured in KB.
Since modern routers have a relatively large FLASH memory available tomato can “mount” the unused storage and make it available to the OS for normal file storage operations. This function is called JFFS.
The figures below are an example and don't scale. they will also vary based on your tomato version and especially your HW capabilities. Refer to the HW compatibility page to more information.

To enable JFFS select the appropriate flag as per image below
Executed when mounted can be used to run a script or similar just after the partition becomes available to tomato.
Total / Free Size displays the storage size/usage. The size is not configurable.
Format / Erase: The very first time you enable JFFS you must format the partition. Once done the (not mounted) should turn into (mounted)
Once JFFS is mounted it can be accessed in the filesystem under the root folder /jffs

NOTE: You will not be able to upgrade FreshTomato if a JFFS partition is mounted, if you do disable JFFS and upgrade FreshTomato you'll lose the content so a backup/restore operation is needed.
Very important: Flash storage is not meant for frequent write operations hence you must avoid constant writes into it e.g. storing the logs in JFFS is a really bad idea at it will shorten your router life. Limitation is the writes but not the reads so e.g. an entware installation would be totally ok instead. Beaware of your JFFS, it should be used only if no other storage like USB or CIFS is available.

jffs.txt · Last modified: 2020/07/23 00:21 by doglan