Ext-ROOter

The Ext-ROOter project is a way to use a USB memory stick to extend the flash memory of a router. This will allow the user to add more features to the router than can be normally done.

Ext-ROOter includes its own repository of packages that can be installed to add these new features. This gets around the restrictions imposed by OpenWRT on adding packages to older builds.

Hardware

To utilize the Ext-ROOter image and repository you will need the following hardware.

·         a supported router

·         a USB memory stick of 4GB or larger

·         a USB Hub, either powered or unpowered depending on the application

If you intend to use multiple USB memory sticks, USB modems or USB hard drives you may find that the router cannot supply enough power when using an unpowered USB Hub. A powered Hub should be used if you think there may be power issues from the router.

The actual space required on the USB memory stick by Ext-ROOter is about 1GB. The extra space on the stick is used as storage for the various added features and can be accessed from the Network by adding the Samba File Sharing feature.

If you plan to download files or torrents then this extra space can be used for that.

Flashing the Image

Download the correct Ext-ROOter image file for your router and flash it exactly the same way you would any other ROOter image.

If you are upgrading over an existing OpenWRT or ROOter image then be sure to uncheck the Keep Settings box before flashing to the new image. This is important.

After flashing the new image you can go to the web interface and set the password and enable the wifi, if so desired.

The Ext-ROOter image is a basic OpenWRT image with support added for USB storage. It has no features in it, not even the basic ROOter modem support. All features must be added later.

  Formatting the USB Memory Stick

Ext-ROOter uses a USB memory stick to expand the router’s flash memory. In order to do this the stick must be formatted in a special way.

The program used to do this is called MiniTool Partition Wizard and it can be downloaded for free from

http://download.cnet.com/MiniTool-Partition-Wizard-Free/3000-2094_4-10962200.html

I have tried several other partitioning programs and this one is the only one that has all the features we require.

Install the program according to the directions.

Plug in your USB memory stick to your computer and run MiniTool Partition Wizard. You will see something like the following.

Make sure you do your operations on the USB memory stick and not some other drive.

Click on the memory stick to highlight it as so.

  Next, click on Delete Partition in the menu on the left side.

Then, in the same menu, select Create Partition.

  A popup box will appear to allow you to specify the size and type of the partition.

The critical values here are to Create As : Primary, File System : FAT32 and Partition Size : 500 MB.

Click on OK to create the partition.

  Next, click on the Unallocated part of the USB memory stick to highlight it.

In the left side menu click on Create Partition again.

A popup box will appear telling you that Windows will not be able to access this partition. Click on Yes to continue.


  The popup box will again appear to allow you to specify the size and type of the partition.

The critical values here are to Create As : Primary, File System : EXT4 and Partition Size : 500 MB.

Click on OK to create the partition.

  Once again, click on the Unallocated section of the USB memory stick to highlight it.

  Click on Create Partition in the left side menu.

A popup box will appear telling you that Windows will not be able to access this partition. Click on Yes to continue.


  The popup box will again appear to allow you to specify the size and type of the partition.

The critical values here are to Create As : Primary, File System : NTFS. The Partition Size is the remaining space on the stick.

If you so desire, you can format this partition as something other than NTFS. In many uses it may be better formatted as FAT32, EXT3 or EXT4. The choice is yours as long as you create the partition as Primary. This partition is used as extra storage space for some of the new features and is not a critical part of Ext-ROOter.

Click on OK to create the partition.

  To this point we have not actually done anything to the USB memory stick but have merely told the program what we wish to do. You can see the list of actions we wish to have taken by scrolling down the left side menu to the bottom.

 

To cause these actions to take place, click on the Apply button at the top.


  You will receive a warning about turning off power saving before the actions take place. Click on Yes to continue.

A progress box will appear and the actions will take place to create the 3 partitions on the USB memory stick.

When this is finished the memory stick is ready for use in Ext-ROOter. Eject it from the computer.

Loading the Repository

With the USB memory stick properly partitioned and formatted we can place the Ext-ROOter repository on it.

This repository contains all the OpenWRT packages required to add the new features to the router. They are stored on the first partition (FAT32) of the USB memory stick and Ext-ROOter installs them as requested.

Since Windows can only see the first partition on the USB memory stick there is no confusion about where the repository files/folders must go.

Download the Ext-ROOter repository file (repository-ar71.zip ).

Plug in the special USB memory stick into your computer and open it in Windows Explorer. Unzip the repository file and copy all the files onto the USB memory stick. When you are finished you will have 6 folders and 1 file on the memory stick.

Eject the stick from your computer after the copy is done.

Checking the USB Hub

Since most users will be using a USB Hub with Ext-ROOter we must determine the number associated with each USB port on the Hub.

This is critical because the USB memory stick must be plugged into the lowest numbered port on the Hub in order to function correctly after a router reboot.

This is done using the Ext-ROOter flashed router right after you have flashed it. I will show how this is done using an unpowered 3 port Hub and a powered 7 port Hub.

Plug the Hub into the router and power it up.

