User Tools

Site Tools


about:start

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.

  • Free and open-source. The project is entirely free and open-source, licensed under the GPL. The project is intended 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!

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?

The design of OpenWrt represents "The Bazaar" instead of "The Cathedral" of embedded routing (read The Cathedral and the Bazaar (http://www.catb.org/esr/writings/homesteading/) to understand what this means). 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?

  • OpenWrt will never be a product, but something which makes it easy to build a product.
  • OpenWrt will never be finished, never be complete, but will always be tracking the progress of technology.
  • OpenWrt will never be specific, it will always remain generic.
  • OpenWrt will never be the cathedral, it will simply supply the building blocks to construct one.

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:

  • The real contribution you can make to OpenWrt/the Linux kernel is not necessarily a large number 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 so that 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 in bringing this project to new heights.

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.«
    Unknown
»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:

  • Gargoyle - Closely follows OpenWrt development. Features its own web interface through which advanced funtionality can be configured.
  • DD-WRT - Adopted the OpenWrt kernel in the past.
  • CoovaAP - Wireless access point firmware based on CoovaChilli which is based on (now defunct) Chillispot.
  • FON - Company operating WiFi access points, made available by customer's devices.
  • ROOter - Free OpenWrt-based firmware that converts many conventional routers with USB port(s) into 3G/4G/LTE capable modem/ routers. Supports modems at near their full throughput potential, provides detailed real time modem information display and much more. Other USB device support is developing. ROOter objectives.
  • Doodle3D - Making 3D printing easy, built on top of OpenWRT.

Resources

about/start.txt · Last modified: 2014/12/08 13:21 by rpjday