RADIUSdesk

logo

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
technical:openwrt-meshdesk [2022/09/17 17:44]
admin [Select Packages To Include With Firmware]
technical:openwrt-meshdesk [2023/12/27 19:20] (current)
admin
Line 1: Line 1:
-====== OpenWRT 22.03.x with MESHdesk packages ======+====== OpenWRT 23.05.x with MESHdesk packages ======
 <WRAP center round info 90%> <WRAP center round info 90%>
-Follow these instructions to include the MESHdesk package on devices capable of running OpenWRT version 22.03.x+Follow these instructions to include the MESHdesk package on devices capable of running OpenWRT version 23.05.x
 </WRAP> </WRAP>
 ===== Minimum Hardware Requirements ===== ===== Minimum Hardware Requirements =====
Line 55: Line 55:
   * The MESHdesk package is such a package.   * The MESHdesk package is such a package.
   * The MESHdesk package is hosted on Github as part of a git repository.   * The MESHdesk package is hosted on Github as part of a git repository.
-  * This git repository also includes other the items we will use with our firmware development (the Luci application and some additional files)+  * This git repository also includes the other items we will use with our firmware development (the Luci application and some additional files)
   * 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.03.(on the same level as the openwrt directory)+#Do this in the working directory e.g. cd 23.05.(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 95: Line 95:
  
 ===== Select Packages To Include With Firmware ===== ===== Select Packages To Include With Firmware =====
 +{{:technical:openwrt-cursors.png|}}
   * The OpenWrt SDK has a cursors interface (much like Midnight Commander for the old school readers 8-O)   * The OpenWrt SDK has a cursors interface (much like Midnight Commander for the old school readers 8-O)
   * To start this cursors interface up you need to cd from the working directory to the **openwrt** directory.   * To start this cursors interface up you need to cd from the working directory to the **openwrt** directory.
Line 111: Line 112:
   * The Batman packages are for mesh support.   * The Batman packages are for mesh support.
  
-Package      Location       ^ Comment        ^ +Location      Package       ^ Comment        ^ 
-| **MESHdesk**    | Base system  |     | +| Base system    |**MESHdesk**    |     | 
-| kmod-batman-adv | Kernel Modules -> Network Support | Keep the default options | +| Kernel Modules -> Network Support  | kmod-batman-adv | Keep the default options | 
-lua-mosquitto  | Languages -> Lua |      | +Kernel Modules -> Netfilter Extensions  | kmod-nft-bridge | <wrap em>Include if you want to block or speed limit users</wrap>
-| **libiwinfo-lua**      | Languages -> Lua      | +| Languages -> Lua  |lua-mosquitto  |      | 
-| **luasocket**      | Languages -> Lua      | +| Languages -> Lua  |**libiwinfo-lua**   |     | 
-| **libuci-lua**     | Libraries |     | +| Languages -> Lua       | **luasocket**  |     | 
-| **luci**           | Luci -> Collections |    +| Libraries     | **libuci-lua**  |     | 
-| **luci-compat**    | Luci -> Modules | Needs this modules for our package **VERY IMPORTANT** | +| Luci -> Collections     | **luci**     | 
-| **luci-app-meshdesk**    | Luci -> Applications | Luci App to enable and disable central management | +| Luci -> Modules    | **luci-compat**   | Needs this modules for our package **VERY IMPORTANT** | 
-| **luci-theme-material**   | Luci -> Themes | Modern theme that is easy to customize | +| Luci -> Applications    | **luci-app-meshdesk**  | Luci App to enable and disable central management | 
-| **luci-lib-httpclient**  | Luci ->  Libraries  +| Luci -> Themes   | **luci-theme-material**  | Modern theme that is easy to customize | 
-| **luci-lib-httpprotoutils**  | Luci ->  Libraries  +| Luci ->  Libraries  | **luci-lib-httpclient**  |  | 
-| **luci-lib-json**  | Luci ->  Libraries  +| Luci ->  Libraries  | **luci-lib-httpprotoutils**   |  
-| **luci-lib-jsonc**  | Luci ->  Libraries |  | +| Luci ->  Libraries  | **luci-lib-json**  |  | 
-| **coova-chilli**   | Network -> Captive Portals | Select **OpenSSL** as **SSL Library**. Also select **Enable the JSON interface..** and **..Coova miniportal...** | +| Luci ->  Libraries  | **luci-lib-jsonc**  |  | 
-| **curl**  | Network -> File Transfer     | +| Network -> Captive Portals   | **coova-chilli**  | Select **OpenSSL** as **SSL Library**. Also select **Enable the JSON interface..** and **..Coova miniportal...** | 
-| **relayd**  | Network -> Routing and Redirection |      | +| Network -> File Transfer   | **curl**   |     | 
-| **wpad IEEE 802.1x Auth/Supplicant (built-in full)** | Network -> WirelessAPD | Un-select wpad-basic| +| Network -> Firewall   **iptables-nft**   | **Very important for backward compatibly of iptables**   | 
-| batctl-full  | Network  | Un-select batctl-default | +| Network -> Routing and Redirection  | **relayd** |      | 
-| mosquitto-client-ssl | Network | Note the **CLIENT** package |+| Network -> WirelessAPD | **wpad IEEE 802.1x Auth/Supplicant (built-in full)**   | Un-select wpad-basic also required for Hotspot 2.0 
 +| Network   | batctl-full  | Un-select batctl-default | 
 +|Network  | mosquitto-client-ssl  | Note the **CLIENT** package 
 +|Network  | iw-full  | Required for Hotspot 2.0 |
  
   * After you selected these packages you can save the configuration and issue **make** to build the firmware.   * After you selected these packages you can save the configuration and issue **make** to build the firmware.
 +  * The completed firmware will be located under 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//
   * 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 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**.
         * 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 will cover the files you have to attend to for the specific hardware tweaks.
 +
 +==== Note on Warnings  ====
 +
 +  * When you issue the **make** command these warnings might pop-up.
 +  * They are harmless and can be ignored.
 +<code bash>
 +WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
 +WARNING: Makefile 'package/utils/busybox/Makefile' has a dependency on 'libpam', which does not exist
 +WARNING: Makefile 'package/utils/busybox/Makefile' has a build dependency on 'libpam', which does not exist
 +WARNING: Makefile 'package/network/services/lldpd/Makefile' has a dependency on 'libnetsnmp', 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 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]: 'conf' is up to date.
 +make[2]: Leaving directory '/home/system/Documents/fw_sdk/23.05.2/openwrt/scripts/config'
 +make[1] world
 +make[2] target/compile
 +make[3] -C target/linux compile
 +</code>
 +
 +
 +
 +===== Files to tweak =====
 +Use ssh to gain access to the device in order to tweak these files.
 +
 +  * [[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)
 +
 +
 +===== 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.
 +  * 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.
 +
 +^On Device   ^On SDK    ^
 +|/etc/MESHdesk/configs/wan_network  |openwrt/package/MESHdesk/files/MESHdesk/configs/  |
 +|/etc/config/meshdesk  | openwrt/package/MESHdesk/files/MESHdesk/  |
 +|/etc/MESHdesk/configs/captive_config.json  |openwrt/package/MESHdesk/files/MESHdesk/configs/  |
 +|/etc/MESHdesk/reporting/report_to_server.lua  |openwrt/package/MESHdesk/files/MESHdesk/reporting  |
 +
 +  * This brings us to the end of the page on how to build MESHdesk firmware for specific hardware.
 +