Bienvenido! - Willkommen! - Welcome!

Bitácora Técnica de Tux&Cía., Santa Cruz de la Sierra, BO
Bitácora Central: Tux&Cía.
Bitácora de Información Avanzada: Tux&Cía.-Información
May the source be with you!

Saturday, September 22, 2012

DD-WRT - Tomato - OpenWRT

List of wireless router firmware projects
Linksys (a division of Cisco) manufactures a series of network routers. Many models are shipped with Linux-based firmware and can run third-party firmware. The first model to support third-party firmware was the very popular Linksys WRT54G series.
The Linksys WRT160N/WRT310N series is the successor to the WRT54G series of routers from Linksys. The main difference is the draft 802.11n wireless NIC, providing a maximum speed of 270 Mbit/s over the wireless network when used with other 802.11n devices.

OpenWrt vs DDWrt

Overall, OpenWRT if you really want flexibility. I dumped DD-WRT (WRT54G) for OpenWRT (ASUS WL-500gP) because of this (related to this), haven't had a regretful moment yet. Not even close.
  1. reliability – I am not aware that one is significantly more reliable than the other. Both have quite lengthy release cycles, which have yet another bunch of users complaining about getting moar and moar quality stuff for free and yesterday.
  2. performance – I'm pretty certain it mostly depends on the hardware device and best compatible drivers most of all.
  3. configurability – OpenWRT package management system should win easily here.
  4. ease of use – I liked DD-WRT web UI, I don't have a particular problem with LuCI either. LuCI just got bumped to 0.10 branch in 10.03.1-rc5, which is another step up. But overall I'm definitely loving OpenWRT's /etc. Things in there make sense when you need them to.
  5. support/docs – Both have phpBB forums with significant traffic.
OpenWRT all the way. Reasons:
  • complete control
  • modularity
  • well organized
Given these parameters, you can judge the coding is in good hands. I am a developer, and I find OpenWRT very modular, very organized, with no limitations imposed. I can pick the modules I like, there are so many available. I can write an application straight in C or C++ and make it work under OpenWRT. I can change the device driver code to suit my needs.
And the whole procedure is documented well enough. Even if you are not a developer, you will find the modular approach in defining your system, stunning. A job well done by the OpenWRT team. And yes, I have used DD-WRT before using OpenWRT.

VPN support for DD-WRT
The smallest version of dd-wrt that supports VPN services is Mini-VPN which requires a router with a 6 meg flash chip. You need to buy a router that has enough flash memory, and that means you can't get the cheapest thing you can find.

As far as VPN setup on the router.. It's pretty straight forward with the GUI. Just make sure redirect-gateway def1 is set... And all traffic will be redirected through the tunnel.
NOTE:  If all else fails
The DIR-600 has a special D-Link firmware mode that runs a HTTP server on for uploading new firmware. If you get locked out and/or brick your device, you can get into this mode by holding down the reset button for 30-45 seconds while booting the device. Note that the IP of the server it runs is 192.168.*0*.1.

Having problems with port forwarding? Using build 15778 or later? Check out Port Forward Troubleshooting for more info. Also for loopback code testing, reference this post.

List of devices possible to run DD-WRT and not ported yet

I think we should start a devices list. maybe u guys have one around and we get it on.
there are some points that u have to consider before dd-wrt is able to run on a device:

    - atheros soc/wisoc cpu
    - >=4mb flash
    - >=16mb ram
    - we need a donated device here in germany->u wont get it back. Collecting with other forum members is possible to buy one.

DD-WRT can not fit into 2 MB flash on an Atheros device
But possible for broadcom based devices with a minimun of 2Mb.
for Atheros and Ralink based devices a minimum of 4Mb is needed.

if u have verified that your device fits the requirements above u must do:
Here is a list from linux-mips with maybe possible devices

why the DLink DIR-300 A1 is not supported fully?
Dir-300 A1 has support for dd-wrt. 
It has 4MB flash and 16mb ram and a very fast CPU (nearly same like WRT54GL).
It´s true that still need some fine ajust, but dd-wrt already working.
Is an better option for WRT54G limited versions (2MB ROM and 8MB RAM)

Atheros AR7240-AH1E @ 400 MHz and AR9285-AL1E 32 MB 2 MB 2.4 GHz JUT0  
The large chip is an AR7240 network processor SoC which includes a 5-port 10/100 Ethernet switch. Its MIPS32 24K processor core is clocked at 400 MHz and has a 16 bit DDR2 memory interface.
The smaller device surrounded by a solder footprint for an RF shield that apparently wasn't needed is an AR9285 single-stream N MAC/BB/radio. 2 MB of flash and 32 MB of RAM finish up the design.
The flash size 2MB has not changed since the question was raised in other WRT120N threads so the answer is still the same:
Not supported and will never be supported.
The WRT120n is atheros based and to install DD-WRT on a router with an atheros chipset would require at least 4mb of flash memory for the firmware. The WRT120n only has 2mb.
You would have to get the flash memory chips upgraded.
Not worth it
Don't go for the cheapo routers - its just not worth it
spend a little more and get a better one, they last longer and give less problems.
TomatoHyperWRT-based firmware. Last released June 28, 2010. Features advanced QoS as well as Ajax and SVG graphs. The Tomato Manual is available at Wikibooks.
TomatoUSB – Based on Tomato; adds support to newer routers.
Tomato is a partially free HyperWRT-based, Linux core firmware distribution for a range of Broadcom chipset based wireless routers, most notably the older-model Linksys WRT54G (including the WRT54GL and WRT54GS), Buffalo AirStation, Asus Routers and Netgear's WNR3500L. Among other notable features is the user interface, which makes heavy use of Ajax as well as an SVG-based graphical bandwidth monitor.

