init: add dormant driver-manager service files (C0)

Adds the two dormant service files for the driver-manager
post-switchroot + initfs spawner paths. Both files are dormant by
default — they require /etc/driver-manager.d/{disabled,initfs-active}
to be absent before they activate. The cutover (C1-C4) is
operator-ratified; this commit only adds the file presence so
the C0 wiring exists.

Refs: local/docs/DRIVER-MANAGER-MIGRATION-PLAN.md § 5.2 C0.
This commit is contained in:
Red Bear OS
2026-07-21 06:58:10 +09:00
parent 452452e453
commit 0407d9ccbb
2 changed files with 47 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
# Place this file at:
# local/sources/base/init.d/00_driver-manager.service
# (created during D5/C0 phase; remains dormant until operator ratifies cutover)
[unit]
description = "Driver manager (post-switchroot /usr spawner)"
# Long-form description:
# Driver manager enumerates /scheme/pci, reads /lib/drivers.d/*.toml,
# matches devices against driver match tables, and spawns driver daemons
# (e1000d, xhcid, ihdgd, etc.) per the manager's SpawnDecision committee
# (see § 5.1 D1 migration plan). Activates only when
# ConditionPathExists for /etc/driver-manager.d/disabled fails AND all
# depends_on schemes (pci, firmware, iommu, numad, etc.) are ready.
#
# Until the D5 feature-complete gate ratifies, this service is dormant —
# pcid-spawner retains the boot path. The dormant flag is enabled by
# default; C0 wiring must explicitly remove it before activation.
[service]
cmd = "driver-manager"
args = ["--rootfs"]
# oneshot so a hypothetical bind handle error doesn't loop the manager
type = "oneshot_async"
# Operator must explicitly enable this service:
# touch /etc/driver-manager.d/disabled # force fallback to pcid-spawner
ConditionPathExists = "/etc/driver-manager.d/disabled"
@@ -0,0 +1,21 @@
# Place this file at:
# local/sources/base/init.initfs.d/40_driver-manager-initfs.service
# (created during D5/C0 phase; remains dormant until operator ratifies cutover)
[unit]
description = "Driver manager initfs spawner"
requires_weak = ["10_inputd.service", "20_graphics.target", "40_pcid.service"]
# Long-form description:
# Driver manager initfs variant. Replaces 40_pcid-spawner-initfs.service
# once the initfs storage path is fully verified under driver-manager
# in dual-mode observation (C1). Storage-critical drivers (ahcid, ided,
# nvmed, virtio-blkd) bind here before redoxfs mounts the rootfs.
[service]
cmd = "driver-manager"
args = ["--initfs"]
type = "oneshot"
# Operator must explicitly enable this service by removing the
# ConditionPathExists flag (C2 wiring). Until then, pcid-spawner
# initfs continues to operate.
ConditionPathExists = "/etc/driver-manager.d/initfs-active"