DUMP: correct the charge-type record; kernel pipeline is not one step
The N/A reading was from the charger, not the battery. upower reads the battery, and on SDM845 that is the fuel gauge, which has no charge_type at all - so 628283f could never move the symptom. Records the device-link fix, the three blockers actually in front of repo-add --sign, and the one hand-copied header that had been blocking -Syu.
This commit is contained in:
parent
712e8a9ec3
commit
182368014e
1 changed files with 69 additions and 6 deletions
|
|
@ -38,6 +38,18 @@ survived a cold boot. Charge control is live for the first time:
|
|||
real hardware, not just inferred. **This unblocked TASK-08(b)** — that task
|
||||
still said mainline exposes no charge-threshold sysfs; corrected.
|
||||
|
||||
> **Corrected 2026-07-25.** That `N/A` was read by hand from the **charger**.
|
||||
> upower reads `charge_type` from the *battery*, and on SDM845 the battery is
|
||||
> the fuel gauge (`fuel-gauge@4000`), which exposes **no `charge_type` at
|
||||
> all** — only `pmi8998-charger` (`charger@1000`) has it. So `628283f` is a
|
||||
> correct kernel-spelling fix that could never change the symptom: installing
|
||||
> it left `charge-type: unknown` exactly as before, verified on device.
|
||||
> The real fix is `718e921`, which walks the device links the kernel already
|
||||
> publishes (`battery/device/supplier:*` → devlink node → `supplier` →
|
||||
> `charger/power_supply/*/charge_type`). Note the `supplier:` symlink lands on
|
||||
> a devlink node, not the device — there is an extra hop — and the SPMI bus
|
||||
> controller is a supplier too, with no `power_supply/` child to skip.
|
||||
|
||||
**Why no flash was needed.** pocketboot reads `/boot/extlinux/extlinux.conf`
|
||||
off `Arch_root` (XBOOTLDR type GUID) and boots the fixed names
|
||||
`/boot/vmlinuz-blueline` + `initramfs-blueline.img`. `boot_a` is **stale** —
|
||||
|
|
@ -114,11 +126,33 @@ soname deps, but is **not yet packaged**.
|
|||
|
||||
## Open
|
||||
|
||||
1. **upower still not installed.** CI run `155288d` carries the `.r` version
|
||||
fix; once green, `pacman -Syu` upgrades it and `charge-type` goes live.
|
||||
2. **`kernel.yml` has no `repo-add --sign`** — it publishes raw packages, so
|
||||
kernels are still fetched and `pacman -U`'d by hand. This is the last piece
|
||||
of TASK-25.
|
||||
1. ~~**upower still not installed.**~~ **DONE 2026-07-25.** Run `155288d` went
|
||||
green; the asset republished as
|
||||
`upower-souveraine-1.91.3.r628283f-1-aarch64.pkg.tar.zst` — no space, HTTP
|
||||
200, sig verifies, and `vercmp` ranks it above the hand-built
|
||||
`1.91.3+f18b1a4`. Installed from the repo with `pacman -S`. The `+`-in-
|
||||
asset-name trap is closed end to end. **But `charge-type` still read
|
||||
`unknown` afterwards** — see the correction above; that needed `718e921`,
|
||||
pinned into souveraine at `16aa469`.
|
||||
2. **`kernel.yml` needs more than `repo-add --sign`.** Parked by Casey
|
||||
2026-07-25. Three blockers sit in front of it, all verified that day:
|
||||
(a) the job **has never once passed** — 11 runs, 11 failures, none since
|
||||
Jul 14, and `kernel-latest` is a 404 that has never been published; the
|
||||
Jul 14 chain was gitea-credential fixes to `build.sh` whose last fix
|
||||
(`9c51f3f`) was never re-run, so it may already work.
|
||||
(b) `kernel/PKGBUILD` is `pkgver=7.1.1` / `pkgrel=1` — the commit lives only
|
||||
in the kernelrelease, so every build is `7.1.1-1` and `-Syu` can never see
|
||||
an upgrade. `build.sh:27-28` hardcodes both artifact names too.
|
||||
(c) the obvious fix is non-monotonic: `vercmp 7.1.1.g588929024
|
||||
7.1.1.gaaa111222` → `-1`, because a bare `.g<sha>` sorts as hex. Use
|
||||
`7.1.1.r<count>.g<sha>`, matching souveraine's own scheme.
|
||||
Casey chose the **additive shared archive** (2026-07-25): ci.yml must stop
|
||||
deleting the `edge` release — today it deletes release+tag and re-uploads
|
||||
only its own `pacman-repo`, so anything else published there is erased on
|
||||
the next souveraine push. Each producer instead does read-modify-write on
|
||||
`souveraine-<arch>.db` under a shared archdev flock. The archive key is
|
||||
already in casey's gpg keyring on archdev, so no new signing secret is
|
||||
needed; Pixel3Arch CI does need a token that can write to `Fimeg/souveraine`.
|
||||
3. **Unpackaged:** squeekboard, stevia, `souveraine-player` (own repo),
|
||||
`souveraine-splash` (aarch64 ELF, source not located in `~/Projects`).
|
||||
4. **The shell surfaces, settings included, are unpackaged** and live in
|
||||
|
|
@ -126,7 +160,36 @@ soname deps, but is **not yet packaged**.
|
|||
Ordering matters: charge control can be exposed honestly *now*;
|
||||
state-machine controls must wait for TASK-15/08 to give it actuators, or
|
||||
they are the "success-shaped switches" TASK-19 forbids.
|
||||
5. **Docs corrected this session:** TASK-08(b) (charge control unblocked),
|
||||
5. **5,624 unowned files still sit in package territory** (2026-07-25 sweep of
|
||||
`/usr /etc /opt /boot`: 379,153 files on disk, 5,624 owned by nothing).
|
||||
The same disease as the eleven binaries, just not yet colliding: 16
|
||||
`/usr/bin/blueline-*` scripts, the `gadget-*` set, `clatd`, `mmsdtng`,
|
||||
`qmic`, `qrtr-*`, `rmtfs`, a hand-installed `Qt6Contacts` cmake tree,
|
||||
`libcmatrix.so.0u` (the `ldconfig` warning on every transaction), and stale
|
||||
`chatty.orig-pacman` / `chatty.pacman-orig` leftovers. Package fodder for
|
||||
TASK-25.
|
||||
|
||||
**`pacman -Syu` was blocked by exactly one of them** — Casey had been unable
|
||||
to upgrade for days. Intersecting the unowned set against the 112,051 files
|
||||
the 199 pending packages ship gave a conflict set of ONE:
|
||||
`/usr/include/aquamarine/backend/FrameScheduler.hpp`, hand-dropped Jul 9
|
||||
into a directory whose every other header is owned by `aquamarine 0.12.1-1`,
|
||||
and shipped by `extra/aquamarine 0.13.0-2`. It was also a version-mismatched
|
||||
header sitting in the include path the whole time. Backed up to
|
||||
`/var/backups/unowned-preupgrade/` and removed; `-Syu` is clear.
|
||||
|
||||
**Reusable diagnostic** — don't guess at conflicts, compute them:
|
||||
|
||||
pacman -Ql | awk '{print $2}' | sed 's#/$##' | sort -u > owned
|
||||
find /usr /etc /opt /boot -xdev \( -type f -o -type l \) | sort -u > ondisk
|
||||
comm -13 owned ondisk > unowned
|
||||
pacman -Qu | awk '{print $1}' > pending
|
||||
xargs -a pending pacman -Fl | awk '{print "/" $2}' | sed 's#/$##' | sort -u > newfiles
|
||||
comm -12 unowned newfiles # <- exactly what will abort -Syu
|
||||
|
||||
Needs `pacman -Fy` first. The phone's login shell is **zsh** — no `mapfile`;
|
||||
run the script under `bash -s` over ssh.
|
||||
6. **Docs corrected this session:** TASK-08(b) (charge control unblocked),
|
||||
`Pixel3Arch/CLAUDE.md` (new — do not flash), `SouveraineOS/STATE.md`,
|
||||
`souveraine/CLAUDE.md`. `Pixel3Arch/PAF/HANDOFF-upower-charge-control.md`
|
||||
is now stale in two places: gitea has both "LOCAL ONLY" commits, and the
|
||||
|
|
|
|||
Loading…
Reference in a new issue