Extending Tomato with Optware

I had waxed eloquent about the flexibility, freedom and capabilities extended by open source tools in general, and the Tomato USB in particular. Little did I know, that this was just the tip of the iceberg of capabilities offered by the third party firmware on my Netgear router.

The big extension to the core capabilities offered by the firmware is available via the installation of Optware. At its core, Optware is an advanced package manager, built for distribution of software packages across a number of platforms, including the TomatoUSB router firmware.

Optware comes with a variety of packages compiled and available in it's repository. This repository extends the capabilities of the router firmware, from their stripped down, small-footprint cousins to the full featured Linux box tools.

Tomato has inbuilt support for Optware. But it needed a bunch of work, to prepare the setup for Optware. In particular there were two things that had to be done:

  • Format the connected storage in EXT3. My terabyte RAID had been originally formatted in NTFS. While TomatoUSB has support for NTFS, but it is slow and painful, and fundamentally missing capabilities. Not something that lends itself for Optware.
  • Figure out where /opt is going to mounted.

There is no easy way to convert NTFS to EXT3 - other that the slow and methodical approach. Take files off the NTFS file system, format the disk as EXT3, and copy the files back. There are several tutorials out there, like this one - the only tweak was that I ended up using the mkfs.ext3 script available on the router to format the disk.

An aside, the cheap Terabyte RAID survived and is thriving through this all - including the EXT3 formatted drive.

Now mounting storage on /opt where Optware will be installed, seemed tricky at first, but ended up being pretty simple. The reason it seemed tricky was that I created only one partition on the storage when I formatted it as EXT3. My worry was that I'd have to re-size the partition and add a new one, which could then be mounted on /opt.

Turns out, you can mount the same device on multiple mount points. And given that I am already automounting the USB device, I figured all I had to do was to mount a sub-folder on /opt. Adding the following in the “Run after mounting” script-box, did the trick.

if [ -d /mnt/Teranarchy/optware ]; then mount -o bind /mnt/Teranarchy/optware /opt fi

Once I had space available on /opt - installing Optware is simple. As simple as running the following on a shell after logging in via Telnet or SSH.

wget http://tomatousb.org/local--files/tut:optware-installation/optware-install.sh -O - | tr -d '\r' > /tmp/optware-install.sh chmod +x /tmp/optware-install.sh sh /tmp/optware-install.sh

That is it. Optware does a great job of obtaining and installing all the packages. And because Tomato already has the correct folders in $PATH variables, all the tools and capabilities are available instantly from any shell.

Now that I have Optware, it is time to start doing something more interesting. Like installing a VPN on the router. Coming up next.

January 19, 2012

The Human Factory

Ira Glass has the most absorbing tales. This one is no different, and it is about a topic that I am familiar with. The whole show is embedded below, and if that does not work - the link to the original story on This American Life is here.

Favorite quote from the show: Shenzen looks like Bladerunner threw up on itself.

Over a period of 35 minutes, the narrative evolves slowly, from a funny self-effacing confession to a pondering, visceral narrative designed, not as much to shock, as to prod new life into a story that has almost nothing new to give. To round it all up, Act II of the show is typical NPR - the other side of the story - including this opinion arguing the benefits of sweatshops.

Finally, it is easy to see this as something specific to Apple, while it is not. Having Apple on the headline does bring in the eye-balls, but the story is no different for Samsung, or any of the other makers of electronics. Once again, it is the Apple side of the camp, that put it together in an easy to use package.

The whole story is an hour long - but well worth it.

January 16, 2012

Android design standards - Finally!

Google just announced design standards for applications on Android. Having three different Android devices at home, I have first hand experience of the UI fragmentation on the platform. However, Google needs to go beyond Android for design unification. Google is broader than mobile, and having design consistency is going to be crucial for a standard user experience across all Google properties.

Consider the Gmail app, and in particular the menu item to “Report Spam”, for example. I use three different flavors of GMail, and the design across the three avenues is not only non-intuitive, but inconsistent. Even with an abundance of access, I have yet to develop the sort of muscle memory that I would associate with the typical Google user interface.

On the desktop, it is part of a grouped threesome, and looks like a happy stop sign. And it's relative position remains the same whether I am in the inbox view or the message view. That feels like a UI that I could get used to.

On my Galaxy SII, the SPAM icon looks like an alien, with a varying location on the menu. When I select a thread from my inbox, it shows up as an option in first menu page. When I am within an email, however, it takes two menu clicks to get to the option.

Finally on my Thrive, it is an option available only on the overflow menu. While that might say a lot about how good Google thinks it's filters are, it still makes for a very annoying user experience.

Three form factors, and three different ways of thinking about Spam. It is time Google thought about design standards for across it's solutions, and not just for a platform.

January 13, 2012

Dynamic DNS on my Tomato Router

Here is the problem statement - now that I had my router running a custom TomatoUSB build, I wanted to open it up to the Internet so that I could access my music and data from anywhere.

The first step though, was to establish a way to address my router via the Internet. Now, I get a dynamic IP address from my ISP; so I had to find a way to keep track of the latest address. The answer, of course, was to use a dynamic DNS (DDNS) solution, of which there are dozens available. But as it turned out, my case was more complicated than that.

