06b316076f
Root cause: the 0.2.4 upstream sync silently removed driver-manager (our
in-house PCI driver orchestrator) and never added a pcid init service,
leaving /scheme/pci uncreated and breaking all PCI device enumeration.
Changes:
- base-initfs/recipe.toml: restore driver-manager dep, binary copy,
drivers.d/ config dir, set -eo pipefail
- redbear-device-services.toml: add driver-manager = {} to packages
- redbear-boot-stages.toml: restore from 0.2.3 (109 lines)
- protected-recipes.toml: restore from 0.2.3 (99 lines)
- redbear-mini.toml: add boot-stages to include chain
- driver-manager Cargo.toml: fix pcid path from symlink to physical
- base fork pointer: acdcb183 (adds 35_pcid.service to initfs)
- UPSTREAM-SYNC-PROCEDURE.md: document sync flaw, never-delete rule,
driver-manager rationale
- PACKAGE-BUILD-QUIRKS.md: document pcid/pcid-spawner architecture,
Redox flag values, kernel kcall on AcpiScheme
Verified: redbear-mini boots to login prompt in QEMU UEFI with working
PCI enumeration (6 devices), e1000d network driver, DHCP, driver-manager.
110 lines
2.4 KiB
TOML
110 lines
2.4 KiB
TOML
# Red Bear OS boot stage targets
|
|
#
|
|
# Semantic boot stages that create ordering through the init system's
|
|
# BFS dependency traversal. Each target depends on the previous one.
|
|
#
|
|
# Stage mapping:
|
|
# 00_base.target — kernel schemes ready (defined in base package initfs)
|
|
# 02_early_hw.target — ACPI + PCI bus access ready
|
|
# 04_drivers.target — driver spawning complete
|
|
# 06_services.target — system services (D-Bus, session broker)
|
|
# 08_userland.target — user-facing (console, greeter, desktop)
|
|
#
|
|
# Services use requires_weak against their stage target.
|
|
# Targets use requires_weak to chain to the previous stage.
|
|
#
|
|
# Serial boot markers (02-08_serial_*.service) echo a stage completion
|
|
# message to stderr, which appears on the serial console for diagnostics.
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/02_early_hw.target"
|
|
data = """
|
|
[unit]
|
|
description = "Early hardware: ACPI + PCI bus access"
|
|
requires_weak = [
|
|
"00_base.target",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/02_serial_early_hw.service"
|
|
data = """
|
|
[unit]
|
|
description = "Serial boot marker: early hardware stage"
|
|
requires_weak = ["02_early_hw.target"]
|
|
|
|
[service]
|
|
cmd = "echo"
|
|
args = ["RB_STAGE_02_EARLY_HW"]
|
|
type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/04_drivers.target"
|
|
data = """
|
|
[unit]
|
|
description = "Driver spawning stage"
|
|
requires_weak = [
|
|
"02_early_hw.target",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/04_serial_drivers.service"
|
|
data = """
|
|
[unit]
|
|
description = "Serial boot marker: drivers stage"
|
|
requires_weak = ["04_drivers.target"]
|
|
|
|
[service]
|
|
cmd = "echo"
|
|
args = ["RB_STAGE_04_DRIVERS"]
|
|
type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/06_services.target"
|
|
data = """
|
|
[unit]
|
|
description = "System services: D-Bus, session broker, seat management"
|
|
requires_weak = [
|
|
"04_drivers.target",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/06_serial_services.service"
|
|
data = """
|
|
[unit]
|
|
description = "Serial boot marker: services stage"
|
|
requires_weak = ["06_services.target"]
|
|
|
|
[service]
|
|
cmd = "echo"
|
|
args = ["RB_STAGE_06_SERVICES"]
|
|
type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/08_userland.target"
|
|
data = """
|
|
[unit]
|
|
description = "User-facing: console, greeter, desktop"
|
|
requires_weak = [
|
|
"06_services.target",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/08_serial_userland.service"
|
|
data = """
|
|
[unit]
|
|
description = "Serial boot marker: userland stage"
|
|
requires_weak = ["08_userland.target"]
|
|
|
|
[service]
|
|
cmd = "echo"
|
|
args = ["RB_STAGE_08_USERLAND"]
|
|
type = "oneshot"
|
|
"""
|