Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
network:firmware:meshdesk [2024/02/17 12:19] systemnetwork:firmware:meshdesk [2025/04/15 05:18] (current) system
Line 6: Line 6:
 ---- ----
  
-====== OpenWRT 23.05.x with MESHdesk packages ======+====== OpenWRT 24.10.x with MESHdesk packages ======
 <alert type="info"> <alert type="info">
-Follow these instructions to include the MESHdesk package on devices that can run OpenWRT version 23.05.x+Follow these instructions to include the MESHdesk package on devices that can run OpenWRT version 24.10.x
 </alert> </alert>
 ===== Minimum hardware requirements ===== ===== Minimum hardware requirements =====
Line 22: Line 22:
   * Next, let us look at the steps you need to take to compile OpenWrt with the included MESHdesk package.   * Next, let us look at the steps you need to take to compile OpenWrt with the included MESHdesk package.
  
 +<panel type="primary">
 ===== Steps when adding new hardware ===== ===== Steps when adding new hardware =====
 ==== Explanation of our modus operandi (MO) ==== ==== Explanation of our modus operandi (MO) ====
Line 33: Line 34:
  
 ------ ------
-<panel type="primary">+
 ==== First development firmware ==== ==== First development firmware ====
 These steps are performed <wrap em>ONLY ONCE</wrap> when you introduce new hardware. These steps are performed <wrap em>ONLY ONCE</wrap> when you introduce new hardware.
Line 46: Line 47:
 </alert> </alert>
 <wrap em>This is a one-time process. Once you have customized the files, you can skip this step in the future and simply use the device-specific files if you need to create new firmware for the same hardware.</wrap> <wrap em>This is a one-time process. Once you have customized the files, you can skip this step in the future and simply use the device-specific files if you need to create new firmware for the same hardware.</wrap>
-</panel>+
 ------- -------
  
Line 55: Line 56:
      - meshdesk      - meshdesk
   - Flash your device with the production firmware.   - Flash your device with the production firmware.
 +</panel>
   * So without further ado, let us start with the first development firmware.   * So without further ado, let us start with the first development firmware.
   * We will take a Xiaomi 4A 100M access point as an example device.   * We will take a Xiaomi 4A 100M access point as an example device.
Line 68: Line 69:
   * Check out the **openwrt-meshdesk** package from the Github repository.   * Check out the **openwrt-meshdesk** package from the Github repository.
 <code> <code>
-#Do this in the working directory e.g. cd 23.05.(on the same level as the openwrt directory)+#Do this in the working directory e.g. cd 24.10.(on the same level as the openwrt directory)
 git clone https://github.com/RADIUSdesk/openwrt-meshdesk.git openwrt-meshdesk git clone https://github.com/RADIUSdesk/openwrt-meshdesk.git openwrt-meshdesk
 </code> </code>
Line 94: Line 95:
 ===== Updating the available packages ===== ===== Updating the available packages =====
   * Since we added a Luci application, we need to tell the SDK about it.   * Since we added a Luci application, we need to tell the SDK about it.
-  * After you copied the packages across issue the following command:+  * After copying the packages, enter the following command:
 <code bash> <code bash>
 #cd to the working directory #cd to the working directory
Line 102: Line 103:
 scripts/feeds install luci-app-meshdesk scripts/feeds install luci-app-meshdesk
 </code> </code>
-  * The result is that the MESHdesk Luci application will be listed as one of the available Luci applications.+  * The result is that the Luci application MESHdesk is listed as one of the available Luci applications.
  
 ===== Select Packages To Include With Firmware ===== ===== Select Packages To Include With Firmware =====
-{{:technical:openwrt-cursors.png|}} +<panel type="primary"> 
-  * The OpenWrt SDK has a cursors interface (much like Midnight Commander for the old school readers 8-O) +{{:network:firmware:openwrt-cursors.png|}} 
-  * To start this cursors interface up you need to cd from the working directory to the **openwrt** directory.+</panel> 
 +  * The OpenWrt SDK has a cursors interface (similar to Midnight Commander for the old school readers 8-O) 
 +  * To start this cursors interfaceyou have to change from the working directory to the **openwrt** directory.
   * Then issue the following:   * Then issue the following:
 <code bash> <code bash>
Line 114: Line 117:
 make menuconfig make menuconfig
 </code> </code>
-  * Here you will select the hardware architecture of the device you want to build the firmware for and also its model. +  * Here you select the hardware architecture of the device for which you want to create the firmware and its model. 
-  * Also select the following packages when building the firmware. +  * Also select the following packages when creating the firmware. 
-  * When selecting a package there are the options to build it as a module (M) or fully include it (*). +  * When you select a package, you have the option of building it as a module (M) or including it completely (*). 
-  * **Make sure you select with the (*) option to fully include the package.** +  * **Make sure you select the (*) option to fully include the package.** 
-  * Package names in bold are required.+  * The package names in bold are required.
   * The Mosquitto packages are for MQTT support.   * The Mosquitto packages are for MQTT support.