Go to the router’s web interface (default is 192.168.1.1) and select Status->System Log.

Take any USB memory stick, even the specially formatted Ext-ROOter one, and plug it into one of the ports on the Hub. Wait a few seconds and refresh the System Log page.

For the unpowered 3 port Hub in the top port we see this.

It shows us usb 1-1.1as the port the memory stick is plugged into. The 1-1 part identifies the USB port of the router that the Hub is plugged into, in this case port 1.

The .1 part says that this is port 1 on the Hub.

  Plugging in the memory stick into the second port on the Hub, waiting a few seconds and refreshing the page displays this.

The .4 part shows that this is port 4 of the Hub.

Plugging in the memory stick into the bottom port on the Hub, waiting a few seconds and refreshing the page displays this.

The .2 part shows that this is port 2 of the Hub. You will notice that port position does not correspond to the actual port number, as from top to bottom the ports are numbered 1, 4 and 2.

Because the USB memory stick has to be plugged into the lowest numbered port, it must be put into the top port of this 3 port unpowered Hub.

The powered Hub is more complicated in its numbering scheme because of the extra number of ports.

Plugging in the memory stick into a port on the Hub, waiting a few seconds and refreshing the page displays this.

Like the unpowered Hub, the 1-1 part shows the powered Hub is plugged into port 1 of the router.

The .2 part shows this is port 2 on the Hub.

Repeating the procedure on another port we see this.

The .4 part shows this is port 4 on the Hub.

Repeating the procedure on another port we see this.

This is different from the others as it has a .1.4 part. This tells us that port 1 of the Hub has another hub on it and this is port 4 of that hub. Think of it as port 1 / subport 4.

Repeating the procedure on another port we see this.

This has a .1.1 part that tells us this is on port 1 of the hub and is subport 1.

Since we want the USB memory stick to be in the lowest port of the Hub it must go in port 1. Since port 1 has subports it must also go in the lowest subport, in this case subport 1.

Putting It Altogether

With our specially partitioned USB memory stick containing the package repository, knowing which is the lowest port on our USB Hub and having the router flashed to the Ext-ROOter image, we are ready to put it altogether.

Unplug the router and Hub from their power sources and insert the USB memory stick into the correct port. Power up first the Hub and then the router.

The router will boot up, perform certain actions and then reboot itself. This can take several minutes to complete. After the router has booted up it will take about a minute for it to create a swap file on the USB memory stick and load the information from the repository. After the first time it will take about 30 seconds to do this after rebooting.

  To make sure that everything has worked correctly go to the router’s web interface and select System->Software. If all is well you will see this.

Instead of the 100K of free space you’d see on a regular ROOter, there is 459MB free. Room for all the extra features you want.

To add new features to the router (it has none to begin with) go to System->Add Features. If there is nothing under Uninstalled and Installed then the repository is still being loaded from the USB memory stick. Wait for a little while and then refresh the page.

You will see this.

And this.

 

Uninstalled are the features that you can still install. Installed are the features you already have installed.

To install a new feature click on the feature’s dropdown box and change it to Install. Do this for all the features you wish to install at this time.

Click on the Save button in the lower right corner of the page.


  You will be taken to another page where you allow the features to be installed.

Clicking on the Install and Reboot button will install all the features you selected on the previous page. When the features are installed the router will be rebooted to complete the process.

After the router finishes rebooting the new features will be present. You can install new features at any time, either singly or in groups.

Current Feature List

The following is a list of the features provided with Ext-ROOter that can be installed on the router.

·         Aria2 File Downloader – utilizes a web interface to allow downloading files by URL and store then on USB storage attached to the router.

·         Dynamic DDNS – use DNS services to assign a URL to your router rather than an IP Address.

·         MJPG-Streamer – support for web cams with preview.

·         OpenVPN - implements virtual private network (VPN) techniques for creating secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities.

·         Print Server – attach a printer to the router and have access to it via the network.

·         Quality of Service - is equivalent to traffic shaping but with packet prioritization, application classification and queuing at congestion points.

·         Relayd Protocol – used to implement wifi linking.

·         ROOter Modem Support – basic ROOter support for modems.

·         ROOter SMS Support – adds SMS to the basic ROOter.

·         Samba File Sharing – share USB storage over the network.

·         BitTorrent Client – the Transmission bittorrent client with a web interface to download bittorrents to USB storage attached to the router.

·         Universal Plug’n’Play - permits networked devices to seamlessly discover each other's presence on the network.

·         Interface Traffic Statistics – shows the traffic on all router interfaces graphically using vnstat.

·         VSFTPD FTP Server – an FTP server.

·         Wonder Traffic Shaper – traffic shaper used to improve response times.

  Removing Ext-ROOter

If you wish to remove Ext-ROOter from your router it can be done quite simply.

Unplug the router and remove the USB memory stick and the USB Hub. Power up the router again.

The router will now be at the same spot as it was before you expanded the flash memory. You can then flash it back to another version of ROOter (or the factory firmware) using the normal System->Flash Firmware page of the web interface.