Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/devices/README.md
Fimeg bde961c6f2 saf: one spine — device, state, and work under the index
PAF becomes saf/device (history kept), STATE.md dissolves
into saf/state.md with the dated era archived, the substrate
SAF moves up from souveraine, and every agreement points at
saf/INDEX.md and nowhere else. one map, nothing to remember
2026-08-18 09:47:30 -04:00

5.5 KiB
Raw Blame History

Devices — what works, per body

One row per capability, one column per body. This page is the matrix; the deep record for each subsystem stays where it already lives (saf/device/ for blueline, docs/tasks/63 for the d10) and is linked, never copied.

Status vocabulary, and it is strict:

meaning
works exercised on the hardware, with evidence named
partial comes up, does something, and a stated piece is missing
built code and DT are in place, never run on the glass
absent no driver, no node, or the silicon has no such thing
not applicable to this body

A capability is never "works" because a device node appeared. On 2026-08-09 a registered input node with unpowered rails read exactly like working touch for several hours. Verify with events, not with dmesg.

The bodies

blueline d10 x86 m1
device Pixel 3 iPhone 7 (A1660) HP ProBook 450 G6 MacBook (Apple Silicon)
architecture SDM845 / aarch64 Apple T8010 / aarch64 x86_64 Apple M1 / aarch64
role Casey's daily driver second body Casey's daily workstation not here yet
boot pacman kernel + extlinux, no flash checkm8 → m1n1, per boot, host-tethered existing EndeavourOS install
tether 172.16.42.1 172.16.43.1
status daily use bring-up substrate installed; OS profile bring-up planned

Both phones are plugged in at once and that is the invariant. Never unplug one to make a command convenient.

The matrix

capability blueline d10 owner
storage works works — NVMe over H9P/DART/ANS 63
USB gadget works — NCM + ACM works — NCM + ACM 62
display out works — SW43408, DPU works via simpledrm; ADP binds and scans out to a dark panel 61, 63
GPU / 3D works — Adreno 630, freedreno absent — no render node, llvmpipe only 63
backlight works works — DWI and a DSI panel backlight 63
gamma / LUT works — GAMMA_LUT 1024, CTM present built — ADP path unexplored 61
touch works partial — binds, inits, no runtime events 63
buttons works — power/volume through the state machine built — 4 keycodes present, unwired 63
haptics partial — pmi8998_haptics drives dial detents absent — ADT names a node, nothing driven 45
wifi works absent — BCM4350 needs a driver, node kept out of DT 63
bluetooth works built — node inherited from t8010-7.dtsi
modem / calls works — two-way audio absent — MDM9645M behind Apple's own PCIe protocol 49
SMS / MMS works — netsvcs APN absent
audio works — HiFi speaker, mic, STT absent — MCA built, never wired 07, 39
camera partial — front IMX355 streams; rear IMX363 DT unbuilt absent 46
fingerprint partial — TA protocol recovered, no capture — (no reader) 44
battery / charging works — upower fork, charge ceiling built — SN2400 + BQ27540 in DT and kernel 33
proximity / light / accel works — one reporter, health-tracked absent — CT821 built, no reporter 08, 47
session authority works works — greetd, real seat0 session 63
lock surface works partial — keypad choice fixed, unverified 02
suspend works — s2idle built — never exercised

Where a body's own record lives

  • bluelinesaf/device/ is canonical and per-subsystem: audio.md, display.md, modem.md, slpi.md, touch.md, platform.md, mms.md, edge-sense.md. devices/blueline/ is a pointer, not a second copy.
  • d10docs/tasks/63-d10-second-body.md carries the whole argument; hoolock/BOOT-d10.md carries the boot chain and hoolock/boot.sh runs it.
  • x86devices/x86/ records the HP ProBook's observed workstation state. The x86-laptop profile is blocked: an installed substrate package is not an installer-ready SouveraineOS body.
  • m1 — nothing yet. devices/m1/ states what is already known to transfer.

Planned Apple-mobile family

The A5A11 family is a real future branch: checkm8-class boot access opens iPhones and iPads in that range to the same kind of work now underway on d10. It is not a supported target or a single device profile. The family spans different boards and CPU generations; each body needs its own boot, display, input, storage and package evidence before it joins this matrix.

The rule this hierarchy exists to enforce

One common base that adapts, never souveraine-upower-iphone and -pixel3. Per-device packages carry DT and quirks; everything else is shared and learns to ask. Every row above that differs between columns is either real hardware difference or a place the base assumed one board — and the second kind is a defect. Three were found the night the d10 came up:

  • blueline-screen-toggle — panel blanking shells out to a script named for one phone, so the d10 structurally cannot sleep.
  • brightnessctl set 10 — an absolute on a 255-step backlight and a 2047-step one. 4% on one body, 0.5% and visibly black on the other. Fixed in souveraine eb0292c.
  • hyprctl — the shell still asks it for windows, monitors and layers. Dead under viewtop on both bodies; blueline merely still has the binary lying around, so it fails silently there and loudly here.