I assume you have a compatible router with usb ports with the Teddy Bear mod Tomato firmware installed.
These instructions show that the USB NAS portion is quite easy. Once the hard drives are connected, they are automatically mounted in the router’s Linux OS. A computer on the same network can connect to the router’s hostname/ip via the samba protocol or ftp (if enabled).
Printserver was less obvious since I wasn’t familiar with it. Tomato uses p910nd printer daemon. By default, only 1 instance is running on Tomato on port 9100. If you plan on connecting multiple printers (eg, adding through a USB hub), then you will need to run additional instances of p910nd in the startup script of the Tomato firmware:
<pre class="src src-sh">/usr/sbin/p910nd -b -f /dev/usb/lp1 1
Continue to add 2, 3, …, if more printers are required. Reboot the router, and another instance is added to port 9101, etc. Note: the ordering is based on the proximity of the USB ports. Check the USB page on the router config site to determine the ordering.
HOW TO SET UP A PRINTER WITH TOMATO
- I installed the printer the same exact way I do most USB print servers
- GO TO ADD PRINTER
- ADD A NETWORK PRINTER
- SKIP AUTO DETECTION AND DO IT MANUALLY
- ADD A PRINTER USING A TCP/IP ADDRESS…
- DEVICE TYPE: TCP/IP DEVICE
- HOSTNAME/IP: Your_Router_IP (ex: 192.168.1.1, mine is different), PORT NAME: let it auto-populate
- UNCHECK the “Query the printer…”
- Detection should fail…
- On bottom, DEVICE TYPE click on CUSTOM, then SETTINGS
- Leave all default ports and settings and click OKAY
- Finish everything and print a test page.
On my Ubuntu, searching the printer on the router’s hostname/ip works. However, on all machines, you will have to select the type of printer manually.