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:54]
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 114: Line 115:
 | Base system    |**MESHdesk**    |     | | Base system    |**MESHdesk**    |     |
 | Kernel Modules -> Network Support  | kmod-batman-adv | Keep the default options | | Kernel Modules -> Network Support  | kmod-batman-adv | Keep the default options |
 +| Kernel Modules -> Netfilter Extensions  | kmod-nft-bridge | <wrap em>Include if you want to block or speed limit users</wrap> |
 | Languages -> Lua  |lua-mosquitto  |      | | Languages -> Lua  |lua-mosquitto  |      |
 | Languages -> Lua  |**libiwinfo-lua**       | | Languages -> Lua  |**libiwinfo-lua**       |
Line 128: Line 130:
 | Network -> Captive Portals   | **coova-chilli**  | Select **OpenSSL** as **SSL Library**. Also select **Enable the JSON interface..** and **..Coova miniportal...** | | Network -> Captive Portals   | **coova-chilli**  | Select **OpenSSL** as **SSL Library**. Also select **Enable the JSON interface..** and **..Coova miniportal...** |
 | Network -> File Transfer   | **curl**       | | Network -> File Transfer   | **curl**       |
 +| Network -> Firewall   | **iptables-nft**   | **Very important for backward compatibly of iptables**   |
 | Network -> Routing and Redirection  | **relayd** |      | | Network -> Routing and Redirection  | **relayd** |      |
-| Network -> WirelessAPD | **wpad IEEE 802.1x Auth/Supplicant (built-in full)**   | Un-select wpad-basic|+| 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   | batctl-full  | Un-select batctl-default |
 |Network  | mosquitto-client-ssl  | Note the **CLIENT** package | |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.
 +