This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
md:openwrt-meshdesk [2021/11/10 09:00] admin [Select Packages To Include With Firmware] |
md:openwrt-meshdesk [2022/03/14 12:15] (current) admin [Select Packages To Include With Firmware] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== OpenWRT 21.02.x with MESHdesk packages ====== | ====== OpenWRT 21.02.x with MESHdesk packages ====== | ||
+ | <WRAP center round info 90%> | ||
+ | Follow these instructions to build the MESHdesk firmware on devices capable of running OpenWRT version 21.02.x | ||
+ | </WRAP> | ||
+ | |||
===== Minimum Hardware Requirements ===== | ===== Minimum Hardware Requirements ===== | ||
* The minimum hardware requirements are: | * The minimum hardware requirements are: | ||
Line 7: | Line 11: | ||
* The hardware does not need a radio on it. | * The hardware does not need a radio on it. | ||
* Hardware without radios can be managed using **APdesk**. | * Hardware without radios can be managed using **APdesk**. | ||
- | * Mediatek and Atheros / Qualcomm SOC devices are supported (which is probably at least 70%+ of today's WiFi Access Points) | + | * Mediatek and Atheros / Qualcomm SOC devices are supported. |
* Other target systems are also supported but have not been thoroughly tested to date. | * Other target systems are also supported but have not been thoroughly tested to date. | ||
* If you are not sure if your hardware will work please visit the OpenWRT website and check. They have an ever growing list of supported hardware. | * If you are not sure if your hardware will work please visit the OpenWRT website and check. They have an ever growing list of supported hardware. | ||
Line 32: | Line 36: | ||
* In this page we will take a **Xiaomi 4A 100M** Access Point as a sample unit. | * In this page we will take a **Xiaomi 4A 100M** Access Point as a sample unit. | ||
* You can use the hardware of your choice and simply apply the same principles. | * You can use the hardware of your choice and simply apply the same principles. | ||
- | * We also assume you followed [[md:openwrt-meshdesk-prep|these]] instructions to prepare the environment. | + | * Make sure you followed [[md:openwrt-meshdesk-prep|these]] instructions to prepare the environment. |
===== Fetching the MESHdesk package ===== | ===== Fetching the MESHdesk package ===== | ||
Line 38: | Line 42: | ||
<code bash> | <code bash> | ||
#Do this in the working directory e.g. cd 21.02.0 | #Do this in the working directory e.g. cd 21.02.0 | ||
- | git clone git://git.code.sf.net/p/radiusdesk/openwrt-meshdesk openwrt-meshdesk | + | git clone https://github.com/RADIUSdesk/openwrt-meshdesk.git openwrt-meshdesk |
</code> | </code> | ||
* The package has three main components. Each one is located in a unique folder. | * The package has three main components. Each one is located in a unique folder. | ||
- | - **zzz-MESHdesk** - This is the MESHdesk package which will be build by the SDK. | + | - **MESHdesk** - This is the MESHdesk package which will be build by the SDK. |
- **files** - This is the override structure containing files to override during the build process. | - **files** - This is the override structure containing files to override during the build process. | ||
- **luci-app-meshdesk** - This is the Luci application used to enable central control. | - **luci-app-meshdesk** - This is the Luci application used to enable central control. | ||
===== Copying the three components ===== | ===== Copying the three components ===== | ||
- | * The **zzz-MESHdesk** folder needs to be copied under the **package** folder (openwrt/package). | + | * The **MESHdesk** folder needs to be copied under the **package** folder (openwrt/package). |
<code bash> | <code bash> | ||
#cd to the working directory | #cd to the working directory | ||
- | cp -R ./openwrt-meshdesk/zzz-MESHdesk ./openwrt/package | + | cp -R ./openwrt-meshdesk/MESHdesk ./openwrt/package |
</code> | </code> | ||
* The **files** folder needs to sit directly under the **openwrt** folder (root level). | * The **files** folder needs to sit directly under the **openwrt** folder (root level). | ||
Line 71: | Line 75: | ||
scripts/feeds install luci-app-meshdesk | scripts/feeds install luci-app-meshdesk | ||
</code> | </code> | ||
- | * This will result that the MESHdesk Luci application will be listed as one of the available Luci applications. | + | * The result is that the MESHdesk Luci application will be listed as one of the available Luci applications. |
<WRAP center round important 100%> | <WRAP center round important 100%> | ||
Line 81: | Line 85: | ||
===== Select Packages To Include With Firmware ===== | ===== Select Packages To Include With Firmware ===== | ||
* Select the following packages when building the firmware. | * Select the following packages when building the firmware. | ||
+ | * When selecting a package there are the options to build it as a module (M) or fully include it (*). | ||
+ | * **Make sure you select with the (*) option to fully include the package.** | ||
* Package names in bold are required. | * Package names in bold are required. | ||
* The Mosquitto packages are for MQTT support. | * The Mosquitto packages are for MQTT support. | ||
Line 86: | Line 92: | ||
^ Package ^ Location ^ Comment ^ | ^ Package ^ Location ^ Comment ^ | ||
- | | **zzz-MESHdesk** | Base system | | | + | | **MESHdesk** | Base system | | |
| kmod-batman-adv | Kernel Modules -> Network Support | Keep the default options | | | kmod-batman-adv | Kernel Modules -> Network Support | Keep the default options | | ||
| lua-mosquitto | Languages -> Lua | | | | lua-mosquitto | Languages -> Lua | | | ||
Line 112: | Line 118: | ||
* 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. | ||
- | ===== Initial File Preperation ===== | + | ===== Initial File Preparation ===== |
+ | * Use ssh to gain access to the device in order to tweak these files. | ||
==== wan_network ==== | ==== wan_network ==== | ||
* Refer to the default **/etc/config/network** file. | * Refer to the default **/etc/config/network** file. | ||
Line 166: | Line 173: | ||
</file> | </file> | ||
* Next look at the **/etc/MESHdesk/configs/wan_network** file that is derived from it. | * Next look at the **/etc/MESHdesk/configs/wan_network** file that is derived from it. | ||
- | <file bash network> | + | <file bash wan_network> |
config interface 'loopback' | config interface 'loopback' | ||
option proto 'static' | option proto 'static' | ||
Line 231: | Line 238: | ||
* Next we will look at the ///etc/config/meshdesk// file and tweak it to work with our environment and our hardware. | * Next we will look at the ///etc/config/meshdesk// file and tweak it to work with our environment and our hardware. | ||
- | + | <WRAP center round tip 90%> | |
+ | * There is a growing list of existing sample **wan_network** files under the ///openwrt/package/MESHdesk/files/MESHdesk/configs// folder. | ||
+ | * They have a convention of **network_<firmware_id>** e.g. network_xiaomi_4a_100 | ||
+ | * Simply copy that file over //openwrt/package/MESHdesk/files/MESHdesk/configs/wan_network// | ||
+ | * Those files will have a matching existing hardware section in the //openwrt/package/MESHdesk/files/MESHdesk/meshdesk// file | ||
+ | </WRAP> | ||
==== meshdesk ==== | ==== meshdesk ==== | ||
Line 395: | Line 406: | ||
* If it is a new hardware type add it to the controller as described here: [[2021:rd_full_hardware|Hardwares]] (Again Once Off) | * If it is a new hardware type add it to the controller as described here: [[2021:rd_full_hardware|Hardwares]] (Again Once Off) | ||
* [[md:xiaomi-attach|Attach A Device To Demo1 Mesh]] | * [[md:xiaomi-attach|Attach A Device To Demo1 Mesh]] | ||
+ | |||
+ | ===== The Final 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. | ||