I chose the FreeDNS service offered by afraid.org. Tomato firmware has native support for their dynamic DNS service built in. But more importantly the tagline on their website read “Why is it free? It's quite simple. We wanted a challenge... that's it.”.

To set my site up, I had to delegate the nameserver function for my domain to my hosting provider. My initial idea was to delegate a subdomain to the FreeDNS service, and then update the IP address directly from my router. Unfortunately my hosting provider did not allow delegation of sub-domains to a different DNS provider. In other words, they did not allow NS records to be created for their inconsequential customers like me. They only allowed A, TXT or CNAME records. CNAME records - that gave me a way out.

I created a sub-domain on one of the free domains provided by the FreeDNS service - in my case it was mooo.com. The name of the sub-domain did not really matter, any available one worked just fine. Then I set up my Tomato router to update the IP address of this sub-domain automatically.

Finally, I set-up a CNAME pointing a sub-domain from anarchius.org to the newly created sub-domain on mooo.com. Presto - sub-domain.anarchius.org now resolved to my WAN IP address. Here is how my DNS records look now:

There you are, Dynamic DNS on my Tomato router up and running, linked directly to my own domain. Bring on the possibilities.

January 12, 2012

Camera speed on Android

Check out the photograph above. This was taken while traveling in a car. Of particular focus are the lines on the road - they are actually straight, but show up as curved in the photograph.

When cameras were first added to cell phones, they were small, slow and blurry. The sensors were tiny, the lenses were basically plastic and the processors were slow. While the megapixel count has gone up, the optics have gotten better, the biggest bottleneck still remains the processing speed.

At least the Android platform has taken an interesting approach to overcoming this processing speed bottleneck. It seems the sensor is read in sequence, line by line, starting from the top. The advantage with the approach is obvious - the camera can process one line at a time, keeping the picture sharp and well processed.

The side effect is the effect showing up in the picture above. The straight lines on the road, show up as curved because the car moved in the time between when the first line of the sensor was read and the last.

December 26, 2011

Impulse Purchase

At long last, my Nokia 5800 has been retired from active service.

It has been replaced by my new Samsung Galaxy SII. And all this happened within a matter of a few hours.

I had been eyeing an Android phone for a while now. My first choice would have been the vanilla Nexus series - but they tend to be far too pricey and missing carrier specific frequency capabilities on their wireless chipsets. The next choice was the Galaxy series from Samsung. And that is when I saw this deal from RadioShack:

While this was about $50 more than the Black Friday deal from Radioshack, it was still a full $100 less than the discounted price on AT&T's website. And it hit my key checklist items.

  • A tried and tested phone chassis - the Galaxy S II is the second in the highly successful Galaxy series.
  • Minimal UI customization - unlike the HTC Sense UI, TouchWiz UI is relatively lightweight and optimized for speed.
  • A known upgrade path to Ice Cream Sandwich.
  • No known carrier hindrances to phone capabilities.
  • Speed and responsiveness.

The Galaxy SII hit all points on the checklist - making the decision to switch surprisingly quick and painless. And RadioShack was not that bad an experience, as far as the tactical switch went. On a side note, I need to remind myself that RadioShack is probably a better option for buying electronics when I want something outside the standard mainstream products.

RIP: my ageing Nokia 5800 - you were a trailblazer, and were better than you had any reason to be. Yet, the trail was left cold after you, for no fault of yours. You will be missed.

December 21, 2011

TomatoUSB on Netgear 3500L

Upgrading a Netgear 3500L to the latest TomatoUSB build. This worked for me as of December 01, 2011 - with no guarantees that will work for you or at any other time.

Required ingredients:

  • The trailed DD-WRT build to perform the first upgrade. Filename: dd-wrt.v24-15704_NEWD-2_K2.6_mini-WNR3500L.chk
  • The correct TomatoUSB version - Build 54, Kernel 2.6, CPU MIPSR2 and feature-set Extras or Ext. This is what I used, but you might check the latest version here. Filename: tomato-K26USB-1.28.9054MIPSR2-beta-Ext.rar
  • WinRAR or 7-zip or a related utility to unzip the RAR file.
  • Some timer - either an app on your phone or a watch with a seconds hand.
  • A pushpin of some sort.
  • A printout of a document that looks something like this.
  • A laptop or desktop of some kind that has a working modern browser.

