d5561184f0
Mini now boots (q35/KVM) all the way to the getty "Red Bear login:" prompt
on VT2 with zero kernel panics. Root-cause fixes across submodules + config:
- config: 00_base.service zsh->mkdir (a full shell startup hangs an init
oneshot; the earlier 'echo/mkdir also hang' result was a silent config
override running zsh). 00_ptyd.service notify->{scheme=pty} (ptyd signals
readiness via its scheme fd; notify made init block on a byte forever).
- kernel: wrmsr_safe/rdmsr_safe #GP recovery so /scheme/sys/msr can't panic
the kernel (cpufreqd's P-state MSR write #GP'd on KVM, halting the boot
before login). base: ptyd scheme type + hwd ACPI enum -> debug (noise).
installer: warn on config [[files]] override. relibc/bootloader: prior
getrlimit + warning-demotion pointers.
- build-redbear.sh: fix host-fstools staleness (installer/redoxfs never
rebuilt on source change), prefix rebuild-every-build (touch libc.a), add
concurrent-build flock.
Submodule pointers: base 8aa8616d, installer 460d9530, kernel 155d01b1,
relibc a7663b3a, bootloader 6e119641.
58 lines
1.9 KiB
TOML
58 lines
1.9 KiB
TOML
# Red Bear OS overrides for base init services.
|
|
#
|
|
# 00_base.service: stripped base setup (tmpdir only, no sudo — sudo runs from
|
|
# base.toml's 00_sudo.service). ipcd and ptyd are started by
|
|
# 00_ipcd.service and 00_ptyd.service from the base recipe.
|
|
# 00_drivers / 10_net: no longer overridden — the legacy scripts were removed
|
|
# from base.toml. The retained 00_pcid-spawner.service unit name now
|
|
# launches driver-manager so existing init ordering remains stable.
|
|
# 00_pcid-spawner.service: compatibility wrapper for driver-manager. The base
|
|
# recipe uses type="oneshot" which blocks init until pcid-spawner exits.
|
|
# Running driver-manager here with oneshot_async keeps the historic unit
|
|
# name for downstream `requires_weak` consumers while moving PCI driver
|
|
# spawning to the manager that performs bind/channel handoff.
|
|
|
|
[packages]
|
|
zsh = {}
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_base.service"
|
|
data = """
|
|
[unit]
|
|
description = "Base environment setup (tmpdir)"
|
|
|
|
[service]
|
|
# Create the world-writable, sticky /tmp with mkdir (uutils, Rust). This must
|
|
# NOT use zsh: a full interactive shell startup hangs the init oneshot here
|
|
# (before the login stack even starts), whereas a simple dynamically-linked
|
|
# /usr binary like mkdir/echo completes cleanly after switchroot. See the
|
|
# usr-dynamic-service-spawn-hang investigation — the hang was zsh-specific,
|
|
# not a general /usr spawn failure.
|
|
cmd = "mkdir"
|
|
args = ["-p", "-m", "a=rwxt", "/tmp"]
|
|
type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/20_audiod.service"
|
|
data = """
|
|
[unit]
|
|
description = "Audio multiplexer"
|
|
default_dependencies = false
|
|
|
|
[service]
|
|
cmd = "audiod"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_pcid-spawner.service"
|
|
data = """
|
|
[unit]
|
|
description = "PCI driver spawner"
|
|
|
|
[service]
|
|
cmd = "pcid-spawner"
|
|
type = "oneshot"
|
|
"""
|