docs: 6.9 fails identically — not a recent regression
All checks were successful
build image / build (push) Successful in 25m48s

postmarketOS ships a kernel for this laptop, which makes testing an old kernel
cheap: their apk carries vmlinuz, the C630 dtb and modules, no image writing
needed. 6.9.0-sdm845 crashes exactly like 6.12 and 7.1 — 23 QLINK crashes in
70 seconds, wlfw never appears. Three kernels across two years, one of them
from a distro that lists this machine as supported, all identical.

That, plus aarch64-laptops publishing a device tree with wifi disabled and no
modem node at all, leaves the regression premise with nothing supporting it.
Record the method, the modem-test harness that captures verdicts without
networking, and the /lib symlink trap that makes installing foreign modules
dangerous.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011XgGF5wfxLDAybVnNz6eNQ
This commit is contained in:
2026-07-28 16:23:46 +03:00
parent 9503577471
commit 61b2f59ced

View File

@@ -452,18 +452,41 @@ crash-and-lockup behaviour. So "WiFi worked in 2019" may never have been true
in the form assumed here, and the modem may simply have never got past RF init in the form assumed here, and the modem may simply have never got past RF init
under Linux on this machine. under Linux on this machine.
#### Kernel bracketing has not been possible #### It is not a recent regression: 6.9 fails identically
Testing the regression theory anyway needs an old kernel that boots here, and postmarketOS supports this machine and builds a kernel for it, which makes
that has not been achieved. Neither a hand-built 5.10.261 (defconfig plus the their package the easiest old kernel to test — it contains `vmlinuz`, a C630
SDM845 platform, UFS, PHY and ext4, all verified in `.config`) nor Fedora's own device tree and its modules, and needs no image writing:
6.1.18 reaches userspace: both die after the EFI stub with nothing in the
journal, with `earlycon=efifb`, `keep_bootcon` and `arm-smmu.disable_bypass=0` ```sh
tried, and with the initramfs rebuilt without this repo's dracut config in case curl -O http://mirror.postmarketos.org/postmarketos/v24.06/aarch64/linux-postmarketos-qcom-sdm845-6.9.0-r2.apk
its forced `phy-qcom-qmp-ufs` was the problem. UFS is present in the 6.1 device tar xzf linux-postmarketos-qcom-sdm845-6.9.0-r2.apk # an apk is a tarball
tree, so that is not the cause. Fedora's 6.12.15 boots and crashes identically ```
to 7.1.5, leaving the bracket at 6.12 ≤ broken ≤ 7.1 and nothing older testable
from the internal disk. Booting an old distro from USB is the remaining way in. Install the modules under `/usr/lib/modules/6.9.0-sdm845`**not** by
extracting a `lib/`-rooted archive into `/`, which replaces Fedora's
`/lib -> usr/lib` symlink and takes the machine down — then `depmod`, build an
initramfs with `dracut --kver`, and add a BLS entry.
**Kernel 6.9.0-sdm845 produces the identical failure**: 23 QLINK crashes in
70 seconds, same trace, `wlfw` never appears. So the modem fails the same way
on 6.9, 6.12 and 7.1 — three kernels across two years, one of them built and
shipped by a distribution that lists this laptop as supported. Whatever is
wrong is not a recent kernel regression.
Older still is untestable from the internal disk: neither a hand-built 5.10.261
(defconfig plus the SDM845 platform, UFS, PHY and ext4, all verified in
`.config`) nor Fedora's own 6.1.18 reaches userspace. Both die after the EFI
stub with nothing in the journal, with `earlycon=efifb`, `keep_bootcon` and
`arm-smmu.disable_bypass=0` tried, and with the initramfs rebuilt without this
repo's dracut config in case its forced `phy-qcom-qmp-ufs` was the problem. UFS
is present in the 6.1 device tree, so that is not the cause.
A useful harness for this: `c630-modem-test`, a oneshot unit gated on
`/var/lib/c630-modem-test-armed` that starts the modem, waits, and appends a
verdict to `/var/log/c630-modem-test.txt`. Results survive a kernel that cannot
bring up networking — which the pmOS kernel could not, having no driver for the
USB dongle in use.
Booting test kernels here is otherwise cheap and safe: add a BLS entry, set Booting test kernels here is otherwise cheap and safe: add a BLS entry, set
`next_entry` in the GRUB environment for a one-shot boot, and a power-cycle `next_entry` in the GRUB environment for a one-shot boot, and a power-cycle