Fix boot-to-login: override pcid-spawner to oneshot_async, add U3 input producers, Intel HDA phases A-D
- Override 00_pcid-spawner.service to oneshot_async in redbear-legacy-base.toml: rootfs phase no longer blocks on PCI driver init; getty/login starts immediately. Confirmed working on both QEMU and bare metal (redbear-live-mini). - Clean up 00_base legacy script: remove dead notify ipcd/ptyd calls, keep sudo --daemon. - Add U3 named input producers: inputd supports per-device named producers with fan-out to both device-specific consumers and legacy VT consumers. Migrate ps2d and usbhidd to InputProducer trait. RESERVED_DEVICE_NAMES deduplicated. - Add Intel HDA audio driver phases A-D: ihdad error handling (37 fixes), audio quirks, codec path enumeration, mixer/volume control. - Add init service start/readiness logging (always visible, not debug-gated). - Update BOOT-PROCESS-ASSESSMENT.md: Phase 6 complete, boot procedure documented, validation matrix updated with confirmed boot status. - Update USB-IMPLEMENTATION-PLAN.md and INPUT-SCHEME-ENHANCEMENT.md for U2/U3 status.
This commit is contained in:
@@ -1,8 +1,31 @@
|
||||
# Red Bear OS overrides for broken legacy base init scripts.
|
||||
# Red Bear OS overrides for legacy base init scripts.
|
||||
#
|
||||
# 00_base: tmpdir setup + sudo --daemon. ipcd and ptyd are started by the
|
||||
# systemd-style services in base recipe's init.d/ (00_ipcd.service,
|
||||
# 00_ptyd.service). The old "notify" calls have been removed because
|
||||
# the "notify" binary does not exist — they always failed silently.
|
||||
# sudo --daemon is kept here because 00_sudo.service exists in the base
|
||||
# recipe but is not wired into any target that gets scheduled.
|
||||
# 00_drivers: removed — pcid-spawner is started by 00_pcid-spawner.service from
|
||||
# the base recipe. The legacy script was redundant.
|
||||
# 10_net: blanked — replaced by per-config network services (e.g. redbear-live-mini's
|
||||
# 10_smolnetd.service + 10_dhcpd.service).
|
||||
# 00_pcid-spawner.service: overridden to oneshot_async. The base recipe uses
|
||||
# type="oneshot" which blocks init until pcid-spawner exits. On real
|
||||
# hardware (and QEMU), pcid-spawner can hang waiting for a PCI device
|
||||
# driver that never responds, blocking the entire rootfs phase including
|
||||
# getty/login. Using oneshot_async lets init proceed to start console
|
||||
# services while drivers spawn in the background.
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/00_base"
|
||||
data = ""
|
||||
data = """
|
||||
# clear and recreate tmpdir with 0o1777 permission
|
||||
rm -rf /tmp
|
||||
mkdir -m a=rwxt /tmp
|
||||
|
||||
nowait sudo --daemon
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/usr/lib/init.d/00_drivers"
|
||||
@@ -23,3 +46,14 @@ default_dependencies = false
|
||||
cmd = "audiod"
|
||||
type = "oneshot_async"
|
||||
"""
|
||||
|
||||
[[files]]
|
||||
path = "/etc/init.d/00_pcid-spawner.service"
|
||||
data = """
|
||||
[unit]
|
||||
description = "PCI driver spawner (non-blocking)"
|
||||
|
||||
[service]
|
||||
cmd = "pcid-spawner"
|
||||
type = "oneshot_async"
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user