mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-29 01:21:16 -07:00
forgectrl: wireless radio-policy revision; runbook: regulatory record
Bump to the forgectrl revision whose startup pass reloads regulatory.db (required while the flashed kernel still has built-in cfg80211 - its boot-time load fails pre-mount and stays failed without a reload), hints a region only when one is set (unset = automatic: the AP's 802.11d country, else world; a 00 hint over the kernel's own world default reports the confusing intersection alias "country 98"), and pins wlan0 power save off. BRINGUP.md: bench record for the wireless-regulatory diagnosis and the live-verified wifi_country / power-save flow; the kernel-batch note now carries CFG80211/MAC80211=m, DEFAULT_PS off, and the lm75 vs-supply.
This commit is contained in:
+46
-3
@@ -103,9 +103,13 @@ motion constants were extracted from the `_RESOURCES` pulse files
|
|||||||
reproduce by reverting the edit (the kernel patch tree is a fresh
|
reproduce by reverting the edit (the kernel patch tree is a fresh
|
||||||
git commit each do_patch, not sstate-restored), so after any
|
git commit each do_patch, not sstate-restored), so after any
|
||||||
overlay edit the module can only ship with a full image flash.
|
overlay edit the module can only ship with a full image flash.
|
||||||
Batch kernel-overlay edits accordingly. Queued for the next batch:
|
Batch kernel-overlay edits accordingly. In the tree awaiting the
|
||||||
`vs-supply = <®_3p3v>` on the lm75 node (the last cosmetic
|
next SD burn (batch of 2026-08-08): CFG80211/MAC80211 flipped to
|
||||||
"dummy regulator" probe line besides the two SoC USB PHYs).
|
modules (the regulatory.db boot-message fix, bench record below),
|
||||||
|
CFG80211_DEFAULT_PS off (power save default; forgectrl pins it off
|
||||||
|
at startup regardless), and `vs-supply = <®_3p3v>` on the lm75
|
||||||
|
node (was the last queued cosmetic "dummy regulator" probe line
|
||||||
|
besides the two SoC USB PHYs). Nothing else queued.
|
||||||
- **Build host**: WSL2 distro `forge-yocto`, tree at
|
- **Build host**: WSL2 distro `forge-yocto`, tree at
|
||||||
`~/dev/openglow-forgefirm`. `~/src-sync.sh` rsyncs the Windows repos in
|
`~/dev/openglow-forgefirm`. `~/src-sync.sh` rsyncs the Windows repos in
|
||||||
(includes `python3-gfhardware` and `grblHAL-glowforge`). Build:
|
(includes `python3-gfhardware` and `grblHAL-glowforge`). Build:
|
||||||
@@ -472,6 +476,45 @@ echoed), modal opens and clears on close; driver smoke: one M8
|
|||||||
flow check verified 10.5/9.5 on the redeployed binary. forgectrl
|
flow check verified 10.5/9.5 on the redeployed binary. forgectrl
|
||||||
pin bumped to the panel rework revision.
|
pin bumped to the panel rework revision.
|
||||||
|
|
||||||
|
**Wireless regulatory + region setting (2026-08-08, later):** the
|
||||||
|
boot-time `cfg80211: failed to load regulatory.db` never was a
|
||||||
|
missing file — packagegroup-base-wifi has always shipped
|
||||||
|
regulatory.db(.p7s) + iw on both images. The cause:
|
||||||
|
imx_v6_v7_defconfig builds cfg80211 IN (=y), so it requests the db at
|
||||||
|
~2.51 s, before `VFS: Mounted root` at ~2.62 s; the load fails (-2)
|
||||||
|
and stays failed — a later `iw reg set` alone does NOT retry the
|
||||||
|
file, only an explicit `iw reg reload` recovers it. Fixes shipped:
|
||||||
|
glowforge.cfg flips CFG80211/MAC80211 to =m (they load with wlcore at
|
||||||
|
~5.5 s, well after mount, so the direct load succeeds — kills the
|
||||||
|
message; in the kernel batch above, awaiting the next SD burn), and
|
||||||
|
forgectrl gained `wifi_country` (System-tab Wireless card, full ISO
|
||||||
|
3166-1 alpha-2 dropdown, default 00 = world) applied via
|
||||||
|
`iw reg reload` + `iw reg set <cc>` at daemon startup and on every
|
||||||
|
change. LIVE-VERIFIED on the flashed 20260808171449 image
|
||||||
|
(hot-deployed forgectrl): startup domain is the db-backed world
|
||||||
|
regdom (it shows the 755–928 MHz S1G rules only the db carries),
|
||||||
|
`POST /settings?wifi_country=US` flipped the kernel to
|
||||||
|
`country US: DFS-FCC`, and clearing the key returned 00 and removed
|
||||||
|
it from the conf. The release image still builds under the 200 MiB
|
||||||
|
slot cap; an explicit wireless-regdb-static image entry was reverted
|
||||||
|
as redundant (packagegroup-base-wifi covers it).
|
||||||
|
Power save: the flashed kernel default is on
|
||||||
|
(CFG80211_DEFAULT_PS=y), so the same forgectrl startup pass pins
|
||||||
|
`wlan0 power_save off` (cold-boot verified off on the flashed
|
||||||
|
image); the kernel batch flips the default off too. Quirk: hinting
|
||||||
|
`iw reg set 00` while the kernel is already in its default world
|
||||||
|
domain makes cfg80211 intersect world-with-world and report the
|
||||||
|
alias `country 98` (identical rules, confusing label) — the startup
|
||||||
|
pass therefore hints a region only when one is set, and hints 00
|
||||||
|
only to revert a live region change. Consequence, reboot-verified:
|
||||||
|
with the db loaded and no user hint, cfg80211 follows the AP's
|
||||||
|
802.11d country IE (the bench AP advertises US — fresh boot came up
|
||||||
|
`country US: DFS-FCC` with the setting unset; no `country=` in the
|
||||||
|
supplicant conf, wl18xx does not self-hint), a user-set region
|
||||||
|
overrides the IE (DE applied while associated to the US AP), and
|
||||||
|
clearing reverts to the 00 hint. The UI labels the default
|
||||||
|
accordingly ("Automatic — AP country, else World").
|
||||||
|
|
||||||
## Hardware facts bank (measured)
|
## Hardware facts bank (measured)
|
||||||
|
|
||||||
- SDMA pulse engine: ring size = the `ring_mb` module parameter
|
- SDMA pulse engine: ring size = the `ring_mb` module parameter
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ PV = "0.1.0"
|
|||||||
|
|
||||||
SRC_URI = "git://github.com/ScottW514/forgectrl.git;protocol=https;branch=main"
|
SRC_URI = "git://github.com/ScottW514/forgectrl.git;protocol=https;branch=main"
|
||||||
# Pinned; bump deliberately after pushing forgectrl changes.
|
# Pinned; bump deliberately after pushing forgectrl changes.
|
||||||
SRCREV = "5962e1c77a5d07d76be72c1f2472ba4b1abfd4a7"
|
SRCREV = "a852a5b1dbfcea6c957dc8305806439d067af0a5"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user