Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# Debug boot — freeze on panic (photo / dump)
|
||
|
||
Normal sunfish kernel: `CONFIG_PANIC_TIMEOUT=5` + often
|
||
`CONFIG_QCOM_FORCE_WDOG_BITE_ON_PANIC` → reboot in seconds. Console is
|
||
**UART only** (`console=ttyMSM0`); `# CONFIG_VT is not set` → **no Oops text
|
||
on the phone display** (you only see the Google logo loop).
|
||
|
||
## What a “debug boot” must include (owner)
|
||
|
||
For a useful photo, **both** are required — freeze alone is not enough:
|
||
|
||
1. **Freeze:** `CONFIG_PANIC_TIMEOUT=0` + cmdline `panic=0`; disable
|
||
`CONFIG_QCOM_FORCE_WDOG_BITE_ON_PANIC` so it does not reboot in 5s.
|
||
2. **On-screen console:** `CONFIG_VT` + `CONFIG_FRAMEBUFFER_CONSOLE` (+
|
||
`console=tty0` in cmdline). Without this, you only see the Google logo.
|
||
|
||
| Goal | Mechanism | Photo-able? |
|
||
|------|-----------|-------------|
|
||
| Stop reboot loop | `panic=0` / `PANIC_TIMEOUT=0`, no wdog-bite-on-panic | Logo freezes only |
|
||
| Oops on screen | VT + FRAMEBUFFER_CONSOLE + `console=tty0` | Yes if panic after FB; early may still be logo |
|
||
| Dump after hang | Freeze + penúltimo + immediate `klog`/`logfs` dd | Not a photo |
|
||
|
||
Use **only on LAB**, SusFS/debug trials. Never ship as daily boot.
|
||
Next SusFS debug build after the sigfix trial must enable **both**.
|
||
|
||
## Host recipe (LAB SusFS debug boot)
|
||
|
||
1. Defconfig fragment (or temporary edits) on `rom-dev01`:
|
||
|
||
```text
|
||
CONFIG_PANIC_TIMEOUT=0
|
||
# CONFIG_QCOM_FORCE_WDOG_BITE_ON_PANIC is not set
|
||
# optional on-screen console (experimental on Pixel 4.14):
|
||
CONFIG_VT=y
|
||
CONFIG_VT_CONSOLE=y
|
||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
|
||
```
|
||
|
||
2. Cmdline (device tree or unpack/repack boot): add `panic=0` and optionally
|
||
`console=tty0`. Prefer a **vendor_sunfish / BoardConfig** override gated by
|
||
a make var (e.g. `SUNFISH_KERNEL_PANIC_DEBUG=1`) so normal bacon stays clean.
|
||
|
||
3. Build `bootimage`, name artifact
|
||
`boot-resukisu-susfs-DEBUG-YYYYMMDDTHHMMSSZ.img`.
|
||
|
||
4. Flash only to `boot_b`; keep penúltimo on `boot_a`. On hang: photo if text
|
||
appears; Vol−+Power → `--set-active=a`.
|
||
|
||
## Capture order (always)
|
||
|
||
1. Panic / hang on SusFS (debug) slot
|
||
2. Fastboot **before** Android success on good slot
|
||
3. Then penúltimo + immediate `dd` of `klog`/`logfs` (4a has no `fastboot fetch`)
|
||
|
||
## Status
|
||
|
||
Documented 2026-09-16 after SusFS early `kernel_panic` with empty Oops in klog.
|
||
Sigfix rebuild may already address root cause; keep this recipe for the next
|
||
opaque bootloop.
|