Build Thread: HaLow for Raspberry Pi OS

Was this a mix of OpenMANET and piOS nodes? And was it an OpenMANET or piOS node that was power cycled?

Waiting on the kernel to build with the full morse version of mesh_hwmp.c and will report back.

1 Like

Just 2 pi5s running the same build I laid out in my post.

I switched to the fully-morse version of mesh_hwmp.c and I’m still getting kernel panics whenever a node is rebooted.

What’s the correct way to cleanly disconnect a node?

I came up with this:

ip link set bat0 down
batctl if del wlan1
ip link set wlan1 down
wpa_cli -p /var/run/wpa_supplicant_s1g -i wlan1 terminate

From dmesg I was trying to troubleshoot earlier:

[ 306.842936] batman_adv: bat0: The MTU of interface wlan1 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem. 
[ 306.842946] batman_adv: bat0: Interface activated: wlan1 
[ 317.914487] batman_adv: bat0: WiFi driver or ethtool info does not provide information about link speeds on interface wlan1, therefore defaulting to hardcoded throughput values of 1.0 Mbps. Consider overriding the throughput manually or checking your driver.

Kinda stuck here now. Not sure if I’ve missed something super obvious…

Dang! Okay I’ll do my best to review my steps tomorrow but I followed them top to bottom for what I posted here. You’re using all the same hardware such as seeedstudio hats and pi5s?

Thank you! I’m going to take another pass at your steps too but with the desktop version 2025-05-13-raspios-bookworm-arm64.img.xz mentioned in the top post.

I also wanted to ask if you could share the final versions of include/net/mac80211.h, net/mac80211/debugfs.c and net/mac80211/mesh_hwmp.c that you ended up with?

And yes, same hardware.

  1. Pi 5 4 GB
  2. Seeed HaLow module: Wio-WM6108 Wi-Fi HaLow Mini-PCIe Module
  3. Seeed mini PCIe hat: WM1302 Raspberry Pi Hat

I’ve tried with both of these releases of piOS: 2025-11-24-raspios-bookworm-arm64-lite.img.xz and with 2025-05-13-raspios-bookworm-arm64-lite.img.xz.

Is this what you mean by Modify wpa_supplicant/.config to enabled MESH?

# echo "CONFIG_IEEE80211AH=y" >> wpa_supplicant/.config
# echo "CONFIG_MESH=y" >> wpa_supplicant/.config
# echo "CONFIG_SAE=y" >> wpa_supplicant/.config
# echo "CONFIG_NO_WPA_PASSPHRASE=y" >> wpa_supplicant/.config

And for future reference here’s the MM version of that file: rpi-linux/net/mac80211/mesh_hwmp.c at mm/rpi-6.12.21/1.16.x · MorseMicro/rpi-linux · GitHub

I actually wrote it multiple times because I kept forgetting :laughing: . But what you showed should be okay. I actually only changed CONFIG_MESH.

That’s for the link. That’s the file I ended up using after the cherry picking was done to just fully replace.

Still working on getting you answers to your last post for the final versions of the other files. Didn’t ignore ya.

1 Like

I tried with the same 2025-05-13-raspios-bookworm-arm64.img.xz linked in the original post and with only CONFIG_MESH=y for wpa_supplicant and still getting kernel panics.

Always after 12ish seconds. Here’s the last thing shown by watch -n 1 batctl o on the two nodes that KP:

[B.A.T.M.A.N. adv 2024.2, MainIF/MAC: wlan1/a8:dd:9f:4d:33:33 (bat0/b2:8b:19:f2:6c:61 BATMAN_V)]
   Originator        last-seen ( throughput)  Nexthop           [outgoingIF]
   a8:dd:9f:4d:11:11   12.480s (        3.5)  a8:dd:9f:4d:22:22 [     wlan1]
 * a8:dd:9f:4d:11:11   12.480s (        7.1)  a8:dd:9f:4d:11:11 [     wlan1]
   a8:dd:9f:4d:22:22    1.204s (        3.3)  a8:dd:9f:4d:11:11 [     wlan1]
 * a8:dd:9f:4d:22:22    1.204s (        7.1)  a8:dd:9f:4d:22:22 [     wlan1]


 [B.A.T.M.A.N. adv 2024.2, MainIF/MAC: wlan1/a8:dd:9f:4d:22:22 (bat0/82:84:98:10:78:c7 BATMAN_V)]
   Originator        last-seen ( throughput)  Nexthop           [outgoingIF]
 * a8:dd:9f:4d:11:11   12.084s (        7.1)  a8:dd:9f:4d:11:11 [     wlan1]
   a8:dd:9f:4d:11:11   12.084s (        3.5)  a8:dd:9f:4d:33:33 [     wlan1]
   a8:dd:9f:4d:33:33    0.480s (        3.5)  a8:dd:9f:4d:11:11 [     wlan1]
 * a8:dd:9f:4d:33:33    0.480s (        7.1)  a8:dd:9f:4d:33:33 [     wlan1]

I’m currently going through the top level process with a PCIe MM6108IQ chip from Heltec over PCIe and wondering if anyone has tried this. I see for USB there is no Device Tree setup needed. Hoping that’s the case with PCIe as well