# Red Bear OS Full Configuration # Desktop/graphics ISO for bare metal and QEMU. # # Build: make live CONFIG_NAME=redbear-full # QEMU: make all CONFIG_NAME=redbear-full && make qemu # # Extends redbear-mini with the full desktop/graphics stack: # Wayland, Qt6, KF6, KWin, Mesa, DRM drivers, firmware, greeter. # # GPU/display policy: DRM/KMS ONLY. No VESA. Real GPU drivers: # QEMU → virtio-gpu via redox-drm (virgl 3D) # Intel → i915-like via redox-drm (Mesa i965/iris) # AMD → amdgpu via redox-drm + linux-kpi (Mesa radeonsi) # Display path: bootloader FB → redox-drm → DRM/KMS → KWin compositor # Consult local/reference/linux-7.0/ for driver behavior reference. include = ["redbear-mini.toml"] [general] filesystem_size = 2048 [users.messagebus] uid = 100 gid = 100 name = "messagebus" home = "/nonexistent" shell = "/usr/bin/false" [users.root] password = "password" uid = 0 gid = 0 shell = "/usr/bin/zsh" [users.user] password = "" uid = 1000 gid = 1000 name = "user" home = "/home/user" shell = "/usr/bin/zsh" [packages] # Runtime driver parameter control surface. driver-params = {} # D-Bus IPC (required by greeter/session services) expat = {} dbus = {} # Firmware loading redbear-firmware = {} firmware-loader = {} # Intel Wi-Fi bounded driver path redbear-iwlwifi = {} # NUMA topology discovery (userspace daemon) numad = {} # GPU/graphics stack redox-drm = {} mesa = {} libdrm = {} libepoxy = {} libdisplay-info = {} libxcvt = {} lcms2 = {} freetype2 = {} fontconfig = {} libwayland = {} wayland-protocols = {} plasma-wayland-protocols = {} redbear-compositor = {} # Keyboard/input libxkbcommon = {} xkeyboard-config = {} libevdev = {} libinput = {} redbear-keymapd = {} redbear-ime = {} redbear-accessibility = {} # Qt6 stack qtbase = {} qtdeclarative = {} qtsvg = {} qtwayland = {} qt6-wayland-smoke = {} qt6-sensors = {} # KF6 Frameworks — explicit real-build surface in alphabetical order # kirigami: blocked (QML gate — QQuickWindow/QQmlEngine headers don't exist on Redox) kf6-kio = {} # kde-cli-tools = {} # blocked: direct repo cook fails kdecoration = {} kf6-attica = {} kf6-karchive = {} kf6-kauth = {} kf6-kbookmarks = {} kf6-kcmutils = {} kf6-kcodecs = {} kf6-kcolorscheme = {} kf6-kcompletion = {} kf6-kconfig = {} kf6-kconfigwidgets = {} kf6-kcoreaddons = {} kf6-kcrash = {} kf6-kdbusaddons = {} kf6-kdeclarative = {} kf6-kded6 = {} kf6-kguiaddons = {} kf6-ki18n = {} kf6-kiconthemes = {} kf6-kidletime = {} kf6-kitemmodels = {} kf6-kitemviews = {} kf6-kjobwidgets = {} kf6-knotifications = {} kf6-kpackage = {} kf6-kservice = {} kf6-ktextwidgets = {} kf6-kwayland = {} kf6-kwidgetsaddons = {} kf6-kwindowsystem = {} kf6-kxmlgui = {} kf6-prison = {} kf6-solid = {} kf6-sonnet = {} kf6-ksvg = {} kf6-knewstuff = {} kf6-kwallet = {} kf6-kglobalaccel = {} kf6-pty = {} kf6-notifyconfig = {} kf6-parts = {} icu = {} konsole = {} kglobalacceld = {} # kwin (real KWin compositor, QML-free build via KWIN_BUILD_QML_UI=OFF) kwin = {} # Plasma + app packages — blocked on kirigami (QML gate) # plasma-framework = {} # plasma-workspace = {} # plasma-desktop = {} redbear-authd = {} redbear-session-launch = {} seatd = {} redbear-greeter = {} sddm = {} amdgpu = "ignore" #amdgpu = {} # TODO: fix conflicting idr_* defs with linux-kpi headers # Core Red Bear umbrella package redbear-meta = {} # Phase 1 runtime validation tests (POSIX: signalfd, timerfd, eventfd, shm_open, sem_open, waitid) relibc-phase1-tests = {} # Native build toolchain — excluded from desktop ISO to reduce size. # For on-OS development, build redbear-dev config or install separately. # gcc-native = {} # binutils-native = {} # Desktop fonts and icons dejavu = {} freefont = {} hicolor-icon-theme = {} pop-icon-theme = {} # Suppress legacy desktop packages orbdata = "ignore" orbital = "ignore" orbterm = "ignore" orbutils = "ignore" cosmic-edit = "ignore" cosmic-files = "ignore" cosmic-icons = "ignore" cosmic-term = "ignore" curl = "ignore" git = "ignore" mc = {} #curl = "ignore" # suppressed: cascade rebuild #git = "ignore" # suppressed: cascade rebuild #konsole = {} # WIP: recipe exists, not yet built — blocked by libiconv fetch #kf6-pty = {} # WIP: recipe exists, not yet built [[files]] path = "/lib/firmware/amdgpu" data = "" directory = true mode = 0o755 [[files]] path = "/usr/lib/fonts" data = "/usr/share/fonts" symlink = true [[files]] path = "/lib/drivers.d/30-graphics.toml" data = """ [[driver]] name = "redox-drm" description = "DRM/KMS display driver (AMD + Intel + VirtIO)" priority = 60 command = ["/usr/bin/redox-drm"] depends_on = ["pci"] [[driver.match]] class = 0x03 vendor = 0x1002 [[driver.match]] class = 0x03 vendor = 0x8086 [[driver.match]] class = 0x03 vendor = 0x1af4 """ [[files]] path = "/lib/drivers.d/60-wifi.toml" data = """ [[driver]] name = "redbear-iwlwifi" description = "Intel Wi-Fi driver" priority = 45 command = ["/usr/lib/drivers/redbear-iwlwifi", "--full-init"] depends_on = ["pci", "firmware"] [[driver.match]] vendor = 0x8086 class = 0x02 subclass = 0x80 """ [[files]] path = "/etc/init.d/00_firmware-loader.service" data = """ [unit] description = "Firmware loading scheme" requires_weak = [ "05_boot-essential.target", ] [service] cmd = "/usr/bin/firmware-loader" type = { scheme = "firmware" } """ [[files]] path = "/etc/init.d/05_boot-essential.target" data = """ [unit] description = "Boot essential services target" requires_weak = [ "04_drivers.target", ] """ [[files]] path = "/etc/init.d/13_iommu.service" data = """ [unit] description = "IOMMU DMA remapping daemon" requires_weak = [ "05_boot-essential.target", ] [service] cmd = "/usr/bin/iommu" type = "oneshot_async" """ [[files]] path = "/etc/init.d/10_redox-drm.service" data = """ [unit] description = "DRM/KMS display driver (AMD + Intel + VirtIO)" requires_weak = [ "05_boot-essential.target", "00_driver-manager.service", ] [service] cmd = "/usr/bin/sh" args = ["-c", "if ! head -c 1 /scheme/drm/card0 >/dev/null 2>&1; then exec /usr/bin/redox-drm; fi; echo 'scheme:drm already registered, skipping'"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/12_dbus.service" data = """ [unit] description = "D-Bus system bus" requires_weak = [ "12_boot-late.target", "00_ipcd.service", ] [service] cmd = "/usr/bin/dbus-daemon" args = ["--system", "--nopidfile"] type = "oneshot_async" """ [[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 = "/usr/bin/redbear-sessiond" type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_seatd.service" data = """ [unit] description = "seatd seat management daemon" requires_weak = [ "12_dbus.service", "13_redbear-sessiond.service", ] [service] cmd = "/usr/bin/seatd" args = ["-l", "info"] type = "oneshot_async" """ [[files]] path = "/etc/keymaps/.gitkeep" data = "" [[files]] path = "/etc/init.d/13_redbear-keymapd.service" data = """ [unit] description = "Runtime keymap daemon" requires_weak = [ "10_evdevd.service", ] [service] cmd = "/usr/bin/redbear-keymapd" type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_redbear-ime.service" data = """ [unit] description = "Input method engine daemon" requires_weak = [ "10_evdevd.service", ] [service] cmd = "redbear-ime" type = "oneshot_async" """ [[files]] path = "/etc/init.d/13_redbear-accessibility.service" data = """ [unit] description = "Accessibility input filter daemon (sticky/slow/bounce keys)" requires_weak = [ "10_evdevd.service", ] [service] cmd = "redbear-accessibility" 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 = "/etc/init.d/11_redbear-authd.service" data = """ [unit] description = "Red Bear authentication daemon" requires_weak = [ "12_dbus.service", ] [service] cmd = "/usr/bin/redbear-authd" envs = { QT_PLUGIN_PATH = "/usr/plugins", QT_QPA_PLATFORM_PLUGIN_PATH = "/usr/plugins/platforms", QML2_IMPORT_PATH = "/usr/qml", XCURSOR_THEME = "Pop", XKB_CONFIG_ROOT = "/usr/share/X11/xkb", KWIN_DRM_DEVICES = "/scheme/drm/card0" } type = "oneshot_async" """ [[files]] path = "/etc/init.d/12_sddm.service" data = """ [unit] description = "SDDM display manager" requires_weak = [ "00_driver-manager.service", "10_redox-drm.service", "10_evdevd.service", "12_dbus.service", "13_redbear-sessiond.service", "13_seatd.service", "11_redbear-authd.service", ] [service] cmd = "/usr/bin/sddm" envs = { QT_PLUGIN_PATH = "/usr/plugins", QT_QPA_PLATFORM_PLUGIN_PATH = "/usr/plugins/platforms", QML2_IMPORT_PATH = "/usr/qml", XCURSOR_THEME = "Pop", XKB_CONFIG_ROOT = "/usr/share/X11/xkb" } type = "oneshot_async" """ [[files]] path = "/etc/init.d/29_activate_console.service" data = """ [unit] description = "Activate fallback console VT" requires_weak = [ "05_boot-essential.target", ] [service] cmd = "inputd" args = ["-A", "2"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/30_console.service" data = """ [unit] description = "Console terminals" 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 on serial port" requires_weak = [ "29_activate_console.service", ] [service] cmd = "getty" args = ["/scheme/debug/no-preserve", "-J"] type = "oneshot_async" """ [[files]] path = "/etc/init.d/99_diag_serial.service" data = """ [unit] description = "Serial diagnostic marker" requires_weak = [ "31_debug_console.service", "30_console.service", "12_dbus.service", ] [service] cmd = "zsh" args = ["-c", "echo BOOT_COMPLETE_SERIAL_MARKER"] type = "oneshot" """ [users.greeter] password = "" uid = 101 gid = 101 name = "greeter" home = "/var/lib/sddm" shell = "/usr/bin/zsh" [users.sddm] password = "" uid = 102 gid = 102 name = "sddm" home = "/var/lib/sddm" shell = "/usr/bin/nologin" [groups.greeter] gid = 101 members = ["greeter", "sddm"] [groups.sddm] gid = 102 members = ["sddm"] [groups.sudo] gid = 1 members = ["user"] [groups.user] gid = 1000 members = ["user"] [groups.messagebus] gid = 100 members = ["messagebus"] [[files]] path = "/etc/sddm.conf" data = """ [General] DisplayServer=wayland GreeterEnvironment=QT_PLUGIN_PATH=/usr/plugins,QML2_IMPORT_PATH=/usr/qml,QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins/platforms [Theme] Current=mayagrid ThemeDir=/usr/share/sddm/themes [Wayland] CompositorCommand=/usr/libexec/sddm-helper-start-wayland kwin_wayland --drm /scheme/drm/card0 [Users] DefaultPath=/usr/bin MinimumUid=1000 MaximumUid=60000 RememberLastUser=true [Autologin] User= Session=plasmawayland """ [[files]] path = "/usr/share/wayland-sessions/plasmawayland.desktop" data = """ [Desktop Entry] Name=Plasma Wayland Comment=KDE Plasma on Wayland Exec=/usr/bin/kwin_wayland --drm /scheme/drm/card0 Type=Application DesktopNames=KDE """ [[files]] path = "/etc/pcid.d/ihdgd.toml" data = """ [[drivers]] name = "Intel GPU (VGA compatible)" class = 0x03 vendor = 0x8086 subclass = 0x00 command = ["redox-drm"] [[drivers]] name = "Intel GPU (3D controller)" class = 0x03 vendor = 0x8086 subclass = 0x02 command = ["redox-drm"] """ [[files]] path = "/etc/pcid.d/virtio-gpud.toml" data = """ [[drivers]] name = "VirtIO GPU" class = 0x03 vendor = 0x1af4 device = 0x1050 command = ["/usr/bin/redox-drm"] """ [[files]] path = "/etc/environment.d/90-dbus.conf" data = """ DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket """ [[files]] path = "/home/user" data = "" directory = true mode = 0o755 [[files]] path = "/root" data = "" directory = true mode = 0o700