As a team with active contributions and numerous projects based on OpenWrt, we are well aware of its strong points and shortfalls. One aspect of the OpenWrt project that will be the focus of this post is its documentation.
OpenWrt Wiki & Forum
Whether beginner or advanced, OpenWrt users (or those who yet aspire to be) have two mediums at their disposal: the official OpenWrt Wiki and the OpenWrt Forum. From an idea point, having a centralized base of knowledge in the form of Wiki and Forum is certainly a strong point for OpenWrt. In practice, this is much more easier said than done. A lot of pages and entries currently present on those mediums are somewhere out of date and somewhere not in detail enough for a particular user and his use case. Sometimes, certain subjects arise from a user’s perspective that are not covered anywhere on either Wiki or Forum.
This is nothing new to the open source world. To sustain traction and importance, development teams behind projects are more inclined to focus on new features, updates and fixes than they are to keeping their documentation thorough and up to date. It would seem that the real challenge with documentation is finding the right balance of new features and updates, and how well or quickly they are covered and presented to the community in an approachable manner.
Idea & structure
It is for these reasons we at Sartura have started the first-of-its-kind Entering embedded world with OpenWrt project, a book solely dedicated to the OpenWrt embedded distribution works and how to use it. The idea behind the book is to congregate and combine our internal knowledge and practiced OpenWrt methods into one coherent and approachable OpenWrt manual. The book aims to cover OpenWrt from the ground up, giving its readers a solid foundation upon to learn and put to use more OpenWrt advanced topics and practices.
Figure 1. "Entering embedded world with OpenWrt" book cover
The book consists of five large parts which may be published separately once they are finalized:
1 OpenWrt project and build system - Introduction to the project itself and going over the setup and workings of the OpenWrt build system.
2 Unified Configuration Interface (UCI) - Breakdown on OpenWrt’s main components including UCI, ubus, netifd, wireless, firewall, rpcd, procd, LuCI and other tools.
3 Development - Various less and more advanced development examples.
4 OpenWrt Infrastructure - Main OpenWrt mediums regarding its development and community.
5 Contributing to OpenWrt - Guidelines and examples on how to contribute to the OpenWrt mainline.
At the time of writing this blog post, the book is still in the works. Parties interested in this project can submit their questions to firstname.lastname@example.org.