A simple OpenWrt firmware selector using autocompletion. Uses plain HTML/CSS/JavaScript. Checkout the Demo.
python3 -m http.server
)Configure with config.js.
Steps:
www/
folder somewhere web accessible.image_url
in www/config.json
to where the images are located.<image_url>/releases/<version>/targets/<target>/<subtarget>/
).versions.json
at image_path
. This is optional.https://downloads.openwrt.org/.versions.json
{
"stable_version": "23.05.4",
"versions_list": ["23.05.4", "19.07.10"]
}
Note: These values can be overwritten with versions
and default_version
in the config.js
file.
.overview.json
files in each version folder.https://downloads.openwrt.org/releases/23.05.4/.overview.json
They can be generated by this shell command:
for VERSION_PATH in 19.07.10/ 23.05.4/; do
jq -s '{ release: .[0].version_number, profiles: [.[] | .target as $target | .profiles | keys[] as $k | { id: ($k), titles: (.[$k] | .titles), target: $target }] }' $(find "$VERSION_PATH" -iname 'profiles.json') > $VERSION_PATH/.overview.json
done
The .overview.json
file for a version is created from all profile.json
files that are generated by OpenWrt when images are created. To enable generation, go to the build settings (make menuconfig
):
Global build settings ---> [*] Create JSON info files per build image
.
If the option is not available (OpenWrt 18.06 or 19.07.3), apply commit openwrt/openwrt@881ed09.
ASU is a build server that builds OpenWrt images with a given list of packages on request. The firmware-selector can be used as an interface to send these requests and to download the images when finished.
The Firmware Selector allows to define a script to be placed in the /etc/uci-defaults/
folder of the OpenWrt image. These scripts are executed once on the first reboot and then deleted. See the OpenWrt documentation on this topic.
Visit weblate.org to contribute new translations or to improve them.