-  * The Batman packages are for mesh support.+  * The Batman packages are for Mesh support.
  
 +<panel type="primary" title="Package selection" no-body="true">
 ^ Location      ^ Package       ^ Comment        ^ ^ Location      ^ Package       ^ Comment        ^
 | Base system    |**MESHdesk**    |     | | Base system    |**MESHdesk**    |     |
-Kernel Modules -> Network Support  kmod-batman-adv | Keep the default options |+Base system    |sqm-scripts   Used for bandwidth control on VLANs
 | Kernel Modules -> Netfilter Extensions  | kmod-nft-bridge | <wrap em>Include if you want to block or speed limit users</wrap> | | Kernel Modules -> Netfilter Extensions  | kmod-nft-bridge | <wrap em>Include if you want to block or speed limit users</wrap> |
 +| Kernel Modules -> Network Devices  | kmod-dummy | Include for internal VLAN (Dynamic RADIUS based VLANs on AP) |
 +| Kernel Modules -> Network Support  | kmod-batman-adv | Keep the default options |
 | Languages -> Lua  |lua-mosquitto  |      | | Languages -> Lua  |lua-mosquitto  |      |
 | Languages -> Lua  |**libiwinfo-lua**       | | Languages -> Lua  |**libiwinfo-lua**       |
Line 133: Line 139:
 | Luci -> Modules    | **luci-compat**   | Needs this modules for our package **VERY IMPORTANT** | | Luci -> Modules    | **luci-compat**   | Needs this modules for our package **VERY IMPORTANT** |
 | Luci -> Applications    | **luci-app-meshdesk**  | Luci App to enable and disable central management | | Luci -> Applications    | **luci-app-meshdesk**  | Luci App to enable and disable central management |
 +| Luci -> Applications    | luci-app-sqm  | Used for bandwidth control on VLANs 
 | Luci -> Themes   | **luci-theme-material**  | Modern theme that is easy to customize | | Luci -> Themes   | **luci-theme-material**  | Modern theme that is easy to customize |
 | Luci ->  Libraries  | **luci-lib-httpclient**  |  | | Luci ->  Libraries  | **luci-lib-httpclient**  |  |
Line 146: Line 153:
 |Network  | mosquitto-client-ssl  | Note the **CLIENT** package | |Network  | mosquitto-client-ssl  | Note the **CLIENT** package |
 |Network  | iw-full  | Required for Hotspot 2.0 | |Network  | iw-full  | Required for Hotspot 2.0 |
 +</panel>
 +
 +<panel type="primary" title="Advanced Package selection" no-body="true">
 +^ Location      ^ Package       ^ Comment        ^
 +| Kernel modules -> USB Support | kmod-usb-net-cdc-mbim  |    |
 +| Kernel modules -> USB Support | kmod-usb-net-qmi-wwan  |     |
 +| Kernel modules -> USB Support | kmod-usb-serial-option | optional - for AT commands |
 +| Kernel modules -> USB Support | kmod-usb-serial-qualcomm  |   |
 +| Kernel modules -> USB Support | kmod-usb-serial-sierrawireless  |   |
 +| Kernel modules -> USB Support | kmod-usb-wdm  |   |
 +| Network -> WWAN |uqmi  |    |
 +| Utilities    |usb-modeswitch    |Used with LTE USB dongles  |
 +| Utilities -> Terminal |minicom      |
 +
 +
 +
 +</panel>
  
-  * After you selected these packages you can save the configuration and issue **make** to build the firmware. +  * Once you have selected these packagesyou can save the configuration and run **make** to create the firmware. 
-  * The completed firmware will be located under the **openwrt/bin/target/<architecture>** folder.+  * The finished firmware can then be found in the **openwrt/bin/target/<architecture>** folder.
   * In our case we will use //openwrt/bin/targets/ramips/mt76x8/openwrt-ramips-mt76x8-xiaomi_mi-router-4a-100m-squashfs-sysupgrade.bin//   * In our case we will use //openwrt/bin/targets/ramips/mt76x8/openwrt-ramips-mt76x8-xiaomi_mi-router-4a-100m-squashfs-sysupgrade.bin//
-  * The firmware you just built will be standard OpenWrt in effect and you can flash your hardware as with normal OpenWRT then access it on **192.168.1.1**.+  * The firmware you have just created is then a standard OpenWrt and you can flash your hardware like a normal OpenWRT and then access it via **192.168.1.1**.
         * Username and Password is **root** and **admin** for Luci and ssh.         * Username and Password is **root** and **admin** for Luci and ssh.
-  * The next section will cover the files you have to attend to for the specific hardware tweaks.+  * The next section covers the files you need to be attend to for the specific hardware tweaks.
  
 ==== Note on Warnings  ==== ==== Note on Warnings  ====
  