Tomato is a partially free open source Linux-based firmware for several Broadcom-based Wi-Fi routers, including the Linksys WRT54G. The major emphasis of Tomato is on stability, speed and efficiency. It is maintained by Jonathan Zarate[1], who also developed HyperWRT +tofu. Tomato is notable for its web-based user interface that includes several types of bandwidth usage charts, advanced QoS access restriction features, raised connection limits which enables P2P networking, and support for 125 High Speed Mode (marketed by Linksys as "SpeedBooster").
This wikibook serves as the documentation for the Tomato firmware and its variations, documenting features, installation, configuration and use of the firmware.
The following features implemented in the Tomato base firmware over typical OEM firmware and open alternatives such as DD-WRT and OpenWRT:
  • Dynamic interactive GUI using Ajax (a technique for creating interactive web pages that update without reloading), SVG (scalable vector graphics that provide quality graphics within a browser) and CSS-based color schemes (allowing you to change the look and feel of the router configuration screens).
  • CLI (using BusyBox) with access via TELNET or SSH (using Dropbear)
  • DHCP server (using Dnsmasq) with dynamic and static DHCP leases
  • DNS forwarder (using Dnsmasq) with local hostnames, local domain names, and caching of internet addresses
  • Netfilter/iptables with customizable settings, IPP2P and l7-filter
  • Wake-on-LAN
  • Advanced QoS: 10 unique QoS classes defined, real-time pie graph display of prioritized traffic with drilldown into class details
  • Bandwidth graphing/statistics: real-time, last 24 hours, daily, monthly
  • Wireless modes: access point (AP), wireless client station (STA), wireless ethernet (WET) bridge, wireless distribution system (WDS aka wireless bridging), simultaneous AP and WDS (aka wireless repeating)
  • Dynamic DNS service with ezUpdate and services extended for more providers
  • Syslog viewable through the GUI (also downloadable)
  • SES button control
  • JFFS2
  • CIFS client
  • Adjustment of transmit power of wireless LAN, antenna selection, and 14 wireless channels
  • 'Boot wait' protection (increase the time slot for uploading firmware via the boot loader)
  • Advanced port forwarding, redirection, and triggering with UPnP page to view and delete UPnP forwarded port mappings
  • Advanced access restrictions
  • Init, Shutdown, Firewall, and WAN Up scripts
  • Uptime, load average, and free memory status
  • Reboot ability, although almost no configuration changes require a reboot
  • Wireless survey page to view other networks in your neighborhood
  • Known bugs in Broadcom-based Linksys firmware fixed

Tomato Links

Linksys E2000 / E3000
Linksys E4200 at  2.4GHz over all the Toastman firmware versions
tested PPTP PPTP Client (it's in VPN Builds) and OpenVPN server and both work fine.
EDIT - PPTP server added in March 2012 - thanks to Teaman
What version to use?


When you get to the download site:
  • First - decide what branch you want. This depends on your router.
  • If it's for the older MIPSR1 routers like WRT54 series, choose "ND"
  • If it's for newer MIPSR2 routers like RT-N16, WNR3500L, Linksys "E" series, then choose "RT"
  • Choose the RT-N branch for some recent MIPSR2 routers (e.g E4200, RT-N10U, RT-N12B1, WNR3500L v2).
  • The E4200 needs the newer "N" wireless driver to get support for the 5GHz radio. You can still use the RT version IF you don't need the 5GHz radio to work. But the other routers mentioned can't use the RT version.

Once inside the correct folder, you will have another choice to make:
  • If your needs are simple, and you don't intend to set up a VLAN, then select "STD"
  • If you need the easy setup VLAN GUI, then choose the folder marked "VLAN"
Now choose your build:
  • Mini - no USB, no CIFS, no Zebra
  • MiniIPV6 - no USB, no CIFS, no Zebra + IPv6
  • Std - normal build
  • Ext - normal + Extra utilities + NTFS
  • VPN - normal + Extras + NTFS + VPN
  • VPN-NOCAT - normal + Extras + NTFS + VPN + NOCAT portal
If your router needs USB support, chose a version with "USB" in the title.
There are "tailed" versions for named routers that have special needs.
There's also a "generic" version for routers with 60K nvram.
You cannot flash the 60K NVRAM version on routers that have only 32K, you may brick your router.

K2.4 and K2.6 refer to the version of Linux kernel used for a particular compile. Early routers always used K2.4 (which is smaller/faster/lighter). The newer routers use kernel 2.6 which is necessary to use the Broadcom wireless drivers. The IPv6 support is also more complete. While K2.6 builds can be made for, and do work on the earlier routers such as the WRT54 series, they take more memory and are slower in operation. For this reason you will rarely see them. From time to time developers have made such builds available to allow experimentation with IPv6 on those early routers. The real answer however is to upgrade to a better router.

Project related:

================================== OpenWRT
OpenWrt is an operating system primarily used on embedded devices to route network traffic. The main components are the Linux kernel, uClibc and BusyBox. All components have been optimized for size, to be small enough to fit the limited storage and memory available in home routers.
OpenWrt is configured using a command-line interface (ash), or a web interface (LuCI). There are about 2000 optional software packages available for install via the opkg package management system.
OpenWrt can be run on CPE routers, residential gateways, smartphones (e.g. Neo FreeRunner), pocket computers (e.g. Ben NanoNote), and small laptops (e.g. One Laptop per Child (OLPC)). But it is also possible to run on ordinary computers (e.g. x86).
The project incorporates a wiki,[4] a forum,[5] SVN source version control[6] and Trac for project management, bug-tracking, and code development. Additional technical support is also provided via Internet Relay Chat (IRC).
OpenWrt is described as a Linux distribution for embedded devices.
Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developer, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
Supported Devices

No comments: