History file for RouterTech.Org Custom Firmware

NOTE: Using unofficial firmwares will void your warranty

version 2.97 (20120130) (30 January 2012) - changes (compared with v2.96)

1. Busybox has been upgraded to v1.19.3.

2. New script: wifi - to start/restart or stop the wireless AP (use with care on 1350A routers; after turning off, you may need to reboot to restart the AP); run with no parameter to see the syntax

3. New script: showmacs.sh - displays all the router's stored MAC addresses

4. Fixed a long-standing bug with WDS "repeater" mode (1350A wireless routers)

5. New script: wds.sh - to setup WDS on a 1350A wireless router; run with no parameter to see the syntax

6. Bug fixes in some scripts (e.g., check_ddns.sh)

7. Some other enhancements

8. Better rationalisation of the documentation, and removal of duplications - scripts and environment variables are listed in features.html; utilities are listed in rt_commands.html

9. New script: minix.sh - an easy way to create a new minix partition (this is just a shell to makemtd.sh)

10. New script: cmd - a command-line shell to cm_cli_ex, to run configuration commands or retrieve configuration values via cm_cli_ex. Pass the script the parameters that you would normally pass to cm_cli_ex, without the need for using echoes and pipes - e.g. cmd "lan0:static:settings/ip" (will show the LAN ip address stored in the router's configuration section - this is functionally equivalent to running the command: echo "lan0:static:/settings/ip" | cm_cli_ex - but with the added advantage that the script will run some useful checks while running)

11. More links from the firmware's web configuration "Help" menu to RouterTech online documentation

12. Changes to adblock.sh and adblock_multi.sh - the arguments "medium" and "xlarge" are no longer supported. This is due to issues with the relevant online lists

The RouterTech Development Team, 30 January 2012

version 2.96 (20110502) (02 May 2011) - changes (compared with v2.95)

1. Busybox has been upgraded to v1.18.4.

2. User-configurable udp "SIP_EXPIRES" timeout for standard firmwares (wireless and non-wireless) only.
You can set "/proc/sys/net/ipv4/netfilter/ip_conntrack_udp_sip_expires" to the desired value (default=3600 [seconds]).
Example: "echo 7200 > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_sip_expires" will set the timeout value to 7,200 (seconds).
NOTE: this feature is not available in the 1350A wireless firmwares.

3. New 1-port firmware for the one-port 1350A wireless routers.

4. New facility for executing commands each time a WAN connection is made - by "RT_connect_x" entries in the environment ("x") stands for a number or some other distinguishing letter/number.
Example: setenv 'RT_connect_1 /nvram/refresh_web.sh'  (this will run "/nvram/refresh_web.sh" (assuming that such a script exists) every time a WAN connection/reconnection is made).

5. Bug fixes to pptpd.

6. New scripts: "pptpdstart.sh" and "pptpd_stop.sh" - to start and stop the pptpd server respectively. The second script takes no parameters. Supply "--help" to "pptpdstart.sh" to see the syntax. See also the "pptpd_user_dir" environment variable, below.

7. New environment variable: "pptpd" - set to 1 to run pptpdstart.sh automatically when the router boots up.
8. New environment variable: "pptpd_user_dir" - points to the location of user configuration files for pptpd. The default is /nvram/pptpd/ (i.e., on your minix partition, if any). Use this variable to override the default - otherwise, you will need to run pptpdstart.sh manually, and to pass it the "--pptpd_user_dir" switch pointing to the relevant directory. Everything in this directory will be copied to the /var/tmp/ directory by pptpdstart.sh before starting the pptpd service. So you can have your own custom options.pptpd and pptpd.conf files there. If so, they will override the defaults supplied with the firmware. Your chap-secrets file MUST be in this directory.

9. The idle timeout for utelnetd (for telnet connections) is now configurable - by a "timeout" variable in "/var/tmp/utelnetd.conf" (default = 600 [seconds])
    You can write the conf file manually;
         Example: "echo timeout=3600 > /var/tmp/utelnetd.conf" will set the timeout to 1 hour. Set "timeout=0" for an indefinite timeout.
   Or you can store the value in the "utelnetd_timeout" environment variable, in which case the firmware will create the conf file with the right value each time the router boots up
         Example: "setenv utelnetd_timeout 7200"

10. The idle timeout for dropbear (for ssh connections) is now configurable - by a "timeout" variable in "/var/tmp/dropbear.conf" (default = 120 [seconds])
      You can write the conf file manually;
            Example: "echo timeout=600 > /var/tmp/dropbear.conf" will set the timeout to 10 minutes. Set "timeout=0" for an indefinite timeout.
   Or you can store the value in the "dropbear_timeout" environment variable, in which case the firmware will create the conf file with the right value each time the router boots up
         Example: "setenv dropbear_timeout 0"

11. New environment variable: "utelnetd_timeout" - to specify the idle timeout (in seconds) for telnet connections. Set to 0 (zero) for an indefinite timeout.

12. New environment variable: "dropbear_timeout" - to specify the idle timeout (in seconds) for ssh connections. Set to 0 (zero) for an indefinite timeout.

13. Got rid of the "ip_nat_mangle_udp_packet: undersized packet" error messages.

14. New script: "pppoe_bug_fix.sh" - to facilitate the fixing of pppoe problems that arise out of an invalid DSL MAC address in the router's environment.

15. The "Restart" button in the "System" menu has been removed. There was no point in having two ways of rebooting the router in the web admin. Use "Tools->Reboot Router" instead.

The RouterTech Development Team, 02 May 2011

version 2.95 (20110103) (03 January 2011) - changes (compared with v2.94)

1. The firmware will now automatically be reset to defaults after each firmware upgrade, and at any other time that it detects a version mismatch. This is to deal with cases of people not following the instructions to reset to defaults after upgrading their firmware. So, the days of restoring a saved config from an earlier firmware are over. Many problems arise from these mismatches, and this feature will reduce a lot of noise in the forum. This feature has been in the 1350A wireless firmware for a long time - so this is to make things consistent across all firmwares.

2. New experimental script: "swapfile.sh" - to create/load/unload a swap file via smbfs. This gives the router some virtual memory and gives the router more memory to play with. It requires a network shared directory that is always available to the router on which to create and mount the swap file (a NAS would do just fine - or a shared directory on a PC that is guaranteed to always be switched on). If you try to run with a swapfile on a directory that ceases to be available, the consequences cannot be predicted (at the very least, the router will most probably crash).

Run "swapfile.sh --help" to see the syntax. 2mb-flash non-wireless firmwares/routers will need to run the fetch_smb command (see below) to be able to use this feature. By default, the script will mount the location of the swap file on /swap/. When run for the first time, it will try to create a swap file if none is found. The process of creating a new swap file can take a VERY long time (several minutes). So be ready to go for a cup of tea!
NOTE: this feature is highly experimental, and it is not always stable in operation. Those who are not very brave should not use it.

3. The http server in all firmwares is now mini_httpd. The thttpd server has been retired (it did not work very well with the "http_addr" feature).

4. When "http_addr" is defined in the environment, the firmware will wait for the internal network to start before launching the http server. This will add about 30 seconds to the bootup process.

5. Busybox has been upgraded to version 1.18.1.

6. The adam2-defragenv.sh script is now obsolete and has been removed. To defragment the adam2 environment, just run "setenv DEFRAG DEFRAG"

7. Amendments to the OpenVPN scripts:
[a] The default protocol has been changed to udp. The default can be overridden with "--proto=tcp". If this is not done, then the client configuration files need to be amended to change the "proto" directive from "tcp-client" to "udp".
[b] The openvpnstart.sh script will attempt to verify successful execution of the openvpn binary, and will make another attempt at running it if the first attempt is unsuccessful.
[c] The default openvpnstart.sh script can be overridden by placing an alternative (with the same name) in the "bin_dir" directory. If you do this, it is your responsibility to ensure that your alternative works correctly.

8. New script: "connections.sh" - to provide diagnostic information about your internet connection. It should always be run from a telnet/ssh login session. Run this before reporting connectivity problems.

9. New scripts: waitforlan, and waitforwan - to wait for the LAN to start, or for a WAN connection, respectively (or timeout after waiting a while).

10. New script - 1350A-reset-eeproms.sh - to set the EEPROMs in the 1350A wireless configuration to generic values. Immediately afterwards, the router will reboot - and then you will need to run the Wireless Environment Builder so that it can fix the EEPROMs. This script should not be used except as a VERY LAST RESORT - after every other attempt to recover a trashed 1350A wireless firmware has failed to repair the wireless functionality.

11. New script - fetch_smb - for non-wireless firmwares with 2mb flash and 8mb RAM only; to fetch the smbfs driver and support binaries from the RouterTech repository, extract the files, load the driver, and optionally run a command (typically, to run swapfile.sh (above) to create/load a swap file). This is an experimental feature. Treat it as such.

12. The file "/var/upgrader" is now deleted on bootup. It is only required when upgrading the firmware via the web interface. It will be restored automatically in such cases.

13. Darkstat will now provide better information on the wireless firwmares. But things could still be a bit flaky - darkstat uses a lot of memory (it can use up to 6mb), and this could have implications for stable operation.

14. Buffer for kernel messages (printk.c) increased. The dmesg command should now provide more detailed information.

15. New environment variable: "save_bootlog" - if this is set to 1 (one) then the boot messages will be saved in /var/log/boot.log.

16. New script: "check_ddns.sh" - to check whether the dynamic DNS IP address of the supplied host is up-to-date. If not, it will reset the ppp connection (e.g., "check_ddns.sh myhome.noip.com" will check whether the IP address of "myhome.noip.com" is the same as the IP address of the current ppp connection). If no parameter is supplied, then the ddns host name will be fetched from the router's live configuration.

17. New command: "ipaddr" - to resolve the IP address of a host name.

18. New script: "wlan_setvalue.sh" - to change some wireless settings. This is useful for changing things that are not possible to change from the web interface (e.g., country, etc). Use with great care. If you mess up the wireless settings with this script, you will need to reset the router to defaults. If you are happy with the changes that you have made, run saveall.sh to save the changes.

19. Changes to reset-config.sh - with this script, there is no longer an option to stop the router rebooting after resetting the configuration to defaults.

20. Various bug fixes.

21. New scripts: "defragenv" and "fixenv" (they are the same) - a short-cut for defragmenting the environment.

22. The firmware will now automatically defragment the environment during a firmware upgrade via the web interface, and everytime something is changed in the "RT Configurations" menu.

The RouterTech Development Team, 03 January 2011

version 2.94 (20100818) (18 August 2010) - changes (compared with v2.93)

1. dnsmasq amended for DNSSEC support - to conform to EDNS specifications, changed the default "edns-packet-max" to 4096 in conformity with RFC5625 section 4.4.3
2. Enabled config_filter in the kernel

3. Enabled GRE support in the kernel (wireless firmwares only)

4. mknod restored to the wireless firmwares

5. New script "block.sh" - to block a host (or redirect it to another IP)

6. New command "mjproxyn" - a version of mjproxy that supports non-standard SIP devices

7. Enabled mangle support for iptables in the kernel

8. New script "checkmargins.sh" - to check periodically the downstream (DS) and upstream (US) margins, and reset the connection (or optionally reboot the router) if either of them goes below a certain number (e.g., "setenv checkmargins.sh 1 30" - will check for the margins every 30 minutes)

9. New environment variable "min_margins" - to provide minimum acceptable DS and US for the checkmargins feature (e.g., "setenv min_margins 7 12" - means a minimum DS margin of 7, and a minimum US margin of 12). The defaults are set very low (DS=5, and US=10)

10. New environment variable "min_uptime" - to specify the minimum period for which the router must have been running before checkmargins should take any action (default=2 hours)

11. Busybox has been upgraded to v1.17.1

12. New command "dmesg" (wireless firmwares only) - prints any messages in the kernel buffer

13. The adam2-defragenv.sh script is now deprecated and will be removed from future firmwares. It should no longer be used. To defragment the adam2 environment, just run "setenv DEFRAG DEFRAG"

14. Some very important Adam2 kernel fixes

15. OpenDNS's "Family Shield" servers added to the extra_dns environment feature ("All", "OpenDNS", "FamilyShield", "Google", "UltraDNS", "DNSResolvers", or "BT"). You can set "extra_dns" to any of these, to a combination of them, or to "All", and you can use either their full names, or the first letter of their names - e.g., setenv extra_dns "F U D" - will select DNS servers from OpenDNS Family Shield, UltraDNS, DNSResolvers; setenv extra_dns "A" or setenv extra_dns "1" will select all of them

16. New environment variable - "force_dns" - (for pppoa/pppoe connections only) to force the DNS servers to be set to the ones specified. This is processed only when a WAN connection is acheived.
e.g., setenv force_dns The new "force_dns" script does exactly the same thing and takes exactly the same parameters, but and should only be run after getting a WAN connection. Note that no check is made for whether the supplied DNS servers are valid or correctly formatted

17. New script - "force_dns" - see above

18. New script - "block_baddies.sh" - to block a large number of "bad" web sites, using the force_dns features and OpenDNS Family Shield servers for DNS, plus the adblock features for extra blocking. It takes an optional parameter ("--temp") - this tells the script to NOT make the blocking feature persistent (by making some entries in the environment - if no such entries already exist) - otherwise, the blocking features will be permanent until the relevant entries (force_dns and adblock) in the environment are removed. If the parameter "--block_thumbs" is supplied, then thumbnails from google image searches will also be blocked

19. New script - "block_baddies_undo.sh" - to undo what was done by block_baddies.sh (the router will be rebooted afterwards). To prevent this command being executed accidentally, you will need to give it the parameters: "--confirmed --proceed". Any other thing, and it will not run

20. New script - "block_thumbs.sh" - to block thumbnails from google image searches

21. New environment variable - "block_thumbs" - if set to 1, it will block thumbnails from google image searches (pppoa/pppoe only)

22. New script - "freememory.sh" - to free up memory by stopping some services (the http server, USB, darkstat, wireless, SNTP, IPAccount, and the upgrader file)

23. New scripts - "setconf", "getconf", "unsetconf" - to set, read, and delete a configuration variable (in the RouterTech block of config.xml). The syntax is similar to setenv, getenv/printenv, and unsetenv. Note that any value written with setconf will be wiped out whenever the firmware is reset to defaults

24. New experimental support for OpenVPN (wireless and 4mb-flash non-wireless
firmwares only) - thanks to TafnaSM. This support centres around a new script (openvpn.sh) and a few other new things. You can either run openvpn.sh manually and supply it with the required parameters, or use the new openvpn environment variable. The new environment variables "openvpn_bin_dir" and "openvpn_cert_dir" can also be used to specify the locations of the OpenVPN binaries and certificates/key files respectively. You will need to create certificate and key files for OpenVPN (see the "HowTo" file for information). Note that the memory overhead for running OpenVPN on a wireless firmware will be considerable. The OpenVPN binary itself (1.1mb in size) has to reside on the router's ram-disk, thereby using at least 1.1mb extra memory, and it also needs memory to run. You may wish to ensure that you are not also running too many other services at the same time.

25. New script - "openvpn.sh
(wireless and 4mb-flash non-wireless firmwares only) - to run OpenVPN with all the required arguments (with the 1350A wireless firmwares, it will also download the OpenVPN binaries from a network sharepoint, or the RouterTech repository into the router's ram disk, and extract and them before running). Run "openvpn.sh --help" to see the syntax.

26. New environment variable - "openvpn"
(wireless and 4mb-flash non-wireless firmwares only) - set it to whatever parameters you wish to pass automatically to openvpn.sh on bootup, or set it to "--config". If set to "--config", then the firmware will read the parameters to be passed automatically to openvpn.sh on bootup from the "VPN" entry in config.xml. This VPN entry should be set with the setconf command.
For example, instruct the firmware to run OpenVPN automatically, you can run the following, or something similar:
setenv "openvpn" "--config"
setconf "VPN" "--sharepoint=// --user=Joe --password=@2K --bin_dir=/smbfs/bin --cert_dir=/smbfs/config --key=./n1.key --cert=./n1.crt"
Provided you have your certificate and key files and all else in place, you are set!

If you want to use only the defaults (run "openvpn.sh --help") to see the defaults, all you need to do is to ensure that all the files are in the default locations, and set the openvpn environment variable to "1".

27. New environment variables - "openvpn_bin_dir" and "openvpn_cert_dir" - to specify the locations of the OpenVPN binaries and certificates/key files respectively (wireless and 4mb-flash non-wireless firmwares only) - you can simply use "--bin_dir" and "--cert_dir" at the command line to pass these locations to openvpn.sh. For wireless firmwares, supplying "inet" as the value of the "bin_dir" argument/variable will make the firmware to fetch the binaries from the RouterTech repository instead of the network.

28. New script - "openvpn_stop.sh(wireless and 4mb-flash non-wireless firmwares only) - to stop OpenVPN, and clear its temporary files.

29. New environment variable - "block_icmp" - set it to 1 to provide extra security by blocking most ICMP packets (no NOT use this if you want to run OpenVPN).

30. New pptp daemon ("pptpd") - for creating pptp-based VPNs (wireless and 4mb-flash non-wireless firmwares only). This version is based on Poptop.

31. Bug fix in "getenv" (it was returning partial matches).

32. The start_httpd.sh script has been enhanced to take an extra (optional) argument: "--addr". If used, it should specify the IP address to bind the http server to (e.g.,, or whatever). In this case, it will only be possible to connect to the router's web interface at the specified address. Alternatively, the IP address can be specified in the new environment variable: "http_addr".

33. New script: stop_httpd.sh - to stop the http server. This can free up extra memory.

34. New script: block_rebind.sh - to block DNS rebind attacks using iptables commands.

35. Further rationalisation of the DSP drivers means that the "low end" driver has changed from dsp/tiatm v6.2 (dsp62) to v7.0 (dsp70). In all versions of the firmware, dsp62 has been replaced with dsp70. DSP/tiatm v6.x are now "retired".

The RouterTech Development Team, 18 August 2010

version 2.93 (20100408) (08 April 2010) - changes (compared with v2.92)
1. CIFS (which has proved to be flaky) has been replaced with SMBFS (wireless firmwares only). Smbfs is more robust on these firmwares than cifs, and the syntax is also more straightforward. Like cifs, smbfs allows you to mount shared network drives on your router. There is a ready-made mountpoint "/smbfs" that can be used for mounting.

2. New command "smbmount" - to mount an smbfs share (wireless firmwares only).
    smbmount //<server_ipaddress>/<share_name> <mountpoint> -o username=MyWindowsLoginName,password=MyWindowsPassword
    smbmount // /smbfs -o username=freddy,password=ddyfre   
    This will give you read/write access (at "/smbfs/") to the shared directory ""

    WARNING: You MUST unmount any shared drive before any attempt to upgrade a firmware, and before turning off your router (see the detachfs script below).

3. The smbfs driver (wireless firmwares only) is built as a module. This means that it is not loaded into memory unless and until required, resulting in significant memory savings.

4. The tun and ethertap drivers (wireless firmwares only) are now modules. This also results in significant memory savings.

5. New support (wireless firmwares only) for ipip (ipip.o and iptunnel). For those who know what to do with them, these can apparently be used to create a VPN. Run "iptunnel --help" for the syntax, and good luck with it! There is no support at all for this feature.

6.  Busybox has been upgraded to v1.16.1.

7. "sync" has been removed. It served no useful purpose - see the new "flush" script below.

8. New script "flush" - to flush all pending writes to minix/smbfs partitions so that they are not lost if the router is switched off without shutting down properly. Ideally, this command should be run every time you write to a minix/smbfs partition. If you have any mounted smbfs partitions, then you need to supply the username and password to the flush command (these are ignored in respect of minix partitions, but are needed in order to reload smbfs partitions).

9. New script "detachfs" - to unmount all mounted minix, smbfs, ftpfs, etc., partitions/mountpoints only.

10. We have further rationalised the dsp drivers included in the firmware, going for greater stability, and providing only low end (dsp62) and high end (dsp75) in most cases. The 1350A wireless firmware will have dsp62 and dsp71.

11. More tweaks for better and more reliable P2P performance.

12. Following a poll in the forum, darkstat has been removed from the wireless firmwares. For the few who really need it, a copy will be available for download from
the repository (which can then be run from a minix or smbfs mountpoint or from the /var/ directory - and see the fetch_ds script below). The facility to view the darkstat statistics from the web interface is retained for such people. Where it is retained, darkstat has been upgraded to v3.0.713.

13. New script "fetch_ds" - this script will fetch darkstat from the repository, extract, and run it. It can either the run manually, or via autoexec.sh.

14. New script "ucast_solicit.sh" - to work around routing problems on the networks of two (which shall remain nameless) UK ISPs (they should really sort out their equipment!).

15. New command - "netdate" - to update the system date/time from a remote time server, using the RFC868 protocol (not all time servers like this protocol, most preferring NTP). 

16. New script - "setdate" - to update the system date/time, using netdate. It uses a default list of time servers (in /etc/netdate.conf), but you can specify your own (space-separated) servers in the new "time_servers" environment variable. The time zone can be set manually with the new "TZ" environment variable.

17. New environment variable - "TZ" - to set time zone manually for the use of the setdate/netdate commands. See "timezones.txt" in the firmware documentation for the list of available codes (e.g., "setenv TZ GMT01" - to set the time zone to central European time). This will cause the /etc/TZ file to be updated with the correct values for setdate and other "time" programs. NOTE: the /etc/TZ file will be overwritten by msntp if you enable sntp.
18. New environment variable - setdate_enable - set this to 1 for the system to run "setdate" automatically each time it gets a WAN connection. This will also create a cron job for setdate to be run every 4 hours (or, if a second parameter is given to setdate_enable, uses the value in that parameter - e.g., "setenv setdate_enable 1 3" will enable setdate, and will set the cron job to run every 3 hours). The valid range for the second parameter is between 1 and 23 (default=4). No error-ckecking of the value is done, so it is important to get it right. This feature is a low resource alternative to msntp, because it is not running all the time. If msntp is enabled, then this feature is redundant.

19. New environment variable - no_auto_vlynq - set this to 1, to prevent the 1350A wireless firmwares from automatically setting "vlynq_polarity" to "low".

20. New "lite" versions of the non-wireless firmwares, for routers with 2mb flash and 8mb RAM. The lite versions use DSP/tiatm drivers v7.00x, and do not have the following features: [a] mjproxy; [b] sft; [c] wakelan; [d] ftpfs; [e] usb; [f] upnp. If you don't need/want any of these, then you should go for the lite versions. The lite versions leave sufficient space for users to create a 64kb minix partition.

21. New addition to the "autoexec" features - the firmware will, on bootup, look for a tar ball - "/nvram/custom.tar.gz". If this file is found, it's contents will be extracted into the "/var/tmp", and, if it contains a script called "custom.sh", this script will be executed automatically. All this will happen at the tail end of the initialisation procedures, just before the search for "/nvram/startup.sh".

22. Following a poll in the forum, the USB driver has been removed from the firmwares for routers with 2mb flash. This frees up much needed space. There should be enough space now on those firmwares for creating at least a 64kbminix partition.

23. New script - "fetch_driver" - to download the usb driver or the ftpfs driver from the repository, extract the driver module, load the driver, and optionally run a command. Run the command without any parameters to see the syntax.

The RouterTech Development Team, 08 April 2010

version 2.92 (20100105) (05 January 2010) - changes (compared with v2.91.1)
1. New shell script: ap_restart.sh (wireless firmwares only) - restarts the wireless access point.

2. Busybox "sync" has been replaced with a stand-alone sync utility (wireless firmwares only).

3. Fixed a display issue with the printenv command (problem with printing newlines).

4. Fixed a display issue for pppoe on the Status menu.

5. Following a poll on the forum, the bwbasic interpreter has been removed. 

6. Following a poll and other discussions on the forum, the default DSP driver for the standard firmwares has been set to dsp75.

7. New feature: udpxy added to the wireless firmwares. The program allows you to relay multicast UDP traffic to a client's TCP (HTTP) connection (unicast). This allows you to use IP TV (UDP multicast) services via wifi. Example: "udpxy -m br1 -p 88 -S"
where: m - interface (LAN group) where the IP-TV bridge connection added.
-p - the port to listen on... I am using 88
-S - enable the bandwidth statistics. The status page is available at (router ip and 88 port from the -p 88 option). Also the -B option can be used to setup udpxy's cache size, e.g:  "udpxy -m br1 -p 88 -B 1024K -S"
After this you can use the IP-TV as unicast by ethernet and wi-fi, for example if the udp multicast url is udp://@ - you can access it as

8. The darkstat feature has been removed from the firmwares for routers with 2mb flash.

9. The rt_commands.html file has been removed from the binary firmwares.

10. Busybox has been upgraded to v1.15.3.

11. New shell script: start_httpd.sh - to start the firmware's http server, optionally specifying the http server's port (the default port is 80). This script runs during the boot-up process to start the http server for the web configuration. 

12. New environment variable: http_port - to specify a port for the http server. If this is set to "none", then the http server will not be started during the bootup process - this can save significant memory on low memory routers - but you will not be able to open the web configuration with this setting. If you thereafter wish to configure the router from its web interface in such a case, you will need to run start_httpd.sh from the command line, either with no parameters, or with the desired port number.
Do NOT set http_port to "none" if you have a 1350A wireless firmware. If you do, there will be big trouble!

13. Slight change to the syntax of auto_defragenv.sh to: auto_defragenv.sh --threshold=<number> (note the "=" sign).

14. The dnsproxy server has been upgraded from dproxy-nexgen to dnsmasq v2.51 (still masquerading as "dproxy") for its up-to-date caching dns proxy functions only (NOT lan dhcp). The code has been patched, to reduce size by disabling unused options and functions, to ignore command line parameters, and to do all configuration by configuration file. Additional conf files can be added to /tmp/dns.d/. dnsmasq supports many options and enables additional functions such as auto selection of the fastest responding dns server from all configured, and domain blocking - exploited by the extra_dns and adblock functions below.

15. New shell scripts: adblock.sh and adblock_multi.sh - to assist in blocking popup adverts by means of "dns poisoning". It is basically obsolete if you can use Firefox and adblock plus - but otherwise (e.g., if using IE) it is very useful. Advantages [a] it only needs to be implemented once - on the router - and all clients would benefit from the ad blocking, etc [b] it works with all browsers such such as IE which don't have adblock [c] some of the hosts in the hosts block lists do some of what tinyproxy could have achieved, re: parental control. For this purpose, adblock.sh downloads and converts one of a number of common internet resources ("small", "medium", "large", or "xlarge") of ad servers to be blocked. The largest of these uses a lot of cpu cycles on the router (about 20%) - but since the router's cpu is largely idle most of the time, this is not a major issue. The smallest consumes only about 5% cpu cycles. Run adblock.sh with no parameters to see the syntax. adblock_multi.sh is a shell to adblock.sh, allowing it to download more than one of the internet lists at once  (e.g., "adblock_multi.sh exit small large"). Note that, for routers with low memory (i.e., 8mb RAM), you should never use "large" or "xlarge". In fact, "small" might be the only one that such routers will be able to cope with. If you try to download more lists than your free memory can cope with, your router WILL crash!
NOTE: you MUST always run "adblock.sh exit" to remove the adblock features from memory, before any attempt to upgrade the firmware.

16. New environment variable: adblock - use this to schedule adblock_multi.sh to run when a WAN connection is made. The values should be the parameters that you wish to pass to adblock_multi.sh (e.g., setenv adblock "exit medium xlarge"). On routers with 8mb RAM, you should only supply "small" - do NOT try to use the medium/large/xlarge lists on such routers.

17. New utility: pixelserv - a tiny webserver that serves up a single pixel to any request. It can be used in conjunction with the adblock features.

18. New shell script: uptime - parses and displays the system uptime information.

19. New shell script: memavail - reports the amount of RAM that is available to be used.

20. New environment variable: extra_dns - to add DNS servers from a selection ("All", "OpenDNS", "Google", "UltraDNS", "DNSResolvers", or "BT") in dnsmasq format. You can set "extra_dns" to any of these, to a combination of them, or to "All", and you can use either their full names, or the first letter of their names - e.g., setenv extra_dns "O U D B" - will select DNS servers from OpenDNS, UltraDNS, DNSResolvers, and BT; setenv extra_dns "A" or setenv extra_dns "1" will select all of them.

21. New environment variable: extra_resolvers - to add ALL the DNS servers specified above, in resolv.conf format. These servers are prepended to /etc/resolv.conf. In the TWNETW1350A firmware, only the first three will be used.

22. New environment variable: static_dns - this is useful mainly for those with DHCP (as opposed to pppoa/pppoe) connections, who do not have the "Use Peer DNS" button in the firmware's web interface. Set it to 1 to prevent the dhcp server from overwriting your static DNS entries.

22. The ssh server (dropbear) has been upgraded from v0.51 to v0.52 in line with upstream package source. A default idle timeout of 120s has also been enabled, to prevent disconnected instances of dropbear from hanging around wasting memory and preventing further logins (maximum 2 simultaneous allowed). To avoid the timeout please enable a keepalive of say 30s in your ssh client (supported by putty and winscp, for example). The dropbear code has been patched to accept this null packet keepalive - the default code acts only on data transfer.

23. The upnp daemon has been upgraded to v1.4 20091102 in line with upstream. Additional optional configuration items include the ability to not show the Internet server in Windows "My network places", by specifying a null presentation_url.

24. New hook to run a user-supplied script (/var/tmp/onclose.sh) when before rebooting or shutting down the router via the reboot or shutdown commands. When either command is executed, it will search for "/var/tmp/onclose.sh", and, if it is found, it will be executed immediately. After this, the normal house-cleaning on reboot/shutdown will continue.

25. Wide display support enabled for the "ps" command. This is triggered by running "ps -ww". The downside of this is that "ps aux" will now generate an error. So you can only run "ps" with no parameters (which will behave as it would when you used to run "ps aux"), or run it with "-w" (132 column width) or "-ww" (2048 column width. Users who have written scripts with "ps aux" will need to change their scripts to just call "ps" (busybox ignored the "aux" anyway). The command "ps -ww" will display everything (up to a width of 2048 characters). It would however need to be used with great discretion, because all the username and password, etc., passed to pppd will be displayed in its full glory (i.e., you don't really want to post the output of "ps ww" on the forum!).

26. Text files with the mtd calculations for each firmware image is now added to each firmware release. Each firmware image has a corresponding "_mtd.txt" file, which shows the correct mtd partition settings for that firmware image. The text files are in unix format (for very good reasons), and so to view them under Windows, you will require a text editor that understands unix line endings.

The RouterTech Development Team, 05 January 2010

version 2.91.1 (20090922) (22 September 2009) - changes (compared with v2.91)
This is mainly a maintenance release, to fix ddns, which was broken in v.2.91. But there are number of new features:

1. Bug fix for ddns in the standard firmwares (the 1350A wireless firmwares were not affected).

2. New utility added: mjproxy -  a very small proxy for SIP. It has an algorithm that computes the MD5 to allow the user to be authenticated and logged on with the SIP registrar of a VOIP service.

3. New shell script: auto_defragenv.sh - defragments the environment after the fragmentation level has passed a specified threshold (default 30 for Adam2, and 50 for PSPboot). This can be changed by supplying "--threshold <number>" at the command line, or by setting the new environment variable "DEFRAG_THRESHOLD" to the desired number (where "number" stands for a positive whole number). The number should not normally be less than 20 nor exceed 40 (Adam2) or 60 (PSPboot). Note that no check is done as to whether the number is sensible. The defaults are sensible, and should normally left well alone. The command line parameters take precedence over any value in "DEFRAG_THRESHOLD". This command must always be run from a telnet/ssh login prompt, and never from the firmware's web interface.

4. New environment variable: DEFRAG_THRESHOLD - to specify a different maximum fragmentation threshold for the auto_defragenv.sh script.

5. Updated version of darkstat (latest from the git repository)

6. Busybox upgraded to v1.14.4.

The RouterTech Development Team, 22 September 2009

version 2.91 (20090912) (12 September 2009) - changes (compared with v2.9)
1. Bug fix:  the "Restart Access Point" button in 4-port non-wireless  firmwares removed.

2. Busybox upgraded to v1.14.3.

3. Utilities: "insmod" is now a shell to modprobe; use "insmod-bin" for the "real" insmod (this is a result of the busybox upgrade to v1.14.x and higher).

4. Some security improvements.

5. The "RT configurations" feature has been updated to be able to specify Led file and DSP driver. The available ones are shown in brackets. The desired Led or DSP file should be specified as it
appears in the brackets - and their file extensions must NOT be specified.

6. A new shell script: adam2-defragenv.sh (for routers with the Adam2 bootloader only). It will defragment the Adam2 bootloader environment. The script has to be run from a telnet/ssh login session. Normally, you should not run this command directly. Instead, use setenv DEFRAG DEFRAG (see below).

7. New command for defragmenting the environment - setenv DEFRAG DEFRAG (note the capitals!) - must be run from a telnet/ssh login session (never from the web interface).
NOTE: This command must only be used as a last resort. As with any low-level operation that writes to the router's flash chip, things can go badly wrong. The recommended way to defragment the Adam2 bootloader environment is to run "fixenv" from the bootloader command prompt. The recommended way to defragment the PSP bootloader environment is to run "defragenv" from the bootloader command prompt. You will need a serial console to run commands from the bootloader command prompt.

8. A new shell script: bandwidth.sh - allows you to throttle the bandwidths of those who have exceeded a specified transfer bandwidth (default 500mb) to a very very low speed (default 128 bytes-per-sec), and to display current bandwidth usage data. Requires IP Account to be enabled (example: bandwidth.sh 250 1024 reset - will throttle any client that has exceeded 250mb bandwidth to 1024 bytes per second; the "reset" parameter is optional; if used, then it will first reset the IPAccount statistics - this is useful if your router is not rebooted everyday). Run the command with no parameter to see the syntax.

9. New support for wireless Adam2-based routers with just one ethernet port (e.g., the Actiontec GT701WG).

10. pppd upgraded to v2.4.4.

11. New support for siproxd (wireless routers only) (courtesy of Richard Antony Burton).

12. New environment variable ("siproxd_enable" (wireless routers only)). If set to 1, this will trigger automatic execution of siproxd each time the router boots up, using a default configuration file (/etc/siproxd.conf).

13. Enhancements to the "RT Configurations" page in the "Tools" menu. You can now [a] enable/disable Siproxd from this page, and [b] select/de-select DSP drivers and Led conf files.

14. DSP/tiatim v6.x has been restored to the AnnexA firmwares.

15. The default DSP driver  (other than the 1350A wireless routers) has been changed to DSP/tiatm v6.x. This should free up some memory on low memory routers, and should also be less demanding on the hardware. In the firmwares that allowed for changing the DSP/tiatm drivers, the facility to change the drivers still remains.

16. New DDNS support for dnsomatic (courtesy of Richard Antony Burton).

17. New command: wol_forward (courtesy of Richard Antony Burton). This command is to wake a machine on the LAN from outside the network, via settings in the new wol_forward environment variable. Example: setenv wol_forward "ppp0 br0 7".

18. Following a poll on the forum, Tinyproxy has been removed from all our firmwares and is no longer a feature of the RouterTech firmwares.

19. A new shell script - reset-config.sh - resets the configuration to defaults. Use this command only as a last resort - when everything else fails (e.g., when reset from the web interface fails, or when you are unable to access the web interface).

20. New tool - mtd3_app - this is a low level helper program for some firmware scripts. Do NOT attempt to run it manually!

21. Change in the syntax of makemtd.sh - the "size" parameter should now be in kilobytes (multiples of 64) and not in bytes - e.g. makemtd.sh mtd5 192 auto_minix. The valid sizes are: 64; 128; 192; 256; 320; 384; 448; 512; 576; 640; 704; 768; 832; or 896. If an invalid/unsupported size parameter is given, the script will simply print an error message and will stop. Be sure to not try to create a new partition that is bigger than the available flash space, or you will trash your router.

22. A new shell script - linecount.sh - returns the number of lines in a text file (or "-1" on error). Empty lines and comment lines (beginning with a "#") will be ignored. If you want comment lines to be counted as well, then supply the switch: "--with-comments".

23. A new shell script - check_env - this is a rough-and-ready check for bootloader environment fragmentation (Adam2 routers only). It returns 1 if the bootloader appears to be fragmented, and 0 if it does not appear to be fragmented.

The RouterTech Development Team, 12 September 2009

version 2.9 (20090415) (15 April 2009) - changes (compared with v2.8)

1. The wireless access point (AP) in the firmware for wireless routers is now turned OFF by default. This means that the wireless AP has to be enabled manually in the wireless settings in order to get wireless functionality. Disabling the wireless AP by default means that far more memory will be available when the firmware configuration is reset to defaults, and should assist with firmware upgrades and with dealing with other problems.
2. Added eth1, eth2 and eth3 to config.xml for 4-port routers. This may solve the pppoe "shared" problem. But it should have been done anyway.
3. Darkstat has been upgraded to v3.0.712.
4. Busybox upgraded to v1.12.4.
5. Enabled TCPMSS clamping in the kernel for the low memory (i.e., 2mb flash and 8mb RAM) routers. The MSS is clamped to pmtu. A new environment variable ("mss_value") has been introduced. If this is present, then the MSS is set to that value (e.g., setenv mss_value 1452 && /sbin/reboot).
6. The default MTU/MRU in config.xml and sysdef.xml have been changed to 1400. This should solve some connectivity issues. The value can be increased in the web configuration (e.g., to 1492 for pppoa, if desired).
7. Trimmed down the firmware for low memory routers. These have been removed from main repository: netshaper_mod.o; makemtd.sh; netshaper
8. Trimmed down Busybox for all firmwares. This should free up some RAM for the router. These commands have been deleted from busybox: klogd; logread; pidof; getopt; cpio; unzip; uncompress; bunzip2; dirname; cmp; find; ftpget; ftpput; chgrp; chown; cut; length; syslogd; telnet; traceroute; mknod.
9. The autoexec.sh facility has been extended. It is now possible to use from autoexec1.sh up to autoexec7.sh in the same way as autoexec.sh is used.
10. Bug in RT "Configuration" (not writing the entry for USB correctly into the environment) fixed.
11. Work-around for errata (a.k.a "bugs") in some AMD/Spansion flash chips in some Asian (dual antenna) models of the Aztech DSL605EW.
12. Work-around for problem whereby some Windows software firewalls interfere with some functions (e.g., "RT Configuration", "Run Command", etc).
13. Reverted to earlier versions of pppd, and dproxy.
14. Added new environment variable ("PING_URL"). If present, its value will be used to the WAN connection ping checks (instead of google.com).
15. Separate AnnexB firmware images added for the standard (i.e., TNETW1130-based) wireless, and non-wireless 4mb-flash firmwares. This means increased choice of DSP/tiatm drivers, without increasing the firmware size. As usual, all firmware images for AnnexB are in a separate "annexb" directory.
16. DSP/tiatim v7.05 (AnnexA and AnnexB) and v4.x (AnnexA only) have been added to
the standard wireless, and non-wireless 4mb-flash firmwares, and v6.x has been removed from the AnnexA firmwares.

The RouterTech Development Team, 15 April  2009

version 2.8 (20081123) (23 November 2008) - changes (compared with v2.7)
  1. Fixes for pppoe connectivity issues with some ISPs.
  2. New 4mb-flash firmware images for non-wireless Adam2 routers with 4mb flash.
  3. Non-wireless firmwares have had their DSP drivers updated to 7.03.
  4. Tinyproxy has been removed from firmwares for non-wireless routers with 2mb flash. The firmware images had become too big to fit in the mtd partitions.
  5. This is the last firmware release for routers with 2mb flash.
  6. Only single (combined) firmware images are now supplied. If your router requires separate images, then you have to convert your mtd partitions to use single image upgrades. The
  7. Router Repair Tool can assist you in this process.
  8. New version of Busybox (1.12.2).
  9. More support for QOS has been added to wireless firmwares and "4mb-flash" non-wireless firmwares. Hopefully QOS will work better now. This is still work-in-progress.

The RouterTech Development Team, 23 November 2008

version 2.7 (20081005) (05 October 2008) - changes (compared with v2.6)
  1. New "
  2. RT Configurations" menu (under the "Tools" menu). This provides the means of configuring some RouterTech features from the web interface. If you are upgrading from a previous version of the RouterTech firmware, then the first thing that you must do is to visit the new "RT Configurations" menu, to configure the RouterTech extras.
  3. New version of darkstat, which includes a pppoe fix, and information on when each host was last accessed. It also has a new "--no-dns" switch, which is more memory efficient, but does not display some stats. It should probably be always used on routers with 8mb RAM. On low memory routers, you can also limit the size of the darkstat log entries ("--hosts-max" and "--hosts-keep").
  4. The darkstat status page on the webui should hopefully be able to figure out the right IP address (instead of hard coded, and the information is now displayed by opening a new browser window.
  5. "makemtd.sh" now takes an optional 3rd parameter - "auto_minix". This automatically creates a minix filesystem on the newly created mtd partition, reboots the router, and sets the router to mount that partition automatically on each bootup. This only works if the new mtd partition is one of these sizes: 64kb, 128kb, 192kb, 256kb, 384kb, 512kb, 640kb, or 768kb (expressed in bytes).
  6. Separate AnnexA and AnnexB images for the 1350A wireless firmware. This allows us to add more choices of dsp and tiatm drivers.
  7. USB and Cron are now disabled by default, and have to be enabled. See the "RT Configurations" page. Some features (e.g., memchk, cron_la, and checksync) require cron to be active. If any of them is selected fromthe "RT Configurations" page, cron will be enabled automatically.
  8. New version of Busybox (v1.12.1).
  9. Fixes for some DNS problems with one ISP.

The RouterTech Development Team, 05 October 2008

version 2.6 (20080723) (23 July 2008) - changes (compared with v2.5)

1. Busybox has been upgraded to v1.x. This has led to some space savings, while increasing the number of busybox applets quite dramatically, because we have been able to remove some standalone programs (see below). It also means that nearly the same command set is supported across all platforms (i.e., 2mb flash and 4mb flash).

2. msmtp has been removed in favour of busybox sendmail.

3. Standalone stty and sync have been removed in favour of the busybox equivalents.

4. Experimental darkstat binary (see http://dmr.ath.cx/net/darkstat/). It has to be run after a WAN connection is established. Included is  a shell script (onconnectWAN) that can be used to schedule it to run on each bootup (by setting "darkstat_enable" to "1" in the environment). 
   * try:  darkstat -i ppp0
   * or:   setenv darkstat_enable 1
In order to see the output of darkstat, point your brower to (or click on "Darkstat" in the "Status" menu in the router's WEB interface). For wireless routers, because the (closed source) wireless AP driver is incompatible with some tcpdump packets, packets (out interface) will get dropped, and so the stats for that interface will show zero bytes transferred. This problem does not exist with non-wireless firmwares. Unfortunately, since we do not have the sources for the wireless AP driver, we cannot fix the problem with wireless routers.

5. "arp" problems have been fixed.

6. Replaced the standalone arp with busybox arp.

7. Fixed DSP 7.3A driver for standard firmware, and dsp73B replaces dsp6B for Annex B. 1350A firmware upgraded to dsp72.

8. Added code to identify the flash chip manufacturer. The flash chip information is written to /proc/flashinfo
   * It can be read by: "cat /proc/flashinfo"
   * It is also displayed in the system diagnostics

9. The bwbasic BASIC interpreter has replaced tcl (wireless routers only) .

10. The led.conf file can now be loaded from a minix partition if a full path name is supplied - and as long as the minix partition is mounted via an "RT_init_x" command

   * e.g., setenv led_conf /nvram/led_blahblah.conf 

11. "Led" command added - to manipulate the router's lights. Run "Led" without parameters to see the syntax.

12. Updated miniupnpd.

13. "Assign ISP DNS" added to wireless 1350A firmware.

14. A whole load of new busybox applets have been added.

15. Small bug in tinyproxy fixed.

16. Dropbear has been upgraded to v0.51.

17. Default ip-up script added, for commands that will be executed when WAN connection is established. This calls crond and darkstat if they are enabled. You can add more commands to be executed by adding to /var/tmp/ppp_ip-up, or /var/tmp/onconnectWAN.

    The RouterTech Development Team, 23 July 2008

version 2.5 (20080331) (31 March 2008) - changes (compared with v2.3 and v2.4)

New features

  1. Consolidates the v2.3 and v2.4 branches
  2. Problem with saving DDNS settings (in the 1350A version) fixed
  3. New facility for executing commands earlier during bootup - by "RT_init_x" entries in the environment ("x") stands for a number or some other distinguishing letter/number: e.g.,
          setenv RT_init_1 "mount -t minix /dev/mtdblock/5 /nvram" (will execute "mount -t minix /dev/mtdblock/5 /nvram" very early in the boot process)
  4. Transparent operation supported for Tinyproxy (run "tinytrans.sh" rather than just "tinyproxy")
  5. ftpfs support added to enable the mounting of directories from an ftp server onto the router (wireless routers only). Enable this by running "insmod ftpfs.o" and then using "ftpmount" to mount the ftp server -  e.g., ftpmount root:password@myftp.com/root/export /ftpfs  (this mounts the directory "/root/export" on the ftp server "myftp.com", onto the router's "/ftpfs" directory).  It is generally a good idea not to supply your password as a parameter, since ftpmount will ask for it.
  6. IGMP snooping removed from the web interfaces of routers that don't support it
  7. New scripts added to set up cron jobs more easily (cronjob.sh, cronjob-env.sh). Run the commands to see the syntax.
  8. Tcl interpreter removed
  9. UPnP bugs fixed (thanks to mstombs)
  10. New upnp daemon based on miniupnpd (see upnp.txt
  11. Bugs with regard to multiple sntp instances fixed
  12. New dsp/atm drivers (7.03) added to the wireless firmwares (although not for the TNETW1350A chip)
  13. Realtek switch supported added to the TNETW1350A wireless firmware (this allows the firmware to now support routers using the Realtek switch such as the PTI 8505G, and those with the IP175C switch, such as the Solwise SAR605EW router).
  14.  "chksync.sh" replaced with simply "chksync", to reduce confusion :-)
  15.  More led.conf files added
  16.  Fixed "lanbridge3" problem in 4 port routers
  17.  Fixed "lanbridge0" to "lanbridge2" problem in 1 port routers
  18. Separate firmware images no longer required for Adam2 routers with ATMEL flash (e.g., G604T)
  19. New (experimental) feature - "netshaper".  Like the alternative "rshaper", this allows you to limit the bandwidth by IP addresses/ranges - plus a command to configure it: "netshaper"
    "netshaper -d 32768" (will limit the bandwidth of the computer at to 32kbps)
    The netshaper module is NOT loaded by default. Run this command to enable it: setenv "netshaper_enable 1" && /sbin/reboot   
    NOTE that the netshaper facility CANNOT be used in conjunction with rshaper. You have to choose one or the other.  Run "netshaper" without any arguments to see the syntax.
  20. Experimental script to enable "WAN IP local NAT Loopback" (localnat.sh)
    Usage: "localnat.sh UP" to setup/refresh; "localnat.sh init" to install and update on each ppp-up event; "localnat.sh exit" de-installs. 
  21. User writable /etc/ppp/ip-up and /etc/ppp/ip-down scripts, currently used by half-bridge, localnat and upnp, but can be added to.
  22. Experimental support for AnnexB in non-wireless firmwares (look in the "annexb" sub-directory). Please let us know whether this works (or not!).
The RouterTech Development Team, 31 March 2008

version 2.4 (20071020) (20 October  2007) - changes (compared with v2.3)

New features

  1. Support for the TNETW1350A wireless chipset. This requires a separate firmware image (with "1350A" in its name)
The RouterTech Development Team, 19 October 2007

version 2.3 (20070605) (5 June 2007) - changes (compared with v2.2)

New features

1.  Added all private IP ranges to "Allow" list in tinyproxy.conf
2.  Added all private IP ranges to "Run Command" and "System Diagnostics"
3.  Enabled "Enforce MRU" by default in PPPoE connections
4.  New command: "cm_cli_ex" - a version of "cm_cli" that allows redirection of the output
5.  "getenv"/"printenv" amended. If you want to use the command to show the value of an environment variable in a way that is compatible with earlier releases, you have to supply "-c" (or "-compat") as the second parameter:  e.g., "getenv mtd0 -c"
6.  Fix for Windows Vista: set "tcp_window_scaling" to zero (i.e., disabled)
7.  New command : "printf"
8.  New feature - "rshaper". This allows you to limit the bandwidth by IP addresses/ranges - plus a command to configure it: "rshaperctl"
       - e.g., "rshaperctl 32768" (will limit the bandwidth of the computer at to 32kbps)
    The rshaper module is NOT loaded by default. Run this command to enable it: setenv "rshaper_enable 1" && /sbin/reboot
9.  New facility for executing commands on bootup - by "RT_cmd_x" entries in the environment ("x") stands for a number or some other distinguishing letter/number: e.g.,
      setenv RT_cmd_1 "rshaperctl 32768" (will execute "rshaperctl 32768" during bootup)
10. New scripts:
    * filesize.sh - report the size of a file
    * filecomp.sh - compare the sizes of two files
11. Experimental half-bridge support (see pppHB.sh). Let us know if it works for you! See
here for details and a FAQ.
12. "vi" removed to free up some space
13. New command: ether-wake - to wake up PCs on a LAN
14. New command: poweroff - to power down the router internally (you still need to flick the off switch afterwards)
15. New command: shutdown - to shut down the router's operating system (you still need to flick the off switch afterwards)
16. "nbtscan" removed
17. "ez-ipupdate" removed
18. "cfgconv" removed
19. The number of dsp and atm drivers has been reduced (only choices are between dsp62A, dsp71A, and dsp6B)

New features applicable only to wireless routers, or non-wireless routers with 4mb flash and 16mb RAM (e.g., ADSL2MUE)

1.  Add support for TCPMSS in kernel and add iptables command, to overcome MTU issues with some websites. Unfortunately this eats some RAM, and so it has not been added to RAM-challenged routers (i.e., those with only 8mb RAM).

2.  New scripts:
    * makemtd.sh - create a new mtd partition automatically
    * deletemtd.sh -  delete the mtd5 partition and restore the mtd partition table to the values before the new mtd partition was created

3.  Tcl interpreter added. You can either run it interactively (by running "tcl") or you can use it as the command shell for scripts
    - e.g.,
    puts "Hello World"

4.  More friendly text editor - "easyedit" (renamed "edit" in the firmware) added

5.  scp support added (this involved upgrading to bug-fixed versions of uClibc's ftruncate64.c and truncate64.c). You can now use WinSCP or any other scp client to upload/download files to/from the router

6.  cifs support added. This allows you to mount shared network drives on your router. There is a ready-made mountpoint "/cifs" that can be used for mounting
       mount -t cifs /<anything> <mountpoint> -o user=MyWindowsLoginName,pass=MyWindowsPassword,unc=//<server_ipaddress>/<share_name>
    mount -t cifs /blah /cifs -o user=freddy,pass=ddyfre,unc=//
    This will give you read/write access (at "/cifs/") to the shared directory: ""

    WARNING: You MUST unmount any shared drive before any attempt to upgrade a firmware, and before turning off your router.

7.  Minix (read/write) filesystem support added. This allows you to create read/write Minix partitions on the router.
     There is a ready-made mountpoint "/nvram" that can be used for mounting.
    The steps to using the minix filesystem support are:
        A. create a new mtd partition - in multiples of 1024 (e.g., "makemtd.sh mtd5 131072")
        B. reboot the router
        C. convert it to minix (e.g., "mkfs.minix /dev/mtdblock/5")
        D. mount it (e.g., "mount -t minix /dev/mtdblock/5 /nvram")
           After this, you can write/read from/to "/nvram"
        E. If you want this to be mounted automatically during bootup, use the "RT_cmd_x" functionality
            e.g. setenv RT_cmd_2 "mount -t minix /dev/mtdblock/5 /nvram"
        F. The system will look for "/nvram/startup.sh" upon boot up, and will execute it if it is found
        G. Always unmount the partition before rebooting, turning off the router, or flashing a new firmware
           (e.g., "umount /dev/nvram") otherwise you WILL lose data.
    1.  This feature works okay in our tests - but your mileage may vary. Do NOT use this feature unless you are very familiar with unbricking bricked routers.
    2. You MUST unmount any minix partition before rebooting or turning off the router, and before any attempt to upgrade a firmware,

     otherwise the upgrade will NOT happen!!!!!

8.   New commands for minix filesystem support:
        mkfs.minix - create a new minix filesystem
        fsck.minix - check a minix filesystem

The RouterTech Development Team, 5 June 2007

version 2.2 (20070227) (27 February 2007) - changes (compared with v2.1)

New features

  1. Removed stray '`' character on "home" page :-)
  2. Interactions with the bootloader environment for Adam2-based routers now operate directly on  the Adam2 environment "file" (/proc/sys/dev/adam2/environment) instead of /proc/ticfg/env
  3. Works around problems with reading MAC addresses by saving them directly into files in /var/tmp/ and then reading those. This makes the issue of disappearing /proc/ticfg/env files less of a problem  for Adam2-based routers
  4. User supplied DNS now works (you have to disable "Use Peer DNS" on the ISP connection page)
  5. Default date/time is set on boot-up to the date/time that the firmware was built
  6. Fixed bug whereby the wrong WEP key is displayed on the "home" page
  7. Some memory optimisations should make everything work smoother
  8. New NAT optimisations should result in better P2P performance
  9. New commands introduced: "getenv" and "setenv" - there is no longer any need to manipulate the bootloader environment files directly: use these commands instead  (see 
  10. rt_commands.html)
  11. New scripts: "routertech_start_inits.sh" and "routertech_misc_inits.sh", which are called during init (they should NOT be called directly)
  12. Wireless Production 1 has been added to the "wireless" section
  13. New support for routers with ATMEL flash chips (e.g., some DLink G604T/G624T)
  14. Facility to choose between dsp versions (for wireless routers only (by setting the appropriate value for a new bootloader environment variable, "dsp_ver")) - e.g., running: setenv dsp_ver dsp5A && /sbin/reboot would select DSP v5, AnnexA. Choices are between dsp5A, dsp62A, dsp71A, and dsp6B (i.e., dsp v6, AnnexB - note that the AnnexB selection is untested). Note also that all these are case-sensitive. The default is dsp62A.
  15. Facility to choose between atm driver versions (by setting the appropriate value for a new bootloader environment variable, "atm_ver") - e.g., running: setenv atm_ver dsp5A && /sbin/reboot would select the "tiatm.o" driver, version 5. Choices are between dsp5A and dsp62A. Note also that all these are case-sensitive. The default is dsp62A.
  16. Facility to choose between different versions of the LED configuration file. - e.g., running: setenv led_conf led.sar600 && /sbin/reboot would select the LED file for the Solwse/Axtech 600E* series. Choices are between led.g604t, led.generic, led.sar600, and led.adsl2mue. The default is led.generic.
  17. New command: "wakelan" - to wake up PCs on a LAN
  18. Enhancement to the "Run Command" function - you can now click on a "Command List" link to obtain help about the RouterTech commands (see rt_commands.html)
  19. New scripts: "cron_disable.sh" (to disable cron) and "cron_enable.sh" (to re-enable cron). You should only run cron_disable.sh if you won't ever need to setup "cron" jobs. This should free up some memory, to be used for other things. Note however that there are many things that depend on "cron" (e.g., chksync), so you should not disable cron unless you are really sure that you want to lose all that functionality.
  20. New command: "tinyproxy" - web proxy and URL filter (the URLs to be blocked must be put in /var/tmp/tinyproxy.filter, before starting tinyproxy)
  21. Update the code base in line with the latest Acorp patches.
The RouterTech Development Team, 27 February 2007

version 2.1 (20061029) (29 October 2006) - changes (compared with v2.0)

New features

  1. Bug in the checksync feature fixed
  2. Functional DDNS (with no-ip support)
  3. A new msmtp client added (to send emails from the router)
  4. USB support added (not available via the web interface). This can be disabled by adding "usb_enable no" to the environment (i.e., run this command once, from a telnet/ssh command prompt echo "usb_enable no" > /proc/ticfg/env)
  5. Auto execution of shell scripts at bootup added. This requires entries in the environment (/proc/ticfg/env). If there is any entry in /proc/ticfg/env that points to a shell script (i.e., ending with the extension ".sh") that shell script will be executed everytime the router boots up.  There is a default "autoexec.sh" provided, which just runs any commands passed to it
  6. Several new commands added. See the
  7. rt_commands.txt file for details. Some of them can be used for the auto execution feature
  8. The old (now obsolete) no-ip feature has been removed. It is now part of the DDNS functionality

Known issues

The non-wireless versions (with only 8mb RAM) can sometimes struggle in low memory situations and produce a  sluggish web interface. In such cases, memory can be freed up by disabling unneeded features. Prime candidates are upnp, snmp, and IP Accounting, and by running the memory optiomiser periodically (e.g., via a "cron" job). The crontab file is "/var/spool/cron/crontabs/root". A sample can be found here. Running the memory optimiser periodically is easy to do now - see the AUTOEXEC example for memchk.sh in rt_commands.html.

The RouterTech Development Team, 29 October 2006

version 2.0 (20060904) (4th September 2006) - changes (compared with v1.0)

New features

  1. Spanking new RouterTech web interface :-)
  2. The "System" menu is now easily accessible from the top menu bar
  3. More detailed information on the startup page
  4. Date/time stamps in the system log
  5. A functional SNTP (under the "Advanced" menu) - this allows your router to synchronise its date/time from public NTP servers - NOTE that the router will detect a huge time difference when the date/time is corrected, and will log you out from the web interface if you are logged in - you will need to log in again
  6. DNS configuration (under the "Setup" menu) - this allows you to specify your ISP's DNS servers manually
  7. IPAccount (enabled under the "Advanced" menu, and observable under the "Status" menu) - this allows you to see who is using all your bandwidth!
  8. System Diagnostics (under the "Tools" menu) - this gives you very detailed information about what is going on inside your router
  9. Optimise RAM (under the "Tools" menu) - this attempts to recover RAM lost due to memory fragmentation and leakage
  10. Run Command (under the "Tools" menu) - this allows you to run from the web configuration interface almost any command that you can run from the login shell. Use this feature with EXTREME CAUTION. You could easily trash your router with it. YOU HAVE BEEN WARNED!
  11. Better organisation of the information on the "Modem Status" page
  12. The ability for the router to monitor (at specified hourly intervals) whether the external (WAN) connection is active, and to reboot itself it it has lost its sync upon a check being made. This feature is experimental and is only for those who know what they are doing. The feature is enabled by making an entry for "checksync.sh" in "/proc/ticfg/env". Note that if you mess up that file, your router may well become a brick, and you will need to try and recover it. For those who are brave enough, entering the following command (only once) from the command prompt in a telnet or ssh session, and then rebooting the router,will do the job: echo "checksync.sh 6" > /proc/ticfg/env  (this means "do the sync checks every 6 hours" - you can specify any number between 1 and 24 - and if you want to turn it off, specify 0)

Removed features (superceded and/or no longer useful)

  1. Quick configuration
  2. rdate
  3. ud
  4. nbtscan (only removed from the AR7RD firmware)
  5. ez-ipupdate (only removed from the AR7RD firmware)

Other changes

  1. The SFT server is no longer enabled by default - but it can be executed by anyone who wants to run it manually.

Known issues

  1. No USB suppport [Note: fixed in v2.1]
  2. SNMP will probably still kill the router, requiring a reboot (it eats memory, until the router runs of out RAM and crashes). The new IPAccount feature provides some of the information that would normally be sought by using SNMP
  3. UPnP will also probably do the same as SNMP [Note: fixed in v2.5]

The RouterTech Development Team, 4 September 2006

version 1.0 (20060506) (6th May 2006) - changes (compared with the stock TI firmwares)

  1. Removed the user "isp" and password "isp" from the default config.xml. The presence of these settings in the default config.xml was a serious security risk, in that it meant that anyone with access to your PC can login to the router as "isp, isp" and the begin to wreak havoc with your settings!
  2. Various changes made to the default /etc/init.d/rcS (e.g., the use of a prime number for /proc/sys/net/ipv4/netfilter/ip_conntrack_max - this results in better performance)
  3. Default settings provided for several UK ISPs
  4. Some buggy code was fixed
  5. Several new features:
  6. Extra features enabled in Busybox applets
  7. Fixed the "manager_get_defaults - !node" bug 
  8. Several extra commands (some of which have been referred to above). If you are not familiar with Linux/Unix, then you are probably not interested in what follows.
These are the extra commands, and their locations:

  • chgrp
  • chmod
  • chown
  • df
  • egrep
  • grep
  • hostname
  • kill
  • mkdir
  • more
  • mount
  • netstat
  • pidof
  • rmdir
  • sed
  • touch
  • true
  • uname

  • basename
  • clear
  • cmp
  • dirname
  • du
  • expr
  • find
  • free
  • head
  • id
  • killall
  • telnet
  • test
  • tftp
  • traceroute
  • which
  • xargs

  • bunzip2
  • bzcat
  • cfgconv (converts from binary config to xml and vice versa)
  • cpio
  • crond
  • crontab
  • ftp
  • ftpget
  • ftpput
  • gunzip
  • gzip
  • klogd (kernel log daemon - allows you to log kernel messages)
  • logger (allows you to write a message to the system log)
  • logread (allows you to read system and kernel logs when directed to the circular buffer, rather than to a file)
  • rdate (retrieves date and time from ntp time servers)
  • nbtscan
  • ez-ipupdate
  • sft (small ftp server, running on port 5556 - if you have the sft client, you can upload files from your PC to the router using the same port)
  • syslogd (syslog daemon - allows you to have customised system logs)
  • top (displays currently running processes and important information about them)
  • ud (uptime daemon - reports on system uptime)
  • uncompress
  • unzip
  • zcat
The RouterTech Development Team, 6 May 2006

Visit our forum (http://www.routertech.org/)