Procedure:

  • Ensure your firmware files are identified, available and ready to go. See above for the two files you need to keep available. Use WinRAR or 7-Zip to unzip the .rar file. You will get a .trx file along with a changelog. Rename the .trx extension to .bin.
  • Connect your computer to the router using an Ethernet cable, if you do not have extra cords, use the one which used to connect the router to the external WAN. In either case, ensure the External WAN is disconnected.
  • Set your computer to a static IP of 192.168.1.8 (Ensure you are doing this to the wired LAN connection)
  • Perform a 30-30-30 reset using your push-pin on the depressed reset button on the back of the router. You might want to use the timer to ensure you are actually keeping it depressed for 30 seconds.
  • Wait for the router to boot back up. Using your browser, head over to http://192.168.1.1, and use your default credentials login: admin and password: password to log in.
  • Using the Upgrade option on the Netgear admin menu, use the .chk file you downloaded from the DD-WRT site. Note you are not using the bigger TomatoUSB firmware yet.
  • Wait, no seriously wait. Wait till the lights get back to normal. Wait. Wait to see that you can access the new admin interface.
  • Perform the 30-30-30 reset. Wait for the router to come back up.
  • Now head back over to http://192.168.1.1. You should be automatically logged in, but instead will be asked to set an admin account with password. You can set this to be whatever you want, your firmware is just about to be flashed.
  • Go to the Administration tab and then Firmware Upgrade sub-tab. Select the TomatoUSB file that you extracted from the RAR archive and renamed to a .bin file.
  • Again wait. For all the frenzy to subside. After you can see the router administration page again, wait some more.
  • Perform another 30-30-30 reset. Wait for the router to come back up.
  • Again head back over to http://192.168.1.1. Login using the Tomato default credentials: no login required and password: admin
  • Set up basic wireless services, located under. Disconnect the Ethernet cord, reconnect the router to the WAN network, get-up sit on the couch and continue configuring your brand new router firmware.
  • And yes, keep away the push-pin, the timer and set your wired connection back to dynamic IP.

That was it, and if you have been following along, my Toshiba thrive connects beautifully to the new router via SMB and I can now access all the media I have on my RAID, wirelessly over the home WiFi network. Cloud anyone?

Freedom to hack: 1 - Closed systems:0.

December 04, 2011

Popular Posts

Subscribe / Share


Subscribe via email:

 Subscribe in a reader

 Follow me on Twitter

Blog Archive


Blog Labels

2.0 (8) 4chan (1) 5800 (12) accounting (1) activities (1) advertising (1) airlines (1) anarchius.org (4) android (11) animation (2) apple (4) april fools (1) article (13) astronomy (1) athiesm (1) atom (2) awesome (1) BBC (1) beta (2) biology (1) blender (1) blog (28) books (2) brain (1) BSG (1) business (7) camera (1) catb (2) chemistry (1) china (1) cloud (1) coca-cola (1) code (2) communication (8) cool (9) cosmology (1) creative (4) cricket (1) crowd sourced (2) currency (1) data (1) democracy (1) DIY (2) DMCA (1) DRM (1) easter egg (1) ebooks (1) economics (3) education (1) emergence (3) english (3) evolution (1) exercise (1) facebook (1) fail (1) fair use (1) fcc (2) feedburner (3) fffuuu (5) fiction (1) fifa (1) finance (1) firmware (3) fitbit (1) fitness (1) flash (1) flight (1) football (1) foss (6) free (1) freedom (2) funny (13) futuristic (1) gadgets (30) Galaxy SII (2) games (9) GDesk (2) gif (1) gimp (4) gmail (3) google (17) groupon (2) guitar (2) hack (1) history (5) hobbies (4) how-to (2) humor (1) iaudio (1) ideas (13) IKEA (1) India (1) infographic (8) information (5) informative (3) inkscape (1) input (1) interesting (8) internet (5) iphone (1) japan (1) kindle (3) knowledge (4) language (3) leet (1) lightning (1) links (13) Linux (5) LOST (2) LOTR (1) luddite (1) metal (1) microsoft (4) milwaukee (1) MIT (1) mobile (15) money (1) moot (1) morality (2) movies (5) MPAA (1) music (15) NASA (1) net neutrality (3) netflix (1) Netgear 3500L (4) news (18) nexus one (2) nokia (13) NPR (9) nuclear (1) operating systems (1) opinion (29) p2p (3) philosophy (19) photography (6) physics (3) physiology (1) pipes (3) piracy (1) prank (1) presentation (1) privacy (3) programming (3) psychology (8) puzzles (1) quiz (1) rage comic (5) ramblings (21) rants (14) review (11) RIAA (1) robots (1) rock (1) RPG (1) rss (3) RTS (1) Samsung (1) sceptic (1) school (1) science (10) search (3) security (6) short story (1) shorts (1) simplicity (1) slashdot (2) SMB (1) snow (1) social (6) society (9) spam (1) spelling (1) spirituality (2) startup (1) statistics (1) storage (1) strategy (1) string theory (1) sustainability (1) swing (1) swype (2) symbol (1) syndication (1) tablet (3) technology (18) TED (10) television (1) template (1) time travel (2) tips and tricks (3) TomatoUSB (3) tools (6) toshiba thrive (5) travel (2) travelogue (1) triz (1) troll (1) troubleshooting (4) tutorial (5) TV (2) ugly (1) upgrade (6) useful (2) user interface (12) vacation (1) verizon (1) video (6) volunteering (1) wave (2) webcomics (9) webseries (1) website (1) wifi (1) wii (2) wiki (1) windows (1) wolfram alpha (2) world-cup (1) worldcup (1) www (1) x5 (1) xobni (1) yahoo (2) youtube (1) yro (3) ze frank (1)


Miscellaneous

 

Bloggers' Rights at EFF

 

Support CC

 

No Connection, Unpaid, My Own Opinions