-  * When you issue the **make** command these warnings might pop-up.+  * When you run the **make** command, you may see these warnings.
   * They are harmless and can be ignored.   * They are harmless and can be ignored.
 <code bash> <code bash>
Line 166: Line 190:
 WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a dependency on 'libpam', which does not exist
 WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a build dependency on 'libpam', which does not exist WARNING: Makefile 'package/utils/policycoreutils/Makefile' has a build dependency on 'libpam', which does not exist
-make[2]: Entering directory '/home/system/Documents/fw_sdk/23.05.2/openwrt/scripts/config'+make[2]: Entering directory '/home/system/Documents/fw_sdk/24.10.1/openwrt/scripts/config'
 make[2]: 'conf' is up to date. make[2]: 'conf' is up to date.
-make[2]: Leaving directory '/home/system/Documents/fw_sdk/23.05.2/openwrt/scripts/config'+make[2]: Leaving directory '/home/system/Documents/fw_sdk/24.10.1/openwrt/scripts/config'
 make[1] world make[1] world
 make[2] target/compile make[2] target/compile
Line 177: Line 201:
  
 ===== Files to tweak ===== ===== Files to tweak =====
-Use ssh to gain access to the device in order to tweak these files.+Use ssh to gain access to the device to modify these files. 
 +<list-group> 
 +  * {{fa>file?fw}} [[:network:firmware:openwrt-wan-network|wan_network]] 
 +  * {{fa>file?fw}} [[:network:firmware:openwrt-meshdesk-file|meshdesk]] 
 +  * {{fa>file?fw}} [[:network:firmware:captive_portal-json|captive_portal.json]] 
 +</list-group>
  
-  * [[technical:openwrt-wan-network|wan_network file]] 
-  * [[technical:openwrt-meshdesk-file|meshdesk file]] 
-  * [[technical:captive_portal-json|captive_portal.json file]] 
- 
-  * Once the tweaks are completed we can test everything out. 
-  * Log onto your device using Luci (http://192.168.1.1) 
-  * The following image shows how to point the device to the controller using the GUI. 
-{{:technical:meshdesk_activate.png|}} 
-  * Point the device to your controller and reboot it. 
-  * If all goes well it will show up in Unknown Nodes. 
-  * If it is a new hardware type add it to the controller as described here: Hardwares (Again Once Off) 
  
 +  * Once the customizations are complete, we can test everything.
 +  * Log in to your device with Luci (http://192.168.1.1)
 +  * The following image shows how to point the device to the controller via the GUI.
 +<panel type="primary">
 +{{:network:firmware:meshdesk_activate.png|}}
 +</panel>
 +  * Point the device at your controller and restart it.
 +  * If all goes well, it will be displayed under New Arrivals - Hardware.
 +  * If it is a new hardware type add it to the controller as described here: Hardware (Again Once Off)
  
 ===== The Production Built ===== ===== The Production Built =====
-  * If everything on the device work as intended you can use those tweaked files to build a final version of the firmware for the specific hardware.+  * If everything works as intended on the deviceyou can use these optimized files to build a final version of the firmware for the specific hardware.
   * Copy the files to a temporary folder on the machine where you are building the firmware.   * Copy the files to a temporary folder on the machine where you are building the firmware.
-  * Use the following as a lookup for the location inside the SDK where the tweaked files need to go.+  * Use the following table to find the location for the optimized files in the SDK.
  
 +<panel type="primary" title="Files" no-body="true">
 ^On Device   ^On SDK    ^ ^On Device   ^On SDK    ^
-|/etc/MESHdesk/configs/wan_network  |openwrt/package/MESHdesk/files/MESHdesk/configs/ +|/etc/MESHdesk/configs/wan_network  |openwrt/files/etc/MESHdesk/configs/ 
-|/etc/config/meshdesk  | openwrt/package/MESHdesk/files/MESHdesk/  | +|/etc/config/meshdesk  | openwrt/files/etc/config  | 
-|/etc/MESHdesk/configs/captive_config.json  |openwrt/package/MESHdesk/files/MESHdesk/configs/ +|/etc/MESHdesk/configs/captive_config.json  |openwrt/files/etc/MESHdesk/configs/ 
-|/etc/MESHdesk/reporting/report_to_server.lua  |openwrt/package/MESHdesk/files/MESHdesk/reporting +|/etc/MESHdesk/reporting/report_to_server.lua  |openwrt/files/etc/MESHdesk/reporting 
- +</panel> 
-  * This brings us to the end of the page on how to build MESHdesk firmware for specific hardware.+  * This brings us to the end of the page that describes how to create MESHdesk firmware for specific hardware.
  
  • network/firmware/meshdesk.1708165172.txt.gz
  • Last modified: 2024/02/17 12:19
  • by system