a39f741d23
VIRTGPU_GETPARAM: expand from 1 to 8 sub-parameters for Mesa compatibility. Mesa virgl driver probes CAPSET_QUERY_FIX, RESOURCE_BLOB, CONTEXT_INIT, SUPPORTED_CAPSET_IDS, and EXPLICIT_DEBUG_NAME during initialization. set_property: add doc comment explaining that virtio-gpu has no per-object property tables — all mode/fb/active changes flow through atomic commit, not set_property. cursor_move: replace x.max(0) as u32 / y.max(0) as u32 with explicit if-else for clarity. Negative coordinates now clamp to zero at screen edges (same behavior, more readable code).
550 lines
11 KiB
TOML
550 lines
11 KiB
TOML
# Red Bear OS Mini Configuration
|
|
# Text-only ISO for console/recovery/install on bare metal.
|
|
#
|
|
# Build: make live CONFIG_NAME=redbear-mini
|
|
#
|
|
# Target contract:
|
|
# - text-login live/recovery/install surface
|
|
# - boot framebuffer for VT text consoles via vesad + fbcond
|
|
# - all non-graphics, non-firmware packages from the full profile
|
|
# - no linux-firmware payload, no firmware-loader, no GPU/display drivers
|
|
|
|
include = ["minimal.toml", "redbear-legacy-base.toml", "redbear-netctl.toml", "redbear-device-services.toml", "redbear-boot-stages.toml"]
|
|
|
|
[general]
|
|
filesystem_size = 1536
|
|
|
|
[users.messagebus]
|
|
uid = 100
|
|
gid = 100
|
|
name = "messagebus"
|
|
home = "/nonexistent"
|
|
shell = "/usr/bin/false"
|
|
|
|
[packages]
|
|
# Red Bear OS branding and host utilities.
|
|
redbear-release = {}
|
|
redbear-hwutils = {}
|
|
redbear-quirks = {}
|
|
|
|
# Device driver infrastructure: driver-manager replaces pcid-spawner;
|
|
# 00_driver-manager.service is defined in redbear-device-services.toml.
|
|
ehcid = {}
|
|
ohcid = {}
|
|
uhcid = {}
|
|
|
|
# Redox-native netctl tooling.
|
|
redbear-netctl = {}
|
|
redbear-netctl-console = {}
|
|
redbear-netstat = {}
|
|
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 = {}
|
|
|
|
# Keep package builder utility in live environment.
|
|
cub = {}
|
|
cpufreqd = {}
|
|
thermald = {}
|
|
coretempd = {}
|
|
hwrngd = {}
|
|
redbear-acmd = {}
|
|
redbear-ecmd = {}
|
|
redbear-usbaudiod = {}
|
|
driver-params = {}
|
|
|
|
# ── PCI device database (critical for PCI 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 (text-mode ISO baseline) ──
|
|
bash = {}
|
|
bottom = {}
|
|
#curl = {} # suppressed: nghttp2 dependency chain fails
|
|
diffutils = "ignore" # suppressed: relibc/gnulib header gaps
|
|
findutils = {}
|
|
#file = {} # blocked: configure/make failure (needs debugging)
|
|
#less = {} # blocked: libvterm dependency fails
|
|
sed = {}
|
|
nano = {}
|
|
uutils-tar = "ignore"
|
|
bison = "ignore" # blocked: winsize redefinition in redoxer toolchain
|
|
flex = {}
|
|
meson = {}
|
|
#ninja-build = {} # blocked: redoxer injects broken stdint typedefs into CFLAGS
|
|
#m4 = {} # disabled: gnulib cross-compilation header ordering issue
|
|
#git = {} # suppressed: cascading rebuild
|
|
#htop = {} # disabled: build failure in redoxer env (pre-existing)
|
|
|
|
# ── Build / packaging utilities ──
|
|
# patchelf = {} # requires strtold which is missing in relibc
|
|
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.
|
|
|
|
[[files]]
|
|
path = "/etc/netctl/active"
|
|
data = "wired-dhcp\n"
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/10_smolnetd.service"
|
|
data = """
|
|
[unit]
|
|
description = "Network stack (non-blocking on live-mini)"
|
|
requires_weak = [
|
|
"00_driver-manager.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "netstack"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/10_dhcpd.service"
|
|
data = """
|
|
[unit]
|
|
description = "DHCP client daemon (non-blocking on live-mini)"
|
|
requires_weak = [
|
|
"10_smolnetd.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "dhcpd"
|
|
args = ["-f"]
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/issue"
|
|
postinstall = true
|
|
data = """
|
|
____ _ ____ ___ ____
|
|
| _ \\ ___ __| | __ ) ___ __ _ _ __ / _ \\/ ___|
|
|
| |_) / _ \\ / _` | _ \\ / _ \\/ _` | '__| | | | \\___ \\
|
|
| _ < __/ (_| | |_) | __/ (_| | | | |_| |___) |
|
|
|_| \\_\\___|\\__,_|____/ \\___|\\__,_|_| \\___/|____/
|
|
|
|
v0.2.2 "Liliya"
|
|
|
|
Login as `user` (no password)
|
|
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/motd"
|
|
postinstall = true
|
|
data = """
|
|
____ _ ____ ___ ____
|
|
| _ \\ ___ __| | __ ) ___ __ _ _ __ / _ \\/ ___|
|
|
| |_) / _ \\ / _` | _ \\ / _ \\/ _` | '__| | | | \\___ \\
|
|
| _ < __/ (_| | |_) | __/ (_| | | | |_| |___) |
|
|
|_| \\_\\___|\\__,_|____/ \\___|\\__,_|_| \\___/|____/
|
|
|
|
v0.2.2 "Liliya" · Built on Redox OS
|
|
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/20_audiod.service"
|
|
data = """
|
|
[unit]
|
|
description = "Audio multiplexer (non-blocking on live-mini)"
|
|
requires_weak = [
|
|
"00_base.target",
|
|
]
|
|
|
|
[service]
|
|
cmd = "audiod"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/02_serial_probe.service"
|
|
data = """
|
|
[unit]
|
|
description = "Serial boot probe marker"
|
|
requires_weak = [
|
|
"00_base.target",
|
|
]
|
|
|
|
[service]
|
|
cmd = "echo"
|
|
args = ["RB_SERIAL_PROBE_OK"]
|
|
type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_gpiod.service"
|
|
data = """
|
|
[unit]
|
|
description = "GPIO controller registry (non-blocking on live-mini)"
|
|
requires_weak = [
|
|
"00_base.target",
|
|
]
|
|
|
|
[service]
|
|
cmd = "gpiod"
|
|
type = { scheme = "gpio" }
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_i2cd.service"
|
|
data = """
|
|
[unit]
|
|
description = "I2C adapter registry (non-blocking on live-mini)"
|
|
requires_weak = [
|
|
"00_base.target",
|
|
]
|
|
|
|
[service]
|
|
cmd = "i2cd"
|
|
type = { scheme = "i2c" }
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_i2c-dw-acpi.service"
|
|
data = """
|
|
[unit]
|
|
description = "DesignWare ACPI I2C controller (non-blocking)"
|
|
default_dependencies = false
|
|
requires_weak = [
|
|
"00_i2cd.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "dw-acpi-i2cd"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_intel-gpiod.service"
|
|
data = """
|
|
[unit]
|
|
description = "Intel ACPI GPIO registrar (non-blocking)"
|
|
default_dependencies = false
|
|
requires_weak = [
|
|
"00_gpiod.service",
|
|
"00_i2cd.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "intel-gpiod"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_i2c-gpio-expanderd.service"
|
|
data = """
|
|
[unit]
|
|
description = "I2C GPIO expander companion bridge (non-blocking on live-mini)"
|
|
default_dependencies = false
|
|
requires_weak = [
|
|
"00_i2cd.service",
|
|
"00_gpiod.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "i2c-gpio-expanderd"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_i2c-hidd.service"
|
|
data = """
|
|
[unit]
|
|
description = "ACPI I2C HID bring-up daemon (non-blocking)"
|
|
default_dependencies = false
|
|
requires_weak = [
|
|
"00_acpid.service",
|
|
"00_i2cd.service",
|
|
"00_i2c-dw-acpi.service",
|
|
"00_intel-gpiod.service",
|
|
"00_i2c-gpio-expanderd.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "i2c-hidd"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/00_ucsid.service"
|
|
data = """
|
|
[unit]
|
|
description = "USB-C UCSI topology detector (non-blocking on live-mini)"
|
|
default_dependencies = false
|
|
requires_weak = [
|
|
"00_base.target",
|
|
"00_i2cd.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "ucsid"
|
|
type = { scheme = "ucsi" }
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/12_boot-late.target"
|
|
data = """
|
|
[unit]
|
|
description = "Late boot services target (compat alias for 04_drivers.target)"
|
|
requires_weak = [
|
|
"04_drivers.target",
|
|
]
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/11_udev.service"
|
|
data = """
|
|
[unit]
|
|
description = "udev compatibility shim"
|
|
requires_weak = [
|
|
"12_boot-late.target",
|
|
"00_driver-manager.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "udev-shim"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/10_evdevd.service"
|
|
data = """
|
|
[unit]
|
|
description = "Evdev input daemon"
|
|
requires_weak = [
|
|
"12_boot-late.target",
|
|
"00_driver-manager.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "evdevd"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/11_wifictl.service"
|
|
data = """
|
|
[unit]
|
|
description = "Wi-Fi control daemon"
|
|
requires_weak = [
|
|
"12_boot-late.target",
|
|
"00_driver-manager.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "redbear-wifictl"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/12_dbus.service"
|
|
data = """
|
|
[unit]
|
|
description = "D-Bus system bus"
|
|
requires_weak = [
|
|
"12_boot-late.target",
|
|
]
|
|
|
|
[service]
|
|
cmd = "dbus-daemon"
|
|
args = ["--system", "--nopidfile"]
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/13_seatd.service"
|
|
data = """
|
|
[unit]
|
|
description = "seatd seat management (no-op on live-mini)"
|
|
|
|
[service]
|
|
cmd = "echo"
|
|
args = ["seatd: skipped on live-mini"]
|
|
type = "oneshot"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/13_redbear-sessiond.service"
|
|
data = """
|
|
[unit]
|
|
description = "Red Bear session broker (org.freedesktop.login1)"
|
|
requires_weak = [
|
|
"12_dbus.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "redbear-sessiond"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/13_iommu.service"
|
|
data = """
|
|
[unit]
|
|
description = "IOMMU DMA remapping daemon"
|
|
requires_weak = [
|
|
"12_boot-late.target",
|
|
"00_driver-manager.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "/usr/bin/iommu"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/14_redbear-upower.service"
|
|
data = """
|
|
[unit]
|
|
description = "UPower D-Bus service (org.freedesktop.UPower)"
|
|
requires_weak = [
|
|
"12_dbus.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "redbear-upower"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/14_redbear-udisks.service"
|
|
data = """
|
|
[unit]
|
|
description = "UDisks2 D-Bus service (org.freedesktop.UDisks2)"
|
|
requires_weak = [
|
|
"12_dbus.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "redbear-udisks"
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/14_redbear-polkit.service"
|
|
data = """
|
|
[unit]
|
|
description = "PolicyKit1 D-Bus service (org.freedesktop.PolicyKit1)"
|
|
requires_weak = [
|
|
"12_dbus.service",
|
|
]
|
|
|
|
[service]
|
|
cmd = "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 = "/lib/drivers.d/30-graphics.toml"
|
|
data = """
|
|
# redbear-mini is text-only; keep driver-manager from attempting GPU binding in
|
|
# this profile. redbear-full replaces this fragment with the DRM/KMS binding.
|
|
driver = []
|
|
"""
|
|
|
|
# INIT_SKIP removed — all daemons are now enabled for boot.
|
|
# Individual hardware daemons that fail in QEMU will exit cleanly
|
|
# rather than blocking boot via the oneshot_async service type.
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/29_activate_console.service"
|
|
data = """
|
|
[unit]
|
|
description = "Activate console VT"
|
|
default_dependencies = false
|
|
requires_weak = ["00_base.target"]
|
|
|
|
[service]
|
|
cmd = "inputd"
|
|
args = ["-A", "2"]
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/30_console.service"
|
|
data = """
|
|
[unit]
|
|
description = "Console terminals"
|
|
default_dependencies = false
|
|
requires_weak = ["29_activate_console.service"]
|
|
|
|
[service]
|
|
cmd = "sh"
|
|
args = ["-c", "sleep 0.2; exec getty 2"]
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/31_debug_console.service"
|
|
data = """
|
|
[unit]
|
|
description = "Debug console"
|
|
default_dependencies = false
|
|
requires_weak = ["29_activate_console.service"]
|
|
|
|
[service]
|
|
cmd = "getty"
|
|
args = ["/scheme/debug/no-preserve", "-J"]
|
|
type = "oneshot_async"
|
|
"""
|
|
|
|
[[files]]
|
|
path = "/etc/init.d/08_userland.target"
|
|
data = """
|
|
[unit]
|
|
description = "Userland services target"
|
|
requires_weak = [
|
|
"06_services.target",
|
|
"29_activate_console.service",
|
|
"30_console.service",
|
|
"31_debug_console.service",
|
|
]
|
|
"""
|