init: /usr driver-manager + netstack must not block boot-to-login

This commit is contained in:
Red Bear OS
2026-07-16 12:46:46 +09:00
parent 8aa8616d5e
commit 1f82624025
2 changed files with 18 additions and 2 deletions
+11 -1
View File
@@ -3,4 +3,14 @@ description = "PCI driver spawner"
[service]
cmd = "pcid-spawner"
type = "oneshot"
# oneshot_async, NOT oneshot: this is the post-switchroot /usr driver-manager.
# As a blocking oneshot, init waits for pcid-spawner to enumerate PCI and bring
# every matched driver to readiness (daemon::Daemon::spawn blocks on each
# driver's ready signal) before continuing — so a single slow/hanging driver,
# or an unavailable /scheme/pci after switchroot, wedges the whole boot right
# here, before the console/login stack. The login path renders on the initfs
# framebuffer (vesad+fbcond) and does not need the /usr PCI drivers to be ready
# first, so bring them up asynchronously. NOTE: the initfs driver spawner
# (40_pcid-spawner-initfs) stays a blocking oneshot — disk (ahcid) must be
# ready before redoxfs mounts.
type = "oneshot_async"
+7 -1
View File
@@ -8,4 +8,10 @@ requires_weak = [
[service]
cmd = "smolnetd"
type = "notify"
# oneshot_async, NOT notify: smolnetd only signals readiness once it binds a
# network adapter, so on a machine with no NIC (or before the NIC driver
# attaches) a notify unit blocks init forever right here — before the console
# stack — and there is no login. The network scheme is not on the critical
# path to login, so start it non-blocking (this matches the redbear-mini
# netstack unit). Boot must never hang on absent/late network hardware.
type = "oneshot_async"