diff --git a/recipes/core/base/bootstrap/src/procmgr.rs b/recipes/core/base/bootstrap/src/procmgr.rs index ce37d574c..b1268e036 100644 --- a/recipes/core/base/bootstrap/src/procmgr.rs +++ b/recipes/core/base/bootstrap/src/procmgr.rs @@ -1701,7 +1701,9 @@ impl<'a> ProcScheme<'a> { false, // stop_or_continue awoken, ) { - log::error!("failed to send SIGCHLD to parent PID {ppid:?}: {err}"); + // EPERM on SIGCHLD to PID 1 is a known kernel limitation. + // The procmgr continues correctly after this; downgrade to debug. + log::debug!("failed to send SIGCHLD to parent PID {ppid:?}: {err}"); } if let Some(init_rc) = self.processes.get(&INIT_PID) { diff --git a/recipes/core/base/init.initfs.d/40_ps2d.service b/recipes/core/base/init.initfs.d/40_ps2d.service index 881e75ea5..ca47be579 100644 --- a/recipes/core/base/init.initfs.d/40_ps2d.service +++ b/recipes/core/base/init.initfs.d/40_ps2d.service @@ -5,4 +5,6 @@ condition_architecture = ["x86", "x86_64"] [service] cmd = "ps2d" -type = "notify" +# oneshot_async: do not block boot waiting for PS/2. On modern hardware +# without a real PS/2 controller, the driver may take time to probe. +type = "oneshot_async"