Watch
1
0
Fork
You've already forked SouveraineOS
0

task-13: the rail is up and held from boot; step 2 blocked on TASK-34

This commit is contained in:
Fimeg 2026-07-26 17:15:21 -04:00
commit 6b455fc841
2 changed files with 28 additions and 4 deletions

View file

@ -140,9 +140,33 @@ gpioinfo gpiochip0 # confirm 26 lines, line 1 unclaimed
gpioset --mode=signal gpiochip0 1=1 # raise the edge-sense rail, hold it
```
then go straight to step 2 (is `sns_touch_gesture` served). No kernel
rebuild, no flash, no deploy. libgpiod is **not currently installed** on the
phone — that is the only thing between here and the test.
### Done 2026-07-26 — the rail is up
All of the above was carried out and it worked on the first try. libgpiod
2.3.1 installed (now in `packages-explicit.txt`), and:
```
gpiochip0 [c440000.spmi:pmic@0:gpio@c000] (26 lines)
line 1: unnamed output consumer="edge-sense"
line 5: unnamed input active-low consumer="Volume Up"
```
Line 5 being Volume Up — downstream `key_vol_up` is `pins = "gpio6"`
confirms the 1 offset empirically, so line 1 is physical GPIO 2. No kernel
rebuild, no flash, no devicetree change.
It is held from boot by `blueline-edge-sense-power.service`
(`Pixel3Arch/rootfs-overlay/etc/systemd/system/`), which resolves the chip by
devicetree node rather than trusting `gpiochip0` to stay PM8998, and holds
the line for the unit's lifetime because `gpioset` only maintains output
state while its process lives.
**Step 2 is now blocked on TASK-34, not on this.** The SUID could not be
tested: `blueline-hexagonrpcd-sdsp` — the FastRPC doorbell for SLPI — is
crash-looping after six SLPI firmware crashes at boot, so no SSC sensor is
reaching userspace at all. That is an old sequencing regression with its own
task. When the doorbell is back, the rail is already up and step 2 can run
immediately.
A devicetree `gpio-hog` is still the right *final* home for an always-on
rail (asserts at kernel boot, no userspace component, survives a crashed

View file

@ -18,7 +18,7 @@ plus open threads from the 2026-07-17 session.
| 8 | [Device state manager / power profiles](08-device-state-manager.md) | actuating 07-25 | clock + actuators; lock-before-blank is an invariant and hypridle's listeners are deleted; (b) charge real, (c)(d) open, **(e) lease still missing**, **(f) `sensors_degraded` reaches no surface**, **(g) the confidence gates need a decision before code** |
| 9 | [Suspend-resume FTS calibration race](09-suspend-resume-fts.md) | interim-fix | kernel-side; cold-boot only |
| 12 | [Face auth as a capability factor (Gaze reference)](12-gaze-reference-face-auth.md) | open | per-target: phone needs front-cam bring-up |
| 13 | [Active Edge (squeeze) as a sensor input](13-active-edge-squeeze.md) | open, wanted | no kernel work needed — PM8998 GPIO2 is gpiochip0 line 1 today; install libgpiod and test |
| 13 | [Active Edge (squeeze) as a sensor input](13-active-edge-squeeze.md) | open, wanted | rail is UP and held from boot (07-26); step 2 now blocked on TASK-34 (SLPI doorbell) |
| 14 | [Overview/app grid + Auxo multitasking](14-overview-appgrid.md) | in progress | shell-side; Home path + app cards |
| 15 | [Idle coordinator: freeze, doze, scheduled wakeups](15-idle-coordinator.md) | blocked | freezing `app.slice` would freeze sessiond+shell+secrets; needs slice separation first (measured 07-25) |
| 16 | [culver: usable messenger + contacts as Personal-class store](16-culver-messenger-contacts.md) | in progress | A/B/D landed; C contact card next; F is the folded-in TASK-01 |