Welcome to the “Hello, world!” -article series for OpenWrt. This article series walks you through the basics of developing new software for your router. We will start with an extremely simple application that does (almost) nothing, and slowly evolve it throughout the series. Each individual chapter in this series will introduce an additional concept, and once you've gone through all the chapters, you should feel much more comfortable foraging into the world of OpenWrt development.
All the source code example files in this series are written in the C programming language. While the outlining concepts i.e. creating new packages, specifying source code location, using build tools and creating installable packages are applicable to any other programming language as well, explicit examples for other programming languages besides C are not provided.
Command examples in this article series use the Bash command interpreter when inside the development environment, and the Ash command interpreter when operating on the target device.
In order to proceed alongside this article series, the following requirements should be met:
If you feel unsure on any of the above topics, feel free to follow the links in order to find some basic information.
The author of this article chose to use a Debian 8 Linux distribution as the development environment for this article, running inside a VirtualBox virtual machine. You are free to choose an alternative virtualization platform, or even run the environment on a dedicated physical computer. Note that you should be familiar with the environment that you are operating in, and be able to perform basic file system operations (creating and deleting files) and be familiar with using a text editor of choice in your environment.
This article series will cover the following topics: