Openwrt 24.10.0-rc7 for BPI Openwrt one

To start I am very new to openwrt, I am trying to setup a mm6108-mf08651-us with a Banana pi openwrt one via the mikro bus spi. Here are my questions.

It appears that the Morse Micro openwrt is for openwrt 23.05.5 and the bpi one is supported in 24.10.0-rc7 which is very new. Is it feasible for me to apply the changes morse has made to openwrt to the 24.10 version to build openwrt?

Upon doing so is there anything special I need to do to handle the morse module over spi? will this work with the preconfigured morse openwrt?

Thanks in advanced for any pointers on this!

Hi @glg9369

Answering your question backwards!

For SPI, you will want to make sure the driver is compiled with SPI support, and you have a node in the devicetree to correctly load the driver as, unlike SDIO and USB devices, SPI devices don’t register IDs with the host subsystem to probe the driver on detection.

Our EKH01 kits are configured to function with SPI simply by moving some resistors on the Raspberry Pi hat. This may serve as an example for how to bring up a SPI device in software.

While it is possible to do a baseline update of the Morse Micro changes to a new OpenWRT version, there are a couple of notable areas which may be challenging. We apply patches to the linux kernel and mac80211 which may differ for different kernel versions - I will need to confirm that we have patches suitable for the kernel/mac80211 combination used in OpenWrt 24. I’ll confirm this version for you shortly. Unfortunately we haven’t provided a repository to distribute these patches yet (though it is something we will do!). For some of the OpenWrt user experience features (eg luci) you will need to perform a baseline update of iwinfo and LuCI in the Morse Micro GitHub. There’s probably further detail left out on this message!

If I were tackling this, I’d start by adding the morse-feed repository to your feeds.conf file and make sure you can compile the driver package after selecting it in menuconfig. See [OpenWrt Wiki] OpenWrt Feeds. At a bare minimum, additional software components you will want to compile and load are hostapd_s1g, wpa_supplicant_s1g, morse_cli, firmware_binaries and bcf_binaries. netifd_morse will add uci support for the Morse driver.

At the very least, you should be able to insert the driver and verify the software components can run after cross compilation. The kernel patches shouldn’t prevent the driver from functioning, but may just impact some specific 802.11ah features.

Apologies for the long message! I hope it made sense. Feel free to continue asking any questions around this and we will be happy to support!
We are working on some ways to improve this level of board support and some documentation around porting. However I have no clear timeline for these updates yet.

2 Likes

Thank you!!! This is so very helpful!! It seems like this is very doable right now, and will be easier in the future. I will use your advice and see how far I get. I will post questions and updates as I make progress!

Where would i find the firmware/bcf binaries? and netifd_morse, I see all the others in the feeds and repos on github. I am trying to get familiar with what you have available.

You can find the firmware binaries in the tarball attached to this release Release Morse Micro 1.12.4 release · MorseMicro/firmware_binaries · GitHub
Similar for the bcf binaries Release Morse Micro 1.12.4 release · MorseMicro/bcf_binaries · GitHub

netifd-morse lives within morse-feed as it is just a small number of scripts.

Hi @ajudge,

One issue here is the OpenWrt upstream and 24.10 are on a 6.6 kernel but using mac80211 from Linux backports 6.12.

So the morse_driver will need to support 6.12 for this to work.

Do you have patches yet for 6.12?

The easiest path at the moment might be to backport the OpenWrt One support from 24.10 into our fork of 23.05, as I believe all the hardware is supported in 23.05, it’s just that there’s no board definition. It might also be helpful to go back a bit earlier in the tree when the OpenWrt One was added, as that might have been closer to 23.05.

@tharvey unfortunately we don’t have patches yet for 6.12. I’ll chase them internally.

In the meantime, sticking to OpenWrt 23.05 and backporting OpenWrt One board support as suggested by James may be the best path forward.