Add D-Bus and session services to live-mini and minimal configs

This commit is contained in:
2026-04-25 09:16:16 +01:00
parent 7fac33bc9b
commit ed854acdc4
2 changed files with 375 additions and 8 deletions
+218 -3
View File
@@ -6,13 +6,13 @@
# Target contract:
# - keep a text-login live/recovery surface only
# - use boot framebuffer for VT text consoles via vesad + fbcond
# - avoid the shared firmware/input/device-service stack from redbear-minimal
# - ship no linux-firmware payload
# - ship all non-graphics, non-firmware packages from the full profile
# - ship no linux-firmware payload, no firmware-loader, no GPU/display drivers
include = ["minimal.toml", "redbear-legacy-base.toml", "redbear-netctl.toml"]
[general]
filesystem_size = 384
filesystem_size = 1536
[packages]
# Red Bear OS branding and host utilities.
@@ -28,6 +28,9 @@ redbear-traceroute = {}
redbear-mtr = {}
redbear-nmap = {}
# Wi-Fi control daemon (firmware-loader excluded — no firmware blobs in mini).
redbear-wifictl = {}
# Diagnostics and shell-side utilities.
mc = {}
redbear-info = {}
@@ -35,6 +38,46 @@ redbear-info = {}
# Keep package builder utility in live environment.
cub = {}
# ── PCI device database (critical for pcid-spawner driver matching) ──
pciids = {}
# ── Filesystem support ──
ext4d = {}
fatd = {}
redoxfs = {}
# ── System installer ──
installer = {}
# ── Input / device management ──
evdevd = {}
udev-shim = {}
# ── D-Bus IPC and session services ──
dbus = {}
redbear-sessiond = {}
redbear-dbus-services = {}
redbear-notifications = {}
redbear-upower = {}
redbear-udisks = {}
redbear-polkit = {}
# ── IOMMU DMA remapping ──
iommu = {}
# ── Standard CLI tools (from server profile) ──
bash = {}
bottom = {}
curl = {}
diffutils = {}
findutils = {}
git = {}
htop = {}
# ── Build / packaging utilities ──
patchelf = {}
shared-mime-info = {}
# VT/getty/login chain: initfs starts inputd + vesad + fbcond in phase 1,
# then minimal.toml legacy 30_console runs inputd -A 2 + getty 2 + getty debug.
@@ -207,6 +250,178 @@ cmd = "ucsid"
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/12_boot-late.target"
data = """
[unit]
description = "Late boot services target"
requires_weak = [
"00_base.target",
]
"""
[[files]]
path = "/usr/lib/init.d/11_udev.service"
data = """
[unit]
description = "udev compatibility shim"
requires_weak = [
"12_boot-late.target",
"00_pcid-spawner.service",
]
[service]
cmd = "udev-shim"
type = { scheme = "udev" }
"""
[[files]]
path = "/usr/lib/init.d/10_evdevd.service"
data = """
[unit]
description = "Evdev input daemon"
requires_weak = [
"12_boot-late.target",
"00_pcid-spawner.service",
]
[service]
cmd = "evdevd"
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/11_wifictl.service"
data = """
[unit]
description = "Wi-Fi control daemon"
requires_weak = [
"12_boot-late.target",
"00_pcid-spawner.service",
]
[service]
cmd = "redbear-wifictl"
type = { scheme = "wifictl" }
"""
[[files]]
path = "/usr/lib/init.d/12_dbus.service"
data = """
[unit]
description = "D-Bus system bus"
requires_weak = [
"12_boot-late.target",
]
[service]
cmd = "ion"
args = [
"-c",
"mkdir -p /var/lib/dbus /run/dbus; rm -f /run/dbus/pid; dbus-uuidgen --ensure; dbus-daemon --system",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/13_redbear-sessiond.service"
data = """
[unit]
description = "Red Bear session broker (org.freedesktop.login1)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-sessiond",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/13_iommu.service"
data = """
[unit]
description = "IOMMU DMA remapping daemon"
requires_weak = [
"12_boot-late.target",
"00_pcid-spawner.service",
]
[service]
cmd = "/usr/bin/iommu"
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/14_redbear-upower.service"
data = """
[unit]
description = "UPower D-Bus service (org.freedesktop.UPower)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-upower",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/14_redbear-udisks.service"
data = """
[unit]
description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-udisks",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/14_redbear-polkit.service"
data = """
[unit]
description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-polkit",
]
type = "oneshot_async"
"""
[[files]]
path = "/var/lib/dbus"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/run/dbus"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/etc/pcid.d/ihdgd.toml"
data = """
+157 -5
View File
@@ -1,13 +1,14 @@
# Red Bear OS Minimal Configuration
# Console/Server variant with bare-metal driver support but no GUI
# Console/Server variant with bare-metal driver support but no GUI.
# Includes all non-graphics, non-firmware packages from the full profile.
#
# Build: make all CONFIG_NAME=redbear-minimal
include = ["minimal.toml", "redbear-legacy-base.toml", "redbear-device-services.toml", "redbear-netctl.toml"]
[general]
# Minimal image now includes firmware payloads and Wi-Fi control-plane packages,
# so the previous 512 MiB image is too small for live ISO assembly.
# Minimal image carries the full non-graphics package set;
# 2048 MiB accommodates CLI tools, D-Bus services, and filesystem utilities.
filesystem_size = 2048
[packages]
@@ -27,8 +28,7 @@ redbear-traceroute = {}
redbear-mtr = {}
redbear-nmap = {}
# Firmware loading + Wi-Fi control plane
redbear-firmware = {}
# Wi-Fi control plane (firmware-loader comes from redbear-device-services.toml)
firmware-loader = {}
redbear-wifictl = {}
@@ -42,6 +42,41 @@ mc = {}
# Diagnostic tool
redbear-info = {}
# Package builder (cub -S/-B/-G CLI)
cub = {}
# ── D-Bus IPC and session services ──
dbus = {}
redbear-sessiond = {}
redbear-dbus-services = {}
redbear-notifications = {}
redbear-upower = {}
redbear-udisks = {}
redbear-polkit = {}
# ── IOMMU DMA remapping ──
iommu = {}
# ── Standard CLI tools (from server profile) ──
bash = {}
bottom = {}
curl = {}
diffutils = {}
findutils = {}
git = {}
htop = {}
# ── Filesystem support ──
ext4d = {}
redoxfs = {}
# ── System installer ──
installer = {}
# ── Build / packaging utilities ──
patchelf = {}
shared-mime-info = {}
[[files]]
path = "/etc/netctl/active"
data = "wired-dhcp\n"
@@ -63,5 +98,122 @@ data = """
Type 'help' for available commands.
"""
[[files]]
path = "/usr/lib/init.d/12_dbus.service"
data = """
[unit]
description = "D-Bus system bus"
requires_weak = [
"12_boot-late.target",
]
[service]
cmd = "ion"
args = [
"-c",
"mkdir -p /var/lib/dbus /run/dbus; rm -f /run/dbus/pid; dbus-uuidgen --ensure; dbus-daemon --system",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/13_redbear-sessiond.service"
data = """
[unit]
description = "Red Bear session broker (org.freedesktop.login1)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-sessiond",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/13_iommu.service"
data = """
[unit]
description = "IOMMU DMA remapping daemon"
requires_weak = [
"12_boot-late.target",
"00_pcid-spawner.service",
]
[service]
cmd = "/usr/bin/iommu"
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/14_redbear-upower.service"
data = """
[unit]
description = "UPower D-Bus service (org.freedesktop.UPower)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-upower",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/14_redbear-udisks.service"
data = """
[unit]
description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-udisks",
]
type = "oneshot_async"
"""
[[files]]
path = "/usr/lib/init.d/14_redbear-polkit.service"
data = """
[unit]
description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)"
requires_weak = [
"12_dbus.service",
]
[service]
cmd = "ion"
args = [
"-c",
"redbear-polkit",
]
type = "oneshot_async"
"""
[[files]]
path = "/var/lib/dbus"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/run/dbus"
data = ""
directory = true
mode = 0o755
# VT/getty/login chain: initfs starts inputd + vesad + fbcond in phase 1,
# then minimal.toml legacy 30_console runs inputd -A 2 + getty 2 + getty debug.