_ _ _ _____ _____ _____ _ _ _
| | | || __ ||_ _| | __ | _ _ |_|| | _| | ___ ___
| | | || -| | | | __ -|| | || || || . || -_|| _|
|_____||__|__| |_| |_____||___||_||_||___||___||_|
WRT-Based Firmware Builder
Welcome to the WRT Builder, a comprehensive, Dockerized solution designed to streamline the process of OpenWRT and LibreCMC firmware compilation. This solution automates the configuration and setup of the build environment, providing an easy and efficient way to compile your own firmware.
Automated build environment setup: Make use of Docker to quickly set up the build environment, saving both time and effort.
Predefined and custom build configurations: Choose from a selection of predefined configurations suitable for common use-cases. For a more customized firmware, there's also an option to manually create a build configuration.
Interactive menu: A user-friendly menu guides through the process, offering the choice of using a predefined configuration or creating a custom one.
The script supports a variety of devices. Below is a list of supported devices along with links to their respective info within the repository:
The script can be run using the following command:
bash run.sh
Select device configuration.
Specify firmware and version manually.
Access the Docker container shell.
Access cleaning options for the build environment. More info.
Toggle verbose mode on/off
. Provides detailed script operation information.
Exit the script.
The script supports command line arguments for specifying the device, firmware, and version. The command syntax is as follows:
bash run.sh -d <device> -f <firmware> -v <version>
Replace <device>
, <firmware>
, and <version>
with the desired values. For example:
bash run.sh -d "tl_wr841nd_v8_v9_4mb" -f "openwrt" -v "v19.07.10"
Executing the above command initiates the script and automatically builds the specified firmware for the given device.
Upon successful completion of the script, an output/
directory is generated. This directory comprises two subdirectories:
packages/
: Stores the compiled packages.targets/
: Stores the compiled firmwares.
For more information about OpenWRT and LibreCMC, please refer to their official documentation:
Your help is valuable to make this script even better. If you've managed to compile firmware for a device that's not currently listed, please consider contributing. You can do this by adding the device to the list and providing a link to a new documentation file with more detailed information about the device. Every contribution enriches this project and is highly appreciated.
This software is published under the GPL-3.0 License license.