Unfortunately, the official Tomato does not include USB support, and for that only reason I was not using it on my Asus WL-520gu that has the USB port. Otherwise I love Tomato :smile:! The only mod I found with USB was TrzepakoTomato - but it is still at version 21, does not include printer support and Ext3 filesystem support, and still has some modules I have no use for, leaving no JFFS space. So I decided to go ahead and make a new mod to suit my needs. I would like to thank other open source developers who made their code available to the community. This mod includes various patches and code fragments from Oleg's Asus firmware, wl500g.googlecode.com project (backport of USB 2.0 driver from kernel 2.6, and many other patches and fixes), OpenWRT and DD-WRT projects. Releases, detailed description of various editions available, and useful information are now tracked at the Tomato USB web site. NOTE: If you're looking for Tomato modification with USB support for newer routers - Asus , RT-N12, Linksys WRT160Nv3, Netgear WNR3500L etc - please take a look at the "Tomato based on kernel 2.6" thread. Here's the list of changes to the official Tomato ND: Support for USB 1.1 (OHCI and UHCI) and USB 2.0, configurable via Tomato GUI. USB storage (Ext2/Ext3, FAT/FAT32 and FUSE filesystems) and USB printing support. Starting from v36, full read/write NTFS support is included in Extras build, and can be added to other builds by installing Optware ntfs-3g package. Auto-mounting for USB drives (added in v05). When this feature is activated in the GUI, and USB drive is plugged in, all mountable partitions will be automatically mounted to a directory under /mnt. If you want to override default mount point, create /etc/fstab file and specify your desired mount points there. Save it to nvram: "nvram setfile2nvram /etc/fstab", so it will survive restarts. This file will be used during auto-mount, or when you execute "mount -a" command. You can also mount your partition manually in the Init, Wanup, or Hotplug script, i.e.: mount -o noatime,nodev /dev/discs/disc0/part1 /opt. If you mount the partition manually, it will not be re-mounted to a default mount point. Support for /ets/fstab, and mounting by label and UUID. Network File Sharing using built-in Samba server (kernel 2.4-based builds include Samba 2.0.10, builds based on kernel 2.6 include Samba 3). Please check this post if you're experiencing problems copying files to Samba shares, and this post if you have issues with authenticated access to Samba shares. Printer server (p910nd) is included and started automatically if you enable printing support. Bidirectional copying can be disabled via GUI if it causes problems with your printer. Only one instance of printer server is started automatically, and listens on port 9100. If you need to support more than 1 printer, add commands to run additional instances of p910nd to your startup script. Follow these directions to set up your printer in Windows. Built-in FTP server daemon (vsftpd) with GUI. USB Hotplug script - it can be useful for configuring USB devices after connecting them to the router or on boot-up, for example loading firmware into HP1018/1020 or other similar HP printers (there're some posts on page 11 of this thread and here with more details about HP1018 printer. You can download a firmware file for your HP printer from here). scsi-stop and scsi-start utilities to spin down and restart some USB HDDs (see general description here and Tomato working script here). Linux kernel is updated to the latest in 2.4.x series - 2.4.37. Builds based on kernel 2.6 use kernel 22.214.171.124. New toolchain to build the firmware: binutils 2.19.1, gcc 3.4.6 (for kernel 2.4), gcc 4.1.2 (for userspace apps and kernel 2.6), uClibc 0.9.30.1. Added Wireless-N mode support (single 2.4GHz band only for now). Web Usage Monitoring (web sites and searches) based on the kernel module from Gargoyle project. Fixed slow running clock problem on Asus WL-520GU (This fix is included into official Tomato releases starting from Tomato 1.24. In build 37 or later of this mod one extra reboot after flashing is no longer needed for this fix to take an effect). Support for Asus WL500W and D-Link DIR-320. Fixed WLAN LED on Asus WL-520GU, SES button and WLAN LED on Asus WL500gP v1, WL500gP v2 and Buffalo WBR2-G54 (these fixes are included into official Tomato releases starting from Tomato 1.24). Added CGI scripts support to HTTP daemon - you can place your CGI scripts into "/www/ext/cgi-bin" folder, and they will be executed when you access them via http://<router_ip>/ext/cgi-bin/my_script_name. Added Web GUI page to execute system shell commands. Included SpeedMod by Rodney Chua. Upgraded Broadcom Wireless driver to version 126.96.36.199 (in kernel 2.4 builds) or 188.8.131.52 (kernel 2.6 builds). Use kernel driver for PPTP and L2TP connections to improve speed and reduce CPU load, replaced pptp-client with accel-pptp. Automatically load network routing table supplied via DHCP from ISP. Additional GUI settings for MiniUPnPd daemon with NAT-PMP support. UPnP is disabled by default. CIFS in kernel 2.4 builds is updated to version 1.49 backported from 2.6 kernel which supports legacy servers and NAS disks. Added new "Regulatory Mode" setting (off|g|h), "Country/Region" setting and "Bluetooth Coexistence" mode to "Advanced -> Wireless". Added wireless auto channel selection. Added display of current wireless link rates. Changed to use passive mode for wireless scan (generally should pick up more APs). Replaced JFFS2 filesystem driver by JFFS ver 1.3 from ray123 to provide more available JFFS space (in kernel 2.4 based builds). Replaced ramfs by tmpfs. Replaced the Linksys igmp daemon with the igmpproxy. Updated software: iptables 1.3.8, MiniUPnPd 1.4 (20100511), Dnsmasq 2.55, Busybox 1.16.1, bridge-utils 1.0.6, pppd 2.4.5, GNU Zebra 0.95. Please check this post for detailed howtos on installing and configuring Tomato. With USB enabled you can install Optware and additional software packages. Follow instructions in this post, and in DD-WRT Optware Wiki to install Optware (but do not modify search PATH or LD_LIBRARY_PATH as dd-wrt wiki says). Standard builds of this firmware do not include tools to partition USB drives, or to format them using Ext2/Ext3 Linux native filesystems. To do that you either need a Linux box, or you can use the set of utilities prepared by ray123 and posted here. Starting from v 20, the set of Ext2/Ext3 filesystem utilities is also included into the "Extras" build. You may also want to check out the custom "Tomato USB" theme made by another forum member Absolon specifically for the USB mod (this theme is included into the "Extras" build starting from v21), and Asus theme made by dwoz. This mod is for ND version only! I do not believe there are many routers with USB that can't run ND anyway. To check if your router can run ND build, execute the "nvram get wl0_corerev" command (without quotes). If it shows 5 or more, you should be able to use ND (if 9 or more - you need to use ND). If you enjoy this mod, and would like to thank me for all the time I spent working on it, you can make a PayPal donation: Thanks to all who donated - your support and appreciation means a lot to me! This mod only includes support for USB storage and printing, and some general improvements. If anyone else is willing to implement support for serial devices, webcams and USB modems, booting from USB drives etc etc, test and troubleshoot the changes, and make sure the image still fits in 4MB flash - you are welcome to do that. It could be a separate mod, or we can just release it as an update to this one after the new stuff is tested. Unfortunately I don't have neither time nor motivation to work on anything else other than the storage and printing support. Currently there's one package made by ray123 for using a webcam on a Tomato USB router. I have not tried to use it, so could not say how good it works. Read ray123's post and README for details.