e30f24997c
init's Service parser used deny_unknown_fields, so the C0 driver-manager service files (which use ConditionPathExists) were rejected wholesale — driver-manager stayed dormant by parser accident instead of by design. - service.rs: new optional ConditionPathExists field + condition_met() gate. A leading '!' negates: the service starts only when the path does NOT exist. - scheduler.rs: skip services whose condition is not met (status_skip, same pattern as skip_cmd). - 00_driver-manager.service: fix inverted polarity — the intent is 'run unless /etc/driver-manager.d/disabled exists', i.e. ConditionPathExists = "!/etc/driver-manager.d/disabled". - Drop two pre-existing unused imports (Write in service.rs, status_fail in main.rs).
27 lines
1.2 KiB
Desktop File
27 lines
1.2 KiB
Desktop File
# 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"
|