Files
RedBear-OS/init.d/00_driver-manager.service
T
Red Bear OS e30f24997c init: ConditionPathExists service gate (systemd-style, with ! negation)
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).
2026-07-23 16:55:42 +09:00

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"