56 Commits

Author SHA1 Message Date
James Haggerty
c64c8b7db5 morse-leds -> morse-led-pwm/morse-led-rgb: (APP-3332, PR #891) split artini/ekh03 LED handling
Although the colours are mostly the same, the method of interaction
is different enough that the simplest thing to do is create
a new package.

* morse-led-pwm-multicolor -> morse-led-artini: (APP-3332) split artini/ekh03 LED handling

Rename morse-led-pwm to morse-led-artini, since it does some
artini specific setup.

Approved-by: Sophronia Koilpillai
Approved-by: Arien Judge
Approved-by: Evan Benn
2025-03-02 22:42:43 +11:00
James Haggerty
9b2a6150b3 morse-button: (APP-3332, PR #892) make button use diag.sh for LEDs
Now that we have the ability to override the base status LED behaviour,
it's cleaner to use this for all LED interactions.

While we're here, copy the behaviour on morse-modeswitch-button
of setting the state on the timeout to help indicate you can
release the button.


Approved-by: Arien Judge
Approved-by: Evan Benn
2025-03-02 22:42:43 +11:00
James Haggerty
b828bedc50 memtester: (APP-3632, PR #896) add memtester package
I've used this a couple of time for Artini, and thought it
may as well sit in morse_feed if we need it. I'm not planning
to put it into any of the board configs.


Approved-by: Sophronia Koilpillai
Approved-by: Arien Judge
Approved-by: Evan Benn
2025-03-02 22:42:43 +11:00
James Haggerty
a045c755a2 morse-boot-prints: (APP-3628, #893) increase boot print delay
This allows more time for slow devices (like EKH03s) to finish
their network setup before we print out the status message,
which means the status message is more likely to be the last
message (easier to see) and we're more likely to have
discovered any addresses.


Approved-by: Sophronia Koilpillai
Approved-by: Arien Judge
Approved-by: Evan Benn
2025-03-02 22:42:43 +11:00
Evan Benn
1a32e32b7a mt76-e2p: APP-3594: (PR #883) Add a tool to rw mt76 factory partition
The `iwpriv ra0 e2p` printed the factory partition data (the eeprom in
mt76 driver language). Create a tool that prints and edits that partition in the same way, for the inspection of the calibration data.

Approved-by: James Haggerty
Approved-by: Sophronia Koilpillai
2025-03-02 22:42:43 +11:00
James Haggerty
33f4f47616 hostapd_s1g/wpa_supplicant_s1g: (APP-3382, PR #811) fix options selection
When an option like CONFIG_EAP was enabled, it was actually selecting
CONFIG_EAP*

This was a problem with CTRL_IFACE, because it ended up selecting
CTRL_IFACE_DBUS_NEW.

The 'good' news is we already have a half decent mechanism
(EDITS) for doing complex multiple changes, so let's remove this footgun.

I've selected things that probably don't make sense to ensure
that the _only_ thing we change here is CTRL_IFACE_DBUS_NEW:

; diff /tmp/hostapd_before /tmp/hostapd_after
; diff /tmp/wpa_supplicant_before /tmp/wpa_supplicant_after
383c383
< CONFIG_CTRL_IFACE_DBUS_NEW=y
---
> #CONFIG_CTRL_IFACE_DBUS_NEW=y


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
0f1d8be588 wpa_supplicant_s1g: (APP-3372, PR #800) make wpa_supplicant dbus optional
The intent here is to make it optional in the Makefile.

If we want to have it always on for ekh01, I'm fine with this, and we
can set it always enabled in the board config (and indeed matter
could have this as a dependency). However, I would prefer NOT to ship
this on Artini; it also blows out our 16mb image.


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
fb738aa690 hostapd_s1g/wpa_supplicant_s1g: (APP-3347, PR #802) fix dpp channel patch typo
I did this exact sequence of stupid last time.

What happened is that I pulled the patch off the top of my hostapd
tree forgetting that I'd had to amend it last time, so duplicated
this error.

Then I initially didn't _see_ the error because when
hostapd_s1g is compiled it doesn't compile any of the wpa_supplicant
stuff, so we only saw it when I actually put the other patch in.


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
0de1362ec4 wpa_supplicant_s1g: (APP-3347, PR #792) fix dpp channels for wpa_supplicant
We really should build both these packages from the same source.


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
80b60561a8 hostapd_s1g: (APP-3347, PR #778) disable channels 1/2 for dpp chirp
This is supposedly not properly supported by MM6108, and recent US BCFs
have them disabled which causes issues.


Approved-by: Sophronia Koilpillai
Approved-by: Arien Judge
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
Sophronia Koilpillai
ed06f02ce8 morse-mgmt-iface:(APP-3518, PR #867) Type check the return codes to only fail on false and not on empty string output
Approved-by: James Haggerty
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
0d9791cb5d morse-boot-prints: (APP-3503, PR #857) switch to using ip instead of ifconfig
ifconfig can't show all IPs, which is bad when we assign a management
IP.

cf:

br-lan    Link encap:Ethernet  HWaddr 94:83:C4:55:F4:A2
          inet addr:192.168.12.10  Bcast:192.168.12.255  Mask:255.255.255.0

vs

br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 94:83:c4:55:f4:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.10/24 brd 192.168.12.255 scope global br-lan
    inet 192.168.200.1/24 scope global br-lan


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
f865245e5c wizard-config: (APP-3457, PR #861) don't log exception in this reasonably normal situation
If we're connecting to a normal device (i.e. not Artini) then
the wizard-config service won't be running. Since this is not
really an exceptional situation, don't spew stacktraces
(that end up in syslog).


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
Sophronia Koilpillai
25a52fdcfc morse-mgmt-iface:(APP-3438, PR #852) Migrate the mgmt-alias-iface setup to ucode and handle edge cases
Approved-by: James Haggerty
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
839b2c0b03 wpa_event_listener: (APP-3072, PR #849) if hostapd/wpa_supplicant restarts, clear LED
If hostapd/wpa_supplicant restarts, then wpa_event_listener
quits and any timeout is lost. But it doesn't call the action
script, which means the LED is stuck flashing with the wrong colour.

The easy fix here is to call it finished on termination.
This works fine for hostapd (since hostapd will clear the
cached keys, so it's a proper termination and it's fine
to initiate a dpp push button again), but for wpa_supplicant
it's not great since this will let the user start another
DPP session and potentially clash on the hostapd side.
However, I think this is an edge case, and would prefer
to keep the logic simple and make sure wpa_event_listener
properly cleans up when it exits.


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
Sophronia Koilpillai
269e9cd3e0 morse-mgmt-iface: (APP-2012, PR #843) Fix spaces in Makefile
Approved-by: Evan Benn
Approved-by: Milad Mohtashamirad
2025-03-02 22:37:31 +11:00
Sophronia Koilpillai
34c827d965 (APP-2012, PR 836) Create a management alias interface
Approved-by: James Haggerty
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
d6e1663203 wpa_event_listener: (APP-3074, PR #826) explain why not catching DPP failures
Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
90910e8c2e morse-mode: (APP-3395, PR #819) correctly preference STA in mode
When we have multiple modes, we preference STA/MESH so
we can better identify Extender and Mesh states.
Or at least that was the intent...


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
c1b898cdb0 morse-mode: (APP-3379, PR #810) make matter mode query work properly
The matter PR didn't load the matter config, so this would
always fail.


Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
Sophronia Koilpillai
305f07f55a utils-wpa_event_listener: (APP-3373, PR #801) Make LED blink until DPP timeout and block DPP button until timeout (120s) to avoid issues
Approved-by: James Haggerty
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
Sophronia Koilpillai
60f1883f04 morse-modeswitch-button: (APP-3373, PR #803) Increase the DPP button hold time to 2 sec
Approved-by: James Haggerty
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
James Haggerty
7ee5d650de luci-app-morseapwizard/morse-mode: (APP-3341, PR #789) show reset instructions on ap wizard page if in extender mode
If in extender mode, the wizard page didn't make much sense. Encourage users to reset their device instead.

Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 22:37:31 +11:00
Kshitij Jain
a254b69485 Merged in SW-12275-add-support-for-releasing-matter-with-openwrt (pull request #731)
SW-12275 add support for releasing matter with openwrt

* luci translation

* fix linter issues

* dbus dependency for wpa_supplicant_s1g

* Merge branch 'main' into SW-12275-add-support-for-releasing-matter-with-openwrt

* review feedback. Update matter qrcode logic. cosmetic changes.

* update pot and po files

* bad globals pipeline err

* pipeline fix

* pipeline fix

* Merge branch 'SW-12275-add-support-for-releasing-matter-with-openwrt' of bitbucket.org:morsemicro/morse_feed into SW-12275-add-support-for-releasing-matter-with-openwrt

* shift luci-app-matter to matter-feed repo

* remove code from sta.js and morseconf.js

* remove new line

* add hasMatter to config.js

* Merged main into SW-12275-add-support-for-releasing-matter-with-openwrt

* add morse-config-diagram matter

* update pot file got luci-mod-home

* keep linter happy

* add uci load to index.js

* Merge branch 'main' into SW-12275-add-support-for-releasing-matter-with-openwrt

* update home.pot

* update ekhwizard pot file

* update morseconf pot file

* Merge branch 'main' into SW-12275-add-support-for-releasing-matter-with-openwrt

* remove boot_prints.sh and debug log

Approved-by: Simon Morris
Approved-by: Arien Judge
Approved-by: James Haggerty
2025-03-02 22:37:31 +11:00
James Haggerty
3d0bde9b0d boot-prints/morse-boot-prints/morse-mode: (APP-2042, PR #774) separate out mode logic from boot prints
Also align modes with planned Artini modes, and
generate/normalise banners.

This will allow us (in subsequent PRs) to discover the mode via ubus.

Approved-by: Sophronia Koilpillai
Approved-by: Arien Judge
Approved-by: Evan Benn
2025-03-02 21:07:41 +11:00
James Haggerty
4fc42100e4 wizard-config: (APP-3330, PR #769) advertise on wlan
umdns by default only interacts with lan, but for us
'wlan' is also a local network.


Approved-by: Sophronia Koilpillai
Approved-by: Milad Mohtashamirad
2025-03-02 21:07:41 +11:00
James Haggerty
8546160928 wizard-config: (APP-3331, PR #770) wizard-config path-v1
Approved-by: Sophronia Koilpillai
Approved-by: Milad Mohtashamirad
2025-03-02 21:07:41 +11:00
James Haggerty
cccf9b1c03 morse-leds: (APP-3333, PR #771) fix artini OpenWrt env partition size
This should align with what we have in the 'normal' setup,
which changed.


Approved-by: Sophronia Koilpillai
Approved-by: Milad Mohtashamirad
2025-03-02 21:07:41 +11:00
James Haggerty
557fc3de18 morse-leds: (APP-3334, PR #772) workaround status LED bug
So we can ship a nice 2.6.7, let's solve this the stupid
way.


Approved-by: Sophronia Koilpillai
Approved-by: Milad Mohtashamirad
2025-03-02 21:07:41 +11:00
James Haggerty
33769b0e13 wizard-config: (APP-3299, PR #751) auto-configure client device
This is like a cut-rate DPP: requires TCP/IP connection, and
no security on the link.

Most of the client/server side is run via a ucode script (wizard-config).
Refer to HELP at the top of this for more info about what is going
on here.

This is to get around the problem of wizards on bridged station devices
which we either don't have access to _or_ the problem of wizards which
change IPs under you.

Client config will only happen on first boot after a reset.

Approved-by: Sophronia Koilpillai
Approved-by: Evan Benn
2025-03-02 21:07:41 +11:00
Evan Benn
eec5432f7c persistent-vars-storage: (PR #752): Add READ -a flag to read all vars
Define all the known vars and a flag that prints them all. This is only
useful for developers who forget the names of vars.

Missing vars are printed like `mm_mode=`, so there is no way to
distinguish empty and missing vars.  Non printable characters are not
escaped, nor are newlines or = signs.  This is only useful for
developers.

This works on EKH01, although it is not very useful. It spews a lot of
text to stderr.

Approved-by: James Haggerty
Approved-by: Sophronia Koilpillai
2025-03-02 21:07:41 +11:00
Evan Benn
4d44171796 morse-leds: APP-3302: (PR #749): Move DPP blink from status to halow LED
Also disable the network leds in reboot and failsafe modes.

Approved-by: James Haggerty
Approved-by: Sophronia Koilpillai
2025-03-02 21:07:41 +11:00
Evan Benn
b392dfc815 morse-leds: APP-3302: (PR #750): Update script to use PWM status LED
The status LED (LED 1) is now a PWM RGB LED. Update the script to
explicitly control the colors of the LEDs. Decrease the intensity of the
blue LED a little.

Approved-by: James Haggerty
Approved-by: Sophronia Koilpillai
2025-03-02 21:07:41 +11:00
Morse Micro
795d6724dd morse-modeswitch-button: add Morse Micro modeswitch button package
This package adds Artini button functionality to OpenWrt.
The Artini button is used for dpp push button, factory reset, and
on longer presses, includes a mode change with that factory reset.

If pressed and release quickly, dpp starts.
If pressed and held until the system LED flashes slowly, move to
AP mode and factory reset.
If pressed and held until the system LED flashes quickly, move to
station mode and factory reset.
2025-03-02 17:24:57 +11:00
Morse Micro
ef3c38a4a1 persistent-vars-storage-ubootenv: handle artini persistent config
Artini stores some configuration values at production time in the
factory partition. When these values aren't found in the uboot-env
partition, we fall back to read the factory partition.
2025-03-02 17:24:36 +11:00
Morse Micro
4f5896414c morse-leds: add Artini LED support
Artini has additional LEDs and utilises full RGB on the system LED
to indicate different device states. Add handling to read the device
mode from persistent storage and indicate the correct LED colour
accordingly.
2025-03-02 17:24:07 +11:00
Morse Micro
0a2fa56251 virtual-wire: add virtual wire package
The Morse Micro virtual wire package allows for configuration of the
device into a virtual wire mode at boot time.
2025-03-02 16:34:29 +11:00
Morse Micro
b25d35f18b dpp-key-recovery: add package to load dpp keys from persistent storage
This package loads the dpp keys from storage and generates qr code on boot
2025-03-02 16:34:29 +11:00
Milad Mohtashamirad
b3f381e42c packages : (APP-1674) add dppd-creds-dummy package. 2025-03-02 16:34:29 +11:00
Morse Micro
c8fb813f41 dppd: add Morse Micro dpp daemon package and dependency
adds recipe for the Morse Micro dpp daemon and an updated version of libmicrohttpd
as required by the package - replicating that from the OpenWrt upstream.
2025-03-02 16:34:29 +11:00
Arien Judge
4cf54fa139 smart-manager: initial smart-manager package definition
Adds the 1.12.4 release of Morse Micro smart manager to the feed.
2025-03-02 16:32:20 +11:00
Morse Micro
9328f48913 morse_mesh11sd: add the Morse Micro modified mesh11sh package
mesh11sd is used by OpenWrt to provide dynamic configuration for 802.11s
mesh-like networks.

Because the Morse Micro design/implementation of mesh requires configuration
changes to be made to the supplicant configuration files, rather than through
iw/netlink, the modifications in this package allow for the mesh11sd package
to reload the newly applied configuration.
2024-10-04 14:17:36 +10:00
Morse Micro
467723e524 morse-wavemon: add the Morse Micro modified wavemon package
The Morse Micro variant of wavemon adds handling to unroll the
802.11ac shim layer used by the Morse Micro driver.
Additionally, this OpenWrt package includes a simple script, pt,
to better enable field testing when connecting to the terminal
of Morse Micro evaluation kits with a smartphone.
2024-10-04 14:17:36 +10:00
Morse Micro
f353aee221 nload: add package for nload
The below description of nload is taken from the nload README:

nload is a console application which monitors network traffic and
bandwidth usage in real time. It visualizes the in- and outgoing
traffic using two graphs and provides additional info like total
amount of transfered data and min/max network usage.
2024-10-04 14:17:36 +10:00
Morse Micro
94044ffdf4 morse-leds: add utility to override OpenWrt LED handling
OpenWrt deploys a script to handle LED aliases defined in devicetree.
The morse-leds package deploys an override script to allow additional,
device-tree defined LEDs, to extend device state indication.

This packages requires a supporting change in the base system to load
the override script if detected.
2024-10-04 14:17:36 +10:00
Morse Micro
eabdf5df9e morse-button: button handler for Morse Micro evaluation kits
Morse Micro evaluation kits typically overload a single button
to handle different actions. This package deploys the relevant
button script to handle these actions.
2024-10-04 14:17:36 +10:00
Morse Micro
a66588de91 boot-prints: adds terminal utility to display the current configured mode
On reconfiguration of the Morse Micro chip, or at boot, this package examines
the current configured device mode (eg AP, Router, Station, Mesh etc), and
displays a splash screen in the console.
2024-10-04 14:17:36 +10:00
Morse Micro
dcf3a8d43e antenna-select: simple VoCore antenna control scripts
The antenna-select package is used to enable and disable the second
antenna on Morse Micro evaluation kits based on the VoCore module,
or other platforms using the MT7603 2.4 GHz Wi-Fi block.
2024-10-04 14:17:36 +10:00
Morse Micro
3d1c17f3da persistent-vars-storage-ubootenv: adds a uboot-env compatible persistent storage utility
The Morse Micro persistent-vars-storage package is used to load and store certain device
parameters or configuration from non-volatile storage on a device. This is useful for a
more persistent configuration than what is offered by UCI. Typically used for dpp keys.

The uboot-env version targets any device which can allocate a uboot-env style partition
in flash dedicated for this purpose. It is recommended to not use the actual uboot-env
partition, but rather create a new partition using the uboot-env format.
2024-10-04 14:17:36 +10:00
Morse Micro
7eb52b2b31 persistent-vars-storage-bcm2711: adds a Raspberry Pi compatible persistent storage utility
The Morse Micro persistent-vars-storage package is used to load and store certain device
parameters or configuration from non-volatile storage on a device. This is useful for a
more persistent configuration than what is offered by UCI. Typically used for dpp keys.

The bcm2711 version targets Raspberry Pis and pushes this configuration to the on-board
eeprom.
2024-10-04 14:17:36 +10:00