So, what is this "Gargoyle" Project all about?
Gargoyle is an interface for small, widely available routers such as the Linksys WRT54G series. It provides functionality and customizability above and beyond what the default software provides including sophisticated quality of service and bandwidth monitoring tools. The primary goal of Gargoyle is to provide a polished interface for these advanced tools that is at least as easy to configure as any existing firmware.
Gargoyle is open-source software. Currently, there are several user-friendly router firmware projects. These projects even release their source code, but the license of the user interface prohibits the distribution of modified versions of the software without the author's permission. This means that they do NOT qualify as “open source” or “free software” even though the source code is made available. There are also genuine open-source router firmware projects, but these tend to place a higher priority on providing maximum functionality, rather than on usability. Gargoyle aims to be the first open-source firmware project to place a strong focus on creating a user-friendly interface.
Gargoyle is based on the most recent Kamikaze release of the OpenWrt firmware. In fact, Gargoyle can easily be installed as a series of packages on top of a default Kamikaze installation. In this sense Gargoyle is a “front-end” for OpenWrt. Because it is based on OpenWrt, additional features not provided by Gargoyle can be added by installing custom packages which are available for OpenWrt. Therefore there need not be a tradeoff between usability and customizability, even though more advanced functionality must be configured manually.
What hardware does Gargoyle work with?
I have personally tested Gargoyle on a Linksys WRT54G v2, a Linksys WRTSL54GS, an Asus WL500G premium and a La Fonera. Gargoyle images and packages are provided for routers that have broadcom and atheros chipsets with the mips archetecture, which includes many popular routers. Refer to the Openwrt table of hardware for more details on what chipsets are found in various routers.
Be aware that while older versions of the Linksys WRT54G routers will work newer versions (v5+) will NOT work. This is because these routers do not have enough disk space or enough memory. Consider purchasing a Linksys WRT54GL or WRTSL54GS instead, as these routers should work. If you are in doubt as to what version you have see here.
Gargoyle is open source and there is no reason it couldn't be compiled for any architecture supported by Openwrt Kamikaze, even though packages/images may not currently be available. If you are interested in helping to compile/test Gargoyle on a different architecture please let me know – I would love to provide official packages for a larger number of architectures, but I don't have the hardware to test such packages.
What browsers does Gargoyle work with?
Gargoyle has been tested with Firefox 1.5+, Internet Explorer 6+ as well as the latest versions of Opera and Safari.
In order to view the SVG bandwidth graphics in Internet Explorer you will need to install the SVG plugin from Adobe, while the other browsers support this functionality without needing the plugin.
While every effort has been (and will continue to be made) to support all browsers, it is recommended that you do not use Microsoft Internet Explorer. Internet Explorer, especially the older version 6, is not standards compliant which means that it is more likely that you will encounter problems when using Gargoyle as well as when browsing the Web. Internet Explorer is also much less secure than other Browsers. For this reason, it is highly recommended that you use Firefox, Safari or Opera.
What versions of OpenWrt will Gargoyle work with?
At this time, Gargoyle has only been designed for/tested on the latest Kamikaze 8.09 release. Older versions of Gargoyle (Beta1-3) were designed for the older Kamikaze 7.09, but are no longer supported. An effort will be made to keep Gargoyle compatible with the latest official releases of OpenWrt. However, only official releases will be supported. You're on your own if you want to get Gargoyle working with the OpenWrt Trunk, which is updated daily.
Currently, there are no plans to back-port Gargoyle to work with White Russian.
Is Gargoyle a fork of OpenWrt?
No. Gargoyle is a front-end/web interface for OpenWrt, not a fork. However, unlike X-Wrt or LuCI several kernel patches have been incorporated that make it impossible to install via the OpenWrt package system and still use all available functionality.
Is Gargoyle a fork of X-Wrt or LuCI?
No. All three are front-ends for OpenWrt. However, they share no code in common. Gargoyle (at least the web interface portion) was written entirely from scratch.
What is the point of starting an entirely new interface instead of contributing to an existing project?
While X-Wrt, LuCI and Gargoyle are very similar, there are distinct difference between the goals of the projects.
Both X-Wrt and LuCI seems focused on providing a web interface that provides maximum functionality, but this often comes at the expense of making the interface straightforward to understand and to use. Gargoyle is founded on the principle that it is more important to have an interface that is usable than one that has maximum functionality. The functionality available should be very simple and straightforward to configure – that's the whole point of having a web interface rather than using SSH to access the router and configure it via the command line.
What about Tomato and DD-Wrt? They certainly have very nice user interfaces. Aren't they open source projects?
No. While both of these projects 1) provide source code and 2) run on top of GPL software, the license of the user interface prohibits the distribution of modified versions of the software without the author's permission. This means that they do NOT qualify as “open source” or “free software” even though the source code is made available.
Is Gargoyle Open Source? If so, what license is it released under?
Yes. Gargoyle is released under the terms of the GNU General Public License version 2.0 as published by the Free Software Foundation, with the following clarification/exception that permits adapting the program to configure proprietary “back end” software provided that all modifications to the web interface portion remain covered by this license:
What is the reasoning/rationale behind releasing gargoyle with the additional clarification/exception to the GPL?
The idea is to make Gargoyle and therefore Openwrt more attractive for companies to use in their new hardware. This is a good thing because it encourages hardware companies to make their hardware compatible with open-source software. Companies benefit because they can still keep some functionality proprietary. Further, even though some parts of the back-end may remain proprietary, any improvements made by such companies to the interface/operating system (which is also GPL software) must be released under the GPL, and therefore will benefit the free software community.
Also, this clause explicitly states what is NOT permitted. The GPL was designed more for standalone programs that have to be compiled rather than a web interface like Gargoyle. The last sentence in the first paragraph clarifies what is considered a work “based on” a web interface such as Gargoyle.
The screenshots you have posted look really nice but when I try viewing Gargoyle on my Windows PC, the fonts, especially the small ones, look really grainy and ugly. How do I make it look like what I see in your screenshots?
The problem here is that Windows does a really horrible job of rendering fonts. Most browsers (including Opera and Firefox) use the operating system's system for rendering fonts. The best solution to this issue, short of switching operating systems is to use the windows version of Safari, which uses it's own font rendering engine. Therefore, if you use Safari, the fonts will look pretty, even in Windows.
NOTE: While switching operating systems may seem a bit drastic, it has lasting benefits, and you may want to consider it. If you do decide to make the switch, I recommend buying an entirely new hard drive to put the new Operating System on. The tainted Windows drive should be re-formatted, blessed by Monks from the Order of Richard Stallman and subsequently disposed of in the fires of an erupting volcano. You can never be too careful when disposing of toxic software.
Why do you only report bandwidth usage on the WAN interface? All the other firmwares allow me to monitor ALL the interfaces!
This was a well thought-out decision, and there are several reasons for this. Basically, bandwidth between local hosts on a LAN is almost always plentiful and cheap. Typically one person/organization owns all of the hardware and networking cable involved. Bandwidth to remote hosts, however tends to be slow and expensive. You have to pay a monthly fee for your internet connection and many ISPs are now implementing bandwidth caps. It is therefore almost always more useful to know how much bandwidth is being used on the WAN interface rather than on the local network or the combined bandwidth.
Of course, if there wasn't a trade-off involved there would be no reason not to include all interfaces. However, the bandwidth monitor takes up memory and disk space proportional to the number of different things it is monitoring. In order to be able to monitor static ips, upload qos classes and download qos classes a lot of memory is necessary and will strain the limits of some systems. The reason other interfaces are not monitored is because I think it is usually more useful to have more complete data on the WAN interface than significantly less data on all the interfaces.
However, I can be dissuaded from this decision if a substantial portion of the user base disagrees. Feel free to share your thoughts on the forum.
All the other firmwares have feature X! I want feature X! Gimme, Gimme, GIMME NOW!
Be aware that Gargoyle is a very new project and there are still a lot of things that can be added/improved upon. Be patient, if the feature you want is popular (based on current opion on the forum/emails I have received) it will likely be implemented in the near future. I can think of at least five things off of the top of my head I want to get working but haven't gotten aroud to yet.
That said, the very BEST way to get feature X working is to implement it yourself. Gargoyle is an open source project. I would like nothing better than to get a lot of user contributions. I will endeavor to scrutinize all submissions as soon as they are made and get back to contributers very quickly.
I'm interested in contributing to Gargoyle. What should I do?
Contact me, or send an email to eric[AT]gargoyle-router.com. I'll be happy to discuss any proposed changes you want to implement, or to review any changes you have already implemented – though I can't guarantee I will incorporate your changes.
For anyone interested in contributing heavily I will grant SVN commit access to anyone who has made three contributions/patches that have been accepted into the project. I would really like to make this a community project, expanding the number of developers to a much larger number than the current total of one.
Where can I get more information on the implementation details of Gargoyle?
See the developer documentation.
I'm interested in donating to your project, what should I do?
I'm interested in hiring you as a contractor to implement new functionality. Are you interested?
Very likely. Please contact me directly and we can discuss the details.
Is there a forum where I can discuss this project with other users?
Yes. Please go here.