From ed854acdc4e9aa215fa4297e284e776367de28c2 Mon Sep 17 00:00:00 2001 From: Vasilito Date: Sat, 25 Apr 2026 09:16:16 +0100 Subject: [PATCH] Add D-Bus and session services to live-mini and minimal configs --- config/redbear-live-mini.toml | 221 +++++++++++++++++++++++++++++++++- config/redbear-minimal.toml | 162 ++++++++++++++++++++++++- 2 files changed, 375 insertions(+), 8 deletions(-) diff --git a/config/redbear-live-mini.toml b/config/redbear-live-mini.toml index c7a2426a..b43f53aa 100644 --- a/config/redbear-live-mini.toml +++ b/config/redbear-live-mini.toml @@ -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 = """ diff --git a/config/redbear-minimal.toml b/config/redbear-minimal.toml index 777a48d3..b69e063d 100644 --- a/config/redbear-minimal.toml +++ b/config/redbear-minimal.toml @@ -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.