docs: record the clock trap, and confirm booting from internal storage
Some checks failed
build image / build (push) Has been cancelled

It boots from the internal drive with the stick removed — 18s to multi-user,
no failed units.

The first thing tried on it was `dnf install net-tools`, which failed with:

    Transaction failed: Rpm transaction failed.
      - systemd is needed by net-tools-2.0-0.77.20160912git.fc44.aarch64

systemd is obviously installed; the machine had just booted. The cause is the
clock. This machine's RTC cannot be set at all — ioctl(RTC_SET_TIME) returns
"No such device" — and reads 1970 every boot, so systemd advances it to its own
build date. That is close enough to look plausible and early enough that rpm
treats package signatures created after it as not yet valid, skips those
headers outright, and reports the packages as absent:

    Signature created at Sat Jul 25 18:33:30 2026 invalid: signature is not alive
    error: rpmdbNextIterator: skipping h# 282
    package systemd is not installed

chrony was already added to base.pkgs for the drift; it turns out to be load
bearing rather than a nicety, and it syncs within about five seconds of the
network appearing. Documented, because the symptom points nowhere near the
cause.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XWRjNJMistCy6ngXH5aJLS
This commit is contained in:
2026-07-27 19:35:34 +03:00
parent f0b2d7846a
commit 3a2fc2a329
2 changed files with 46 additions and 2 deletions

View File

@@ -85,6 +85,45 @@ and a root partition; `mkfs.vfat` and `mkfs.ext4 -O
`/etc/kernel/cmdline`, `root=UUID=` in `/boot/loader/entries/*.conf`, and the
`--fs-uuid` in both `/boot/grub2/grub.cfg` and `EFI/fedora/grub.cfg`.
## The clock, and why dnf lies about missing packages
This machine's RTC cannot be set — `hwclock --systohc` fails with
`ioctl(RTC_SET_TIME) to /dev/rtc0 to set the time failed: No such device` — and
it reads 1970 at every boot. systemd compensates by advancing the clock to its
own build date, which is close enough to look right and wrong enough to break
rpm.
The symptom is baffling if you have not seen it before:
```
$ sudo dnf install net-tools
Transaction failed: Rpm transaction failed.
- systemd is needed by net-tools-2.0-0.77.20160912git.fc44.aarch64
```
systemd is plainly installed — the machine booted. But with the clock behind
the package's signing date, rpm rejects the signature as *not yet valid*, skips
that header entirely, and concludes the package is absent:
```
Signature 85b4 created at Sat Jul 25 18:33:30 2026 invalid: signature is not alive
because: Not live until 2026-07-25T18:28:30Z
error: rpmdbNextIterator: skipping h# 282
package systemd is not installed
```
`chrony` is installed and enabled, and fixes this within a few seconds of the
network coming up — check with `timedatectl`. The gap only matters if you run
`dnf` before that, or on a machine with no network yet. Set it by hand in that
case:
```sh
sudo date -u -s "2026-07-27 16:33:00"
```
Any roughly-correct time will do; it only has to be later than the packages
were signed.
## If it does not boot
The kernel command line is the first thing to change. It lives in
@@ -98,6 +137,7 @@ one boot by pressing **e**.
| USB dies during boot | Add `modprobe.blacklist=qcom_q6v5_pas` |
| Cannot find root filesystem | The initramfs is missing the UFS drivers — see `overlay/etc/dracut.conf.d/10-c630.conf` |
| 90-second stall early in boot | Add `systemd.tpm2_wait=0` |
| `dnf` says a package that is obviously installed is missing | The clock is behind — see above |
Adding `earlycon` and `ignore_loglevel` will tell you a great deal more about
which of these it is.