Restructuring OpenWRT documentation

Javad Rahimipetroudi javad.rahimipetroudi at essensium.com
Mon Dec 11 04:20:36 PST 2023


Dear OpenWRT developer,

I hope this message finds you well. As a user of OpenWRT, I would like
to express my appreciation for the excellent work you have done in
creating such a comprehensive documentation. However, I have noticed
that the current structure can be challenging for new users to
navigate, which can be discouraging for them.

In an effort to help improve the user experience, I would like to
suggest a restructuring scheme based on the Buildroot user manual. I
believe that this scheme could make the documentation more accessible
and user-friendly, which would in turn help attract more users to
OpenWRT.

I understand that you have put a lot of effort into creating the
documentation, and I want to assure you that my intention is not to
criticize your work. Rather, I hope that my suggestion can contribute
to the continued success of OpenWRT.
The new structure:
-----------------------------------
Developer guide
* Overview
* OpenWRT source code
   * Getting the source code
   * Working with GitHub
   * Revision number calculation
* Build system:
   * Build System essentials
   * System setup
      * Linux
      * MacOS
      * Windows (WSL)
   * Setting up a build server in VirtualBox

* Build system usage
   * Quick image-building guide
   * Using build environments
   * Overriding Build Options
   * Using the SDK
   * Cross Compiling your application
   * Using External Toolchain
   * Image Builder frontends
   * Using the Image Builder
   * OpenWrt Feeds

* Adding new packages to OpenWRT
   * "Hello, world!" package for OpenWrt
      * Preparing, configuring, and building the necessary tools
         * Adjusting the PATH variable
         * Conclusion
      * Creating a simple “Hello, world!” application
         * Creating the source code directory and files
         * Compiling, linking, and testing the application
         * Conclusion
      * Creating a package from your application
         * Creating a package feed for your packages
         * Creating the package manifest file
         * Conclusion
      * Including your package feed into OpenWrt build system
         * Including the new package feed into the OpenWrt build system
         * Updating and installing feeds
         * Conclusion
      * Building, deploying and testing your application
         * Building the package
         * Deploying and testing your package
         * Removing your package
         * Conclusion
      * Migrating to use GNU make in your application
         * Why use GNU make ?
         * Creating a makefile
         * Testing the makefile using native tools
         * Modifying the package manifest, and testing the build
         * Conclusion
      * Patching your application: Adding new files
         * About patches
         * Preparing the source code
         * Creating the first patch
         * Including the first patch into the package
         * Conclusion
      * Create a sample procd init script
      * Patching your application: Editing existing files
         * Creating the second patch
         * Conclusion
   * Adding existing packages to OpenWRT
      * Autotools packages
      * Cmake packages
      * Meson packages
      * Packages with other specific build systems
   * Patching a package ( Working with patches)
   * Using Dependencies
* Debugging
   * GNU Debugger
* Device management in OpenWRT
   * Adding a new device
   * Adding new device support
   * Adding new platform support
   * Device support policies / best practices
   * Device Tree Usage in OpenWrt (DTS)
   * Mounting Block Devices
----------------------------------------------
Thank you for your consideration.
The full structure is attached.

Best regards,
Javad Rahimipetroudi
-------------- next part --------------
Developer guide
* Overview
* OpenWRT source code
   * Getting the source code
   * Working with GitHub
   * Revision number calculation
* Build system:
   * Build System essentials
   * System setup 
      *  Linux
      * MacOS
      * Windows (WSL)
   * Setting up a build server in VirtualBox


* Build system usage
   * Quick image-building guide
   * Using build environments
   * Overriding Build Options
   * Using the SDK
   * Cross Compiling your application
   * Using External Toolchain
   * Image Builder frontends
   * Using the Image Builder
   * OpenWrt Feeds


* Adding new packages to OpenWRT
   * "Hello, world!" package for OpenWrt
      * Preparing, configuring, and building the necessary tools
         * Adjusting the PATH variable
         * Conclusion
      * Creating a simple “Hello, world!” application
         * Creating the source code directory and files
         * Compiling, linking, and testing the application
         * Conclusion
      * Creating a package from your application
         * Creating a package feed for your packages
         * Creating the package manifest file
         * Conclusion
      * Including your package feed into OpenWrt build system
         * Including the new package feed into the OpenWrt build system
         * Updating and installing feeds
         * Conclusion
      * Building, deploying and testing your application
         * Building the package
         * Deploying and testing your package
         * Removing your package
         * Conclusion
      * Migrating to use GNU make in your application
         * Why use GNU make ?
         * Creating a makefile
         * Testing the makefile using native tools
         * Modifying the package manifest, and testing the build
         * Conclusion
      * Patching your application: Adding new files
         * About patches
         * Preparing the source code
         * Creating the first patch
         * Including the first patch into the package
         * Conclusion
      * Create a sample procd init script
      * Patching your application: Editing existing files
         * Creating the second patch
         * Conclusion
   * Adding existing packages to OpenWRT
      * Autotools packages
      * Cmake packages
      * Meson packages
      * Packages with other specific build systems
   * Patching a package ( Working with patches)
   * Using Dependencies
* Debugging
   * GNU Debugger
* Device management in OpenWRT
   * Adding a new device
   * Adding new device support
   * Adding new platform support
   * Device support policies / best practices
   * Device Tree Usage in OpenWrt (DTS)
   * Mounting Block Devices
Technical References 
* Networking
   * Theory
   * Datagram Structures
   * Linux network interfaces
   * Networking in the Linux Kernel
   * Device Support: MAC address setup
   * Multicast DNS Daemon
   * Netifid
   * Network scripts
   * Wireless Modes
   * Network Filesystems
* Security
   * Security
   * OpenWrt SELinux policy development, customization, and testing
* Coding in OpenWRT
   * Write shell scripts in OpenWrt
   * Init Scripts
      * procd init scripts
   * UCI
   * Ubox (libubox)
   * Ubus (OpenWrt micro bus architecture)
   * uBus IPC/RPC System
      * ubus file
      * ubus iwinfo
      * ubus network
      * ubus service
      * ubus session
      * ubus system
      * ubus uci


* Testing OpenWrt in a virtual machine
   * Docker OpenWrt Image Generation
   * Metarouter Virtualization on Mikrotik RouterBoard
   * OpenWrt as a Docker Image
   * OpenWrt as a Xen DomU guest
   * OpenWrt as Docker container host
   * OpenWrt as DomU in Debian Xen4 in a private network
   * OpenWrt as QEMU/KVM host server
   * OpenWrt in LXC containers
   * OpenWrt in QEMU
   * OpenWrt on UTM on Apple Silicon HowTo
   * OpenWrt on VirtualBox HowTo
   * OpenWrt on VMware Fusion on Apple Silicon HowTo
   * OpenWrt on VMware HowTo
   * OpenWrt running as metarouter on mikrotik routerOS
   * VirtualBox Advanced


* Contribution
   * Reporting bugs
   * Submitting patches
   * Sending patches by git send-email
   * Frequent PR mistakes or "How to prevent my PR from getting delayed for sure"


* OpenWRT release management
   * Making OpenWrt releases
      * High-level release process
      * How to create a major release
      * How to create a service release
      * How to prepare buildbot for major release
      * Prepare Nitrokey 3A Mini for build artifact signing
      * Update package lists
      * Update wikidata


   * Release goals
      * 20.xx
      * 19.07.4
      * 21.XX
      * 22.03
      * 23.xx
      * 21.02


More information about the openwrt-devel mailing list