image: ship the tools that make ECC and SMART readable
The image had no way to read ECC corrected-error counts, no SMART for
anything that is not NVMe, and no path to a BMC. That is ECC memory you
cannot act on, and rising correctables are the early warning it is bought
for. nvme-cli was already in the base, so NVMe wear was the one thing
already visible.
rasdaemon, smartmontools, ipmitool and lm_sensors: 49 MiB installed,
most of it smartmontools dragging perl for a mail path nothing here
uses. edac-utils is deliberately absent, being an empty stub in Fedora
43 that rasdaemon's ras-mc-ctl replaced.
The preset line is the half that matters. smartd and lm_sensors enable
their own units from %post, but rasdaemon ships its unit disabled, so
the packages alone would leave ras-mc-ctl reading zero errors because
nothing was counting.
Wanted first by the bench build host, whose characterization baseline
requires ECC counters provably readable before it is trusted as a
reference, but a laptop with no ECC still wants SMART on the disk it
boots from, so this goes in the base rather than a server variant.
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
2 files changed,
+40 insertions,
-0 deletions
| 237 |
237 |
|
# System introspection
|
| 238 |
238 |
|
bottom \
|
| 239 |
239 |
|
dua-cli \
|
|
240 |
+ |
# Hardware health. The base ships nvme-cli, so NVMe wear and SMART
|
|
241 |
+ |
# were already readable, and nothing else was: no way to read ECC
|
|
242 |
+ |
# corrected-error counts, no SMART for SATA, no path to a BMC. That
|
|
243 |
+ |
# is ECC memory you cannot act on, and rising correctables are the
|
|
244 |
+ |
# early warning ECC is bought for. It matters first for the bench
|
|
245 |
+ |
# build host, whose characterization baseline requires ECC counters
|
|
246 |
+ |
# provably readable before it is trusted as a reference (GoingsOn
|
|
247 |
+ |
# tailoredmachines 18af3fb3), but a laptop with no ECC at all still
|
|
248 |
+ |
# wants SMART on the disk it boots from, so these live in the base
|
|
249 |
+ |
# rather than waiting on a server variant.
|
|
250 |
+ |
#
|
|
251 |
+ |
# rasdaemon carries ras-mc-ctl, which is the ECC readback. Note
|
|
252 |
+ |
# edac-utils is NOT here: in Fedora 43 it is an empty stub package
|
|
253 |
+ |
# (installsize 0) and rasdaemon replaced it.
|
|
254 |
+ |
#
|
|
255 |
+ |
# smartmontools is the largest of the four by dependency closure,
|
|
256 |
+ |
# dragging perl for the mail path it will never use here. Taken
|
|
257 |
+ |
# anyway: smartctl is the only SATA/USB SMART reader, and the four
|
|
258 |
+ |
# together add 49 MiB installed.
|
|
259 |
+ |
rasdaemon \
|
|
260 |
+ |
smartmontools \
|
|
261 |
+ |
# ipmitool talks to the AST2600 BMC on server boards from the host
|
|
262 |
+ |
# side, which is how a headless box reports its own sensors and
|
|
263 |
+ |
# event log without going through the web UI.
|
|
264 |
+ |
ipmitool \
|
|
265 |
+ |
# lm_sensors covers everything that is not behind a BMC: laptop
|
|
266 |
+ |
# thermals, and on a desktop board the CPU and fan readings.
|
|
267 |
+ |
lm_sensors \
|
| 240 |
268 |
|
# Wayland session glue
|
| 241 |
269 |
|
cliphist \
|
| 242 |
270 |
|
# The fuzzy picker behind both TUI menus in usr/bin: alloy-menu
|
| 45 |
45 |
|
# injecting it.
|
| 46 |
46 |
|
enable swayosd-libinput-backend.service
|
| 47 |
47 |
|
|
|
48 |
+ |
# rasdaemon ships its unit disabled, so installing the package is not enough:
|
|
49 |
+ |
# without this line nothing collects machine-check and EDAC events, and
|
|
50 |
+ |
# `ras-mc-ctl --error-count` reads zero because zero is what was counted, not
|
|
51 |
+ |
# what happened. That is the failure mode ECC memory is bought to avoid, and
|
|
52 |
+ |
# it is silent. Its two siblings need no line here: smartmontools and
|
|
53 |
+ |
# lm_sensors both enable their own units from %post scriptlets.
|
|
54 |
+ |
#
|
|
55 |
+ |
# Cost is a daemon on every install, including laptops with no ECC. It is
|
|
56 |
+ |
# small, it reads rather than writes, and on a machine with no EDAC driver it
|
|
57 |
+ |
# simply collects nothing.
|
|
58 |
+ |
enable rasdaemon.service
|
|
59 |
+ |
|
| 48 |
60 |
|
disable tailscaled.service
|