Table of Contents

​About OpenWrt

OpenWrt ​is a highly extensible ​GNU/​Linux ​distribution for embedded devices ​(typically wireless routers). 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.

What is OpenWrt?

Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with optional 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.

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 the OpenWrt build system!

What is it not?

OpenWrt is not intended to be a distribution you can load onto an embedded device and expect to do everything you want out of the box. Instead, the OpenWrt framework allows you to tailor your embedded operating system to your own particular needs. At the very least, you should add features you require to the bare OpenWrt installation by installing software packages, such as a graphical web interface that provides easy access for beginners. Installing such packages is easy to learn, but requires a minimal understanding of the OpenWrt system and some Linux skills, all of which are explained in this wiki.

Compared to other distributions, OpenWrt may also not be regarded only as "true end-user firmware". While it is used as such by many users that seek the high customisability that OpenWrt provides, there are also other distributions (many based on OpenWrt) that offer a more complete feature set in the main package. These distributions provide more of an end-user experience for common use cases in a specific area. Otherwise, if you want a fully extendable Linux-based operating system for your device, OpenWrt is perfectly usable by anyone and is easy to set up and learn.

Why does OpenWrt seem so stripped and bare?

Because the OpenWrt ​Project is The Bazaar of embedded routing and does not bother ​to be a Cathedral (see The Cathedral and the Bazaar, http://​​esr/​writings/​homesteading​). 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.

What are the objectives?

Why does it say "Wireless Freedom"?

Because by employing OpenWrt you can achieve exactly that. This article for advanced users may help you to get started with that.

Why should I run OpenWrt?

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 or proprietary commercial software 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.

How can I contribute?

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.

In addition, since OpenWrt is very modular, maintaining the many packages also constitutes a large part of development. Additionally, well-written documentation is just as important as the development itself. In your own journey of getting OpenWrt to do what you want, it is always helpful for you to update this wiki with new or improved information. Of course all 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 and your company. Also, if you are new to OpenWrt and are setting up your 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 in the right direction, there are many people who are willing to help you. Of course, after you solve 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.

Working with a community

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:

Good Design and Software

« 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

« Good designs arise only from evolutionary, exploratory interaction between one (or at most a small handful of) exceptionally able designer(s) and an active user population. »

« Generosity is giving more than you can, and pride is taking less than you need. »
Khalil Gibran

Projects adopting OpenWrt

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: