RADIUSdesk

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
md:openwrt-meshdesk_17 [2021/11/20 17:37] – [Select Packages To Include With Firmware] adminmd:openwrt-meshdesk_17 [2021/11/20 18:18] (current) – [captive_portal.json] admin
Line 112: Line 112:
         * 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.
 +
 +<WRAP center round info 90%>
 +Although the  **OM2P** has 16M FLASH there is a 7M fail-safe partition which complicates things a bit.
 +To keep things small I //included// the mesh parts (Batman) but //excluded// **coova-chilli** and the full version of **wpad** in the firmware I created
 +</WRAP>
 +
  
 ===== Initial File Preparation ===== ===== Initial File Preparation =====
Line 186: Line 192:
         * There is also another LED used to indicate if the device has proper contact with the controller. (The LED can be either ON or OFF in such a case)         * There is also another LED used to indicate if the device has proper contact with the controller. (The LED can be either ON or OFF in such a case)
         * Finally on mesh networks we can also specify a LED that will indicate mesh traffic flowing through a node.         * Finally on mesh networks we can also specify a LED that will indicate mesh traffic flowing through a node.
-        * Again lets look at the **Xiaomi 4A 100M** as a sample.+        * Again lets look at the **OM2P** as a sample.
 <code bash> <code bash>
 #change directory to where the LEDs are #change directory to where the LEDs are
Line 192: Line 198:
 ls  ls 
 #These are the LEDs available #These are the LEDs available
-blue:power    mt76-phy0     mt76-phy1     yellow:power+ath9k-phy0        om2p:blue:lan     om2p:blue:power   om2p:blue:wan     om2p:green:wifi   om2p:red:wifi     om2p:yellow:wifi
 #turn it off #turn it off
-echo "0"yellow\:power/brightness+echo "0"om2p\:blue\:lan/brightness
 #turn it on #turn it on
-echo "1"yellow\:power/brightness +echo "1"om2p\:blue\:lan/brightness 
-#turn it off +#Go through all of them and confirm which is which on the device
-echo "0"blue\:power/brightness +
-#turn it on +
-echo "1" > blue\:power/brightness+
 </code> </code>
-  * In our case we can use the **yellow LED** to light up if the comms to the controller is broken. +  * This device has an interesting LED. It is the **tricolor wifi** LED. 
-  * We can use the **blue LED** to signal during startup and neighbor counts. +  * In our case we can use the **om2p:yellow:wifi** of the tricolor to light up if the comms to the controller is broken. 
-  * There is no extra LED so we will not define one for the mesh traffic. +  * We can also use the **om2p:green:wifi** of the tricolor to light up if the comms to the controller is OK. 
 +  * We can use the **om2p:blue:wan LED** to signal during startup and neighbor counts. 
 +  * We can use **om2p:blue:lan** for the mesh traffic indicator
   * With this info we can create a hardware section in ///etc/config/meshdesk//   * With this info we can create a hardware section in ///etc/config/meshdesk//
 <code bash> <code bash>
-config hardware 'xiaomi_4a_100+config hardware 'om2p                                                        
- option morse_led '/sys/class/leds/blue:power/brightness' +        option morse_led '/sys/class/leds/om2p:blue:wan/brightness'       
- option internet_led '/sys/class/leds/yellow:power/brightness' +        option internet_led '/sys/class/leds/om2p:yellow:wifi/brightness' 
- option wifi_led 'led0'+        option wifi_led 'om2p:blue:lan'
 </code> </code>
   * This have to match the value for hardware under the **settings** section   * This have to match the value for hardware under the **settings** section
 <code bash> <code bash>
 config settings 'settings' config settings 'settings'
- option hardware 'xiaomi_4a_100'+ option hardware 'om2p'
  option id_if 'eth0'  option id_if 'eth0'
  option lan_up_file '/tmp/lan_up'  option lan_up_file '/tmp/lan_up'
Line 223: Line 228:
 </WRAP> </WRAP>
  
-  * Later we will also use the value of **xiaomi_4a_100** to define the hardware on the controller.+  * Later we will also use the value of **om2p** to define the hardware on the controller.
   * The final tweak for the hardware in the config file is the interface that must be used as the **id_if**.   * The final tweak for the hardware in the config file is the interface that must be used as the **id_if**.
         * It will typically be **eth0**.         * It will typically be **eth0**.
-        * On devices like the MT7621 based boards it will typically be **wan**. 
   * Since we want the **yellow LED** to be off when the comms to the controller is fine we need to check what the current setup is   * Since we want the **yellow LED** to be off when the comms to the controller is fine we need to check what the current setup is
 +  * With this device we also want to light up the green LED when the comms is fine.
 <code bash> <code bash>
 vi /etc/MESHdesk/reporting/report_to_server.lua  vi /etc/MESHdesk/reporting/report_to_server.lua 
Line 238: Line 243:
         checkForContollerReboot('0');                           checkForContollerReboot('0');                  
     end     end
 +    
 +#Also modify the internetLED function to look like this:
 +function internetLED(state)            
 +    local hardware  = x.get('meshdesk', 'settings', 'hardware');
 +    local led       = x.get('meshdesk', hardware, 'internet_led');
 +    if(state == '0')then                                                 
 +         os.execute('echo 1 > /sys/class/leds/om2p\:green\:wifi/brightness' );
 +    end                                             
 +    if(state == '1')then                                   
 +         os.execute('echo 0 > /sys/class/leds/om2p\:green\:wifi/brightness' );
 +    end                            
 +    os.execute('echo '..state..' > ' .. led );                   
 +end
 +
 </code> </code>
 +
 +  * To activate the mesh traffic indicator LED you need to edit the ///etc/config/system// file's wifi_led section
 +  * See this snippet as reference.
 +<file bash>
 +
 +config led 'wifi_led'
 + option name 'wifi'
 + option trigger 'netdev'
 + option dev 'bat0'
 + option mode 'link tx rx'
 + option sysfs 'om2p:blue:lan'
 +</file>
  
   *  The following table lists some of the important items with comments    *  The following table lists some of the important items with comments 
  
 ^ Item        ^ Typical value           ^ Comment    ^ ^ Item        ^ Typical value           ^ Comment    ^
-| settings -> hardware | xiaomi_4a_100 | Must match a hw definition in the file itself  |+| settings -> hardware | om2p | Must match a hw definition in the file itself  |
 | settings -> id_if  | eth0 | eg eth0, eth1 or wan - NOT eth0.1 (for those boards its just eth0)  | | settings -> id_if  | eth0 | eg eth0, eth1 or wan - NOT eth0.1 (for those boards its just eth0)  |
 | settings -> skip_radio_0  | 0 | set to 1 when radio0 is a 5G radio and you don't want to use it for config SSID  | | settings -> skip_radio_0  | 0 | set to 1 when radio0 is a 5G radio and you don't want to use it for config SSID  |
Line 257: Line 288:
  
   * We are nearly done. The last stop is to edit the **captive_config.json** file to fit our specific hardware.   * We are nearly done. The last stop is to edit the **captive_config.json** file to fit our specific hardware.
 +
 +
 +==== captive_portal.json ====
 +  * Edit the file ///etc/MESHdesk/configs/captive_config.json//.
 +  * This file is a JSON structure that the device uses as a reference to configure itself with a special captive portal when it is not yet managed by the controller.
 +  * There are only two items that might need to be tweaked
 +        * The radio number for the 2.4G band.
 +        * The **ifname** for the **lan** interface (We use the WAN port in out implementation)
 +  * With the **OM2P** radio0 is the 2.4G radio so no need to tweak that item. (If the hardware has radio1 as the 2.4G band simply look for all the references to **radio0** and make them radio1)
 +  * See this snippet of a device which has radio1 using the 2.4G band
 +<code javascript>
 +"wireless": [
 +            {
 +                "wifi-device": "radio1",
 +                "options": {
 +                    "channel": 1,
 +                    "disabled": 0,
 +                    "hwmode": "11g",
 +                    "htmode": "HT20"
 +                }
 +            },  
 +            {
 +                "wifi-iface": "two",
 +                "options": {
 +                    "device": "radio1",
 +                    "ifname": "two0",
 +                    "mode": "ap",
 +                    "network": "ex_two",
 +                    "encryption": "none",
 +                    "ssid": "_Replace_",
 +                    "key": "",
 +                    "hidden": false,
 +                    "isolate": false,
 +                    "auth_server": "",
 +                    "auth_secret": ""
 +                }
 +            },
 +            {
 +                "wifi-iface": "web_by_w",
 +                "options": {
 +                    "device": "radio1",
 +                    "mode": "sta",
 +                    "network": "web_by_w",
 +                    "encryption": "psk2",
 +                    "key": "radiusdesk",
 +                    "ssid": "meshdesk_config",
 +                    "disabled": "1"
 +                }
 +            }
 +        ],
 +</code>
 +  * With the **OM2P** the **ifname** we use is **eth0** for the **lan** interface definition.
 +<code javascript>
 +{
 +    "interface": "lan",
 +    "options": {
 +        "ifname": "eth0",
 +        "type": "bridge",
 +        "proto": "static",
 +        "ipaddr": "10.50.50.50",
 +        "netmask": "255.255.255.0"
 +    }
 +},
 +</code>
 +  * Once the tweaks are completed we can test everything out. 
 +  * The following link shows how to point the device to the controller using the GUI.
 +  * [[2021:xiaomi_md|OpenWrt Access Points Running MESHdesk Firmware]]
 +  * 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: [[2021:rd_full_hardware|Hardwares]] (Again Once Off)
 +  * [[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/zzz-MESHdesk/files/MESHdesk/configs/  |
 +|/etc/config/meshdesk  | openwrt/package/zzz-MESHdesk/files/MESHdesk/  |
 +|/etc/MESHdesk/configs/captive_config.json  |openwrt/package/zzz-MESHdesk/files/MESHdesk/configs/  |
 +|/etc/MESHdesk/reporting/report_to_server.lua  |openwrt/package/zzz-MESHdesk/files/MESHdesk/reporting  |
 +
 +  * This brings us to the end of the page on how to build MESHdesk firmware for specific hardware.