Gargoyle Router Management Utility
Gargoyle is a third party firmware for routers based on the Openwrt firmware. It can be described at a high level as a front-end to Openwrt, however there are several packages and custom kernel modules which are not included upstream in Openwrt. As a result, Gargoyle cannot be installed as a set-of-packages to an existing Openwrt installation, and is a separate firmware as far as installation is concerned. Gargoyle is open-source software, and aims to be the first open-source firmware project to place a strong focus on creating a user-friendly interface.
As a developer, or even a casual contributor, you should start here at the Gargoyle wiki developer documentation. You should always consult the wiki for up to date information on getting started (as it is maintained by the community, and this readme may not receive as much attention), however as a brief summary...
The following prerequisites assume a 64bit Ubuntu system. Many devs use virtual machines, and they are perfectly fine for this kind of work.
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs \ git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo npm libelf-dev clang flex bison g++ g++-multilib python3-distutils rsync file wget
NOTE Python is also required and needs to be in your path. Python 3 is recommended. For Ubuntu users, it is recommended to install
python-is-python3 to solve this issue automatically.
Get the source
You've already found it if you're reading this, but lets get it on your local machine. Choose one of the following commands depending on whether you want to use SSH or HTTPS authentication:
After building is complete, you'll have -src/, built/ and images/ folders. Retrieve your compiled firmwares from images, and the packages from built.
Make all targets
Make a single target (e.g. ar71xx)
make ar71xx FULL_BUILD=true
Make a single profile (e.g. ar71xx.usb_large)
make ar71xx.usb_large FULL_BUILD=true
Make a single target (e.g. ar71xx) without rebuilding Openwrt (just packages)
Make a custom target
See the wiki for more detailed instructions.
Please see the relevant Openwrt wiki or ToH entries for your device for the intricacies of installation, upgrading and failsafe for your device.
Where do I get help?
The forums: Gargoyle-Router Forums
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Reporting an issue or bug
If you have discovered a genuine bug or other shortcoming in the firmware that you would like addressed, please first check the forums to see if it has already been raised and addressed. If the community is not able to address it for you, or the consensus is that it is a genuine bug, please raise an issue in GitHub. NOTE Issues are not the place for feature requests. Please keep these to the forum. Include as much detail as you can, such as:
- Gargoyle Version
- Router Make, Model and Version
- What were you doing when the bug occurred?
- What happened (what's the bug)?
- What did you expect to happen (what is your expectation of the proper behaviour)?
- Can you reproduce the bug everytime, sometimes, rarely? (For rare issues, start with the forums and see if others are seeing the same issue)
- Exact steps to reproduce the bug
Gargoyle is copyright (C) 2008-2019 by Eric Bishop Gargoyle is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2.0 as published by the Free Software Foundation, with the following clarificaiton/exception that permits adpating the program to configure proprietary "back end" software provided that all modifications to the web interface portion remain covered by this license:
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- Eric Bishop - Project founder and lead developer
- The community - For using, supporting and contributing to Gargoyle