USB NAS and print server

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.

To add a printer on a Windows machine, you will have to add it MANUALLY (auto-detect of any kind will not work). Following copied in case those links die:


  • I installed the printer the same exact way I do most USB print servers
  • HOSTNAME/IP: Your_Router_IP (ex:, 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.

Wireless Bridge on DD-WRT

All my routers at home are either on the Tomato firmware or DD-WRT. I’ve set up wireless bridge many times but keep having to google it up as I keep forgetting the exact steps. I’m going to record it now for my reference. The following is taken from here, the V24 build instructions.

  1. Do a hard 30-30-30 reset. This is a must.
  2. Enter new admin username and pw when going to in a web browser. Note: Computer must be connected via wired connection. I did not set my computer to static ip.
  3. Wireless -> Basic Settings. Enter “client bridge” for wireless mode. Enter Mixed for wireless mode (same primary router). Enter the SSID of primary router. Match the channel and width of primary router. SAVE.
  4. Wireless -> Wireless Security. WPA2, select TKIP+AES. Enter key from primary router. SAVE.
  5. Setup -> Basic Setup. Connection type disabled, set STP disabled, ip address to be (or 3), mask, gateway (primary router), 0’s for dns, assign wan to switch. SAVE.
  6. Security -> Firewall. Type: Router.
  7. Setup -> Firewall. Uncheck all in “Block WAN Requests” except “Filter Multicast.” Disable SPI. SAVE.
  8. Administration. SAVE. REBOOT.

UPnP Media Server for PS3 and others: MediaTomb

I wanted to get XBMC on my brother’s PS3, but since he has a PS3 slim, the “otherOS” feature was not available. However, Sony’s got to allow streaming to it right? Yep, via the UPnP (Universal Plug and Play) protocol.

I used this guide to set up MediaTomb. On Ubuntu, basically,

 <pre class="src src-sh">sudo apt-get install mediatomb mediatomb-daemon

## don’t do sudo mediatomb since I will be utilizing daemon sudo emacs -q -nw /etc/mediatomb/config.xml ## change to yes ## uncomment or add this line ## Next, go to http://server.ip:49155/ and add the location of the media

My PS3 didn’t see mediatomb. After debugging with the help of the author over at #mediatomb over on freenode, I found out that the wireless bridge the PS3 was plugged to did not pass over all udp unicasts. There were communications between the two but the connection was not established because there were missing pieces.

In the process of debug, I used cidero and wireshark and tshark (via apt-get) per the faq. Basically, using cidero with my laptop plugged into the wireless bridge, I could see mediatomb. Using the web browser on the PS3 I could get to the mediatomb web ui. Plugging the PS3 onto the primary router, I see mediatomb. Then I used tshark to capture the connection information when the ps3 is searching for a media server and sent the capture to the author and he couldn’t help me any further since it was the setup’s fault. Haven’t found a way around this wireless bridge yet, although I posted in the DD-WRT forum.

softmod original xbox + xbmc

Now that I have a NAS set up as my file repository, I would like to access my media on the TV. I bought an original xbox (1) on craig’s list for $20, the xbox dvd remote on amazon for ~$6, an xbox usb connector on ebay for ~$2, and the original Mech Assault game at Game Stop for $2. I also needed a compatible usb drive, which I obtained by borrowing my sister’s Sandisk Cruzer 1gb flash drive.

Some easy things first. To get universal remote controls to work with the infrared (IR) dongle on the xbox, set the DVD player mode on the remote to RCA.

The goal is to get XBMC on it so I can stream media to it via my NAS (samba mount). Here is a quick outline. The directions I followed were these.

  1. Make sure the Dashboard version on the xbox is version 5960.
  2. Download the Action Replay software and Softmod Installer Deluxe or SID (including game saves, if not will have to get elsewhere) off bittorrent.
  3. Follow these steps to get the gamesaves and installer onto the compatible usb drive. This part took me the longest as I didn’t follow the directions fully (the usbview.exe, changing the driver, etc.). Once done, I can drag the gamesaves over. Also note that the USB drive is compatible if the xbox says it will erase it. Otherwise, it is not. All my USB drives were not compatible until I borrowed my sister’s.
  4. Plug in usb with game save to xbox along and copy the gamesaves to the hard drive. I couldn’t see copy, but look at link to find out how.
  5. Insert the Mech Assault game. In Campaign, load the Install Linux gamesave.
  6. Backup some stuff (MS Backup + Eeprom), then install softmod. Restart. Plug in ethernet (from router for my case).
  7. Turn off static ip, restart.
  8. FTP to the xbox (find out ip through xbox settings). Besides the drive folders, I couldn’t see any files. NOTE: On some xbox’s, I have trouble transferring files. In that case, I place XBMC and other apps in a dvd with BoXplorer, and transfer the files via SID, BoXplorer, or XBMC.
  9. Download T3CH XBMC. I downloaded the SVN build; be sure to read the README. Place the XBMC folder into a folder called APPS. Drag APPS over to E:\.
  10. To get the XBMC dashboard as default, followed these instructions. For EvoX dashboard (what we have), I needed to rename Team XBMC Shortcut.xbe to evoxdash.xbe and created a evoxdash.cfg with E:\AppsXBMCdefault.xbe inside. I placed these to files in C:, but it didn’t work. Rename E:\evoxdash.xbe to E:\evoxdash_org.xbe. Placed the two files in E:\ and things worked. Note that I messed this part up once, and I got a code 13 error. I had to insert the Mech Assault disc again and reinstalled the softmod. UPDATE: In the XBMC zip folder, there is a tools directory. Rename the xbe and cfg file in there to evoxdash.xbe and cfg and place them on the xbox’s E drive.

After adding a samba share, follow these instructions to get it to save the username and password.

In case anyone is interested, the xbox in my room is connected via ethernet (since my router is in the room). The xbox outside is connected to a router (wireless bridge). The xbox’s suffice my family for now since we don’t do HD content (yet) and the TV’s are old (RCA cables).

Tomato on Asus RT-N16 router

Recently I’ve been playing with DD-WRT as my firmware of choice for my main router at home and the one I use as a wireless bridge. I recently purchased an Asus RT-N16 for a variety of reasons:

  1. Gigabit ethernet,
  2. DD-WRT,
  3. 2 usb ports (for NAS and printers),
  4. Wireless N, and
  5. Great with bittorrent.

Reason 1 was the real reason I wanted a new router since I have a NAS connected to it via ethernet, and I plan on getting an HTPC soon (connected either wirelessly or through ethernet) and/or some net top boxes that can connect to the NAS (I’m tired of copying things to USB). Reason 3 wasn’t too much of a concern anymore since I recently bought an Acer NAS with Ubuntu server loaded on (this derserves its own post). I’ve been hearing this thing called tomato that is supposedly even better than DD-WRT. Been wanting to try it, especially since it is supposed to work well on the Asus router, especially to get the USB support (don’t think USB is supported in DD-WRT, but it’s a random guess since DD-WRT is great and has a large community supporting it). I decided to load this (currently beta) mod of Tomato (don’t use this since it does not support the NT-R16). Had trouble loading it after flashing the router to DD-WRT. Turns out I need an exact version of DD-WRT loaded first. Follow this guide to get it going.

Note: I had a problem getting wireless working with my Macbook. Things worked when I flashed the openvpn version of tomato with TKIP/AES encryption in WPA/WPA2 (think this part is the answer).

Also: To do a factory reset (erase NVRAM?) on the Asus, all I have to do is unplug router, press on WPS button, plug router, and release WPS button. Don’t think I have to do the 30-30-30 reset (don’t even know if that works on here).

repeater bridge with DD-WRT (Linksys WRT160Nv3)

My Trendnet 652BRP primary router (DD-WRT) with a Linksys WRT160Nv3 (DD-WRT) as a wireless bridge did not work too well (setup here). Sometimes my laptop disconnects to the wireless network and I have to unplug/re-plug the primary router to be able to reconnect. This occurs fairly often (2x a week?). I don’t know what the deal was, so I decided to swap the routers as primary and secondary. In addition, I set the Trendnet router as a repeater bridge as opposed to my previous setup. Instructions can be found here. The instructions worked well, but I struggled with a few points:

  1. After swapping the primary router, I had to call Verizon to renew my IP. Otherwise, the internet will not work. Luckily their customer service is 24/7.
  2. Always hit Save when setting up the secondary router and hit Apply at the very end.
  3. I originally had the SSID of secondary router’s virtual interface to be the same as that of the primary’s SSID, but things did not work. I changed the name, but after things work, the virtual interface of the secondary router had the same SSID as the primary’s. Don’t know whether they should match or not, so try both.
  4. Make sure you can connect to the primary router being connected to the secondary router. This means the network is set up almost correct. Internet may not work yet. I unplugged and replugged the secondary router and all is well.

As a side note, I set up the following for my primary router:

  1. Static IP by Mac Address/hostname for my primary computer.
  2. set this up to update IP.
  3. Forward the necessary ports to the static IP.

Update 4/26/2010

Repeater bridge is too slow since you can only use half the bandwidth. Changed the Trendnet to a client bridge (wireless bridge) with these instructions.

Linksys WRT160Nv3 with DD-WRT as wireless bridge

I recently bought a refurbished linksys wrt160n-rm from amazon for $31. I ordered it before getting DD-WRT working on my trendnet router. I didn’t want to hassle with returning it, so I decided to turn it into a wireless bridge, something I wanted to do for a while. With the refurbished router, I had to insert the refurbished instructions cd in order to get the router working. Once the linksys firmware is on, I opted to get dd-wrt working on it. I followed the instructions here, but couldn’t get things working because the 30-30-30 reset made the router not work; I had to unplug and plug the power back in to get an ip again. Also, the firmware on the page at the time did not work when i tried to upgrade without the 30-30-30 reset. Googled a bit, and postings here mentioned that they got dd-wrt working without the 30-30-30 reset and with an earlier build. I did so, and got dd-wrt working. Note that I also checked this page to confirm that the other build was required first. Once this version was installed, I upgraded to this version. To get it as a wireless bridge, I followed the instructions here. Voila, I now have the wireless bridge in my brother’s room with his computer and our network printer connected. Things are sweet! In the future, I would probably have a router in the living room connected via a network cable to act as another hotspot for my wireless network or something.

Trendnet TEW-652BRP with DD-WRT firmware

So I own a relatively inexpensive trendnet router (on sale ~ $25) for a while now, and I’ve been trying to get DD-WRT working with it since having it. This site says it is supported, but I couldn’t find a firmware available until now. This post (page 16) has a link to this site that host some binary firmwares. Using the web interface I flashed the firmware successfully and now has a powerful router with DD-WRT. Cool! I use the dd-wrt to assign my laptop a static ip for port forwarding, among other things.