OpenWrt is a highly extensible GNU/Linux distribution for embedded devices. Unlike many other distributions for these routers, OpenWrt is built from the ground up to be a full-featured, easily modifiable operating system for your router. In practice, this means that you can have all the features you need with none of the bloat, powered by a Linux kernel that's more recent than most other distributions.
Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the restrictions of the application selection and configuration provided by the vendor and allows you to use packages to customize an embedded device to suit any application. For developers, OpenWrt provides a framework to build an application without having to create a complete firmware image and distribution around it. For users, this means the freedom of full customization, allowing the use of an embedded device in ways the vendor never envisioned.
- Free and open-source. The project is entirely free and open-source, licensed under the GPL. The project is intend to always be hosted at an easily accessible site, with full source code readily available and easy to build.
- Easy and free access. The project will always be open to new contributors and have a low barrier for participation. Anyone shall be able to contribute. We, the current developers, actively grant write access to anyone interested in having it. We believe people are responsible when given responsibility. Just ask and you will be able to acquire the access rights you need.
- Community driven. This is not about 'us' offering 'you' something, it is about everyone coming together to work and collaborate towards a common goal.
OpenWrt has long been established as the best firmware solution in its class. It far exceeds other embedded solutions in performance, stability, extensibility, robustness, and design. It is the clear-cut goal of the OpenWrt developers to continue to expand development and ensure that OpenWrt is the foremost framework for innovative and ingenuitive solutions.
To really understand OpenWrt, you need to read About OpenWrt Buildroot!
OpenWrt is not intended to be a ready-made distribution you can directly load onto an embedded device. Instead, the framework allows you to create a firmware tailored to your own particular needs.
Although there are several UI projects available to cover common use cases, OpenWrt is not end user firmware. More advanced tasks require command line operations and basic knowledge about operating a Linux-based system.
Because by employing OpenWrt you can achieve exactly that. This article for advanced users may help you to get started with that.
Because the open architecture enables you to use stateful packet inspection, intrusion detection, and any number of other things that normally require several thousand dollars worth of hardware to do effectively.
At the moment there are more than 2000 software packages in the official repository, and many more provided by the community. The number of packages is evidence of the effectiveness of the OpenWrt build system, which provides the opportunity to easily port packages and create your own firmware.
Because the OpenWrt Project is The Bazaar (please read The Cathedral and the Bazaar (http://www.catb.org/esr/writings/homesteading/)) of embedded routing and does not bother to be a Cathedral. OpenWrt is designed to be user friendly, with an easy to use package management system. You just have to pick the desired components, configure them and in doing so build your own Cathedral. You can also build OpenWrt from source yourself instead of relying on pre-built images. There are numerous other projects built upon OpenWrt, which do exactly that.
Whether it be just an urge to fix that aggravating behavior that is not to your liking or if you just want to share some ideas, we are always welcoming new people to contribute. Since we are completely community driven, we rely on the users to lend their time and expertise to develop the project further. The OpenWrt community is very active and consists of many very dedicated people. The core development of the OpenWrt code base is where the biggest architectural changes and decisions happen. But since OpenWrt is very modular, maintaining the many packages also constitutes a large part of development. Additionally, a well written documentation is just as important as development itself. In your own journey of getting OpenWrt to do what you want it is always helpful for others to update this wiki with new or improved information. Of course every help is welcome to make OpenWrt even better. Everyone is animated to contribute by actively participating in the forum, report bugs and share their findings with fellow community members.
Remember that contributing means taking a look at the bigger picture, to see if something you want changed is benefiting the project as a whole, and not only you respectively your company. Also, if you are new to OpenWrt and are setting up you first installation, remember that learning and reading is an important part of the process; by figuring things out for yourself and solving problems on your own you will pick up a better grasp of the subject and you will probably enjoy yourself in the process. In case you need some nudge into the right direction, there are many people who are willing to help you. Of course, after you solved your own problem, be sure to give back to the community by nicely documenting what you did, to save others some time (and rob them of the joy of solution finding)!
Please don't be deterred by the lack of the common marketing fuzz. OpenWrt presents itself in a very simple way, basically the OpenWrt Wiki and the OpenWrt Forum, and even lacks a cool logo, yet it is a very mighty and ubiquitous software solution for a vast number of use cases.
»A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.«
- — Antoine de Saint-Exupéry
- — Unknown
- — Khalil Gibran
Working with a community does not mean (just) making the code available! Contributing means actively presenting your code to the people who work in that area and then participating in the discussions that fall out of it:
- The real contribution you can make to OpenWrt/ the Linux kernel is not a high numbers of lines of code – it's letting us know about things we haven't thought about yet. And if we do work out how to solve these problems in a mutually satisfactory way then everyone wins. We like interesting problems.
- Maybe you are inventing new interfaces because you are dealing with problems we have not thought about yet. There is no way we can know what those problems are just by looking at the code. So always try to document anything important that you do.
- If you want to help make OpenWrt better, remember: everyone wants to help, but not everyone is as knowledgeable as you. The community atmosphere is what counts, and educating each other is an important step bringing this project to new heights.
See this article on Wikipedia for a list of projects that are based on OpenWrt, either as a project that closely follows OpenWrt development or as a fork in the past. Notably:
about/start.txt · Last modified: 2013/09/13 12:54 by lorema