----
====== Prepare OpenWRT 25.12.x on Ubuntu 25.12 ======
===== Prepare The System =====
* This page describes the preparations you need to make in order to build OpenWRT with the included MESHdesk packages.
* The SDK and the build process require ~30-40G of disk space.
* Install the required packages to ensure that the SDK can build the firmware.
sudo apt-get update
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl unzip mercurial swig
==== Storage location for the SDK ====
* Create the location for the SDK
* We recommend that you create a folder that contains the version of the firmware you are going to build.
* You must do this as a normal Linux user (not root).
* Here we create a folder for version **25.12.2**.
# Create the working directory
mkdir 25.12.2
# Change to our working directory
cd 25.12.2
===== Check out the SDK =====
* Perform a clean checkout of the OpenWrt repository.
git clone https://git.openwrt.org/openwrt/openwrt.git
#If it timeout you can use the git protocol which seems more robust:
git clone git://git.openwrt.org/openwrt/openwrt.git
* This repository has different branches. To see which branches are available and which one we are currently using, enter the following command.
#First we may need to change our directory to the openwrt directory
cd openwrt
git branch -a
#Also to see the tags
git tag -l
* We will checkout the tag **25.12.2**.
git checkout v25.12.2
* Confirm that this **25.12.2** is now checked out.
git branch
* Update the package feeds.
./scripts/feeds update
===== Install the required packages =====
* Make sure the following packages are installed as they are required for the MESHdesk package.
./scripts/feeds install coova-chilli
./scripts/feeds install luasocket
./scripts/feeds install libuci-lua
./scripts/feeds install curl
./scripts/feeds install -a -p routing
./scripts/feeds install iwinfo
./scripts/feeds install luci
./scripts/feeds install luci-theme-material
./scripts/feeds install mosquitto
./scripts/feeds install lua-mosquitto
#For backward compatibility in 25.12 with older Luci libs
./scripts/feeds install luci-compat
#Add the iptables translator package to translate iptables to nftables
./scripts/feeds install iptables-nft
#Add these Luci packages
./scripts/feeds install luci-lib-nixio
./scripts/feeds install luci-lib-jsonc
./scripts/feeds install luci-lib-json
./scripts/feeds install luci-lib-httpprotoutils
./scripts/feeds install luci-lib-httpclient
./scripts/feeds install luci-lib-base
#If you are going to implement OpenVPN tunnels
./scripts/feeds install openvpn-openssl
#If you are going to do Hotspot 2.0
./scripts/feeds install iw-full
#If you will use SQM/CAKE for bandwidth limiting and controlling Buffer Bloat
./scripts/feeds install sqm-scripts
./scripts/feeds install luci-app-sqm
#If you will implement the Multi-WAN functionality
./scripts/feeds install mwan3
./scripts/feeds install luci-app-mwan3
#With Multi-WAN you might need the LTE related packages
./scripts/feeds install usb-modeswitch
./scripts/feeds install picocom
./scripts/feeds install uqmi
./scripts/feeds install kmod-usb-net-cdc-mbim
./scripts/feeds install kmod-usb-net-qmi-wwan
./scripts/feeds install kmod-usb-serial-option
./scripts/feeds install kmod-usb-serial-qualcomm
./scripts/feeds install kmod-usb-serial-sierrawireless
./scripts/feeds install kmod-usb-wdm
./scripts/feeds install qmi-utils
./scripts/feeds install libqmi
./scripts/feeds install luci-proto-qmi
#Aug 2025 For Per Device Bandwidth Monitoring
./scripts/feeds install nlbwmon
./scripts/feeds install luci-app-nlbwmon
#Jan 2026 Support for VPN - Make sure the device have enough space when including them
./scripts/feeds install wireguard-tools
./scripts/feeds install openvpn
./scripts/feeds install strongswan
./scripts/feeds install xfrm
./scripts/feeds install zerotier
* Now everything is ready to add the MESHdesk package.
[[network:firmware:meshdesk|OpenWRT 25.12.x with MESHdesk packages]]