Red Bear OS — microkernel OS in Rust, based on Redox

Derivative of Redox OS (https://www.redox-os.org) adding:
- AMD GPU driver (amdgpu) via LinuxKPI compat layer
- ext4 filesystem support (ext4d scheme daemon)
- ACPI fixes for AMD bare metal (x2APIC, DMAR, IVRS, MCFG)
- Custom branding (hostname, os-release, boot identity)

Build system is full upstream Redox with RBOS overlay in local/.
Patches for kernel, base, and relibc are symlinked from local/patches/
and protected from make clean/distclean. Custom recipes live in
local/recipes/ with symlinks into the recipes/ search path.

Build:  make all CONFIG_NAME=redbear-full
Sync:   ./local/scripts/sync-upstream.sh
This commit is contained in:
2026-04-12 19:05:00 +01:00
commit 50b731f1b7
3392 changed files with 98327 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# AMD Desktop Configuration — Phase 2: AMD GPU Display
# Builds on top of desktop config with AMD GPU support
#
# Phases completed:
# P1: redox-driver-sys, linux-kpi, firmware-loader ✅
# P2: redox-drm, amdgpu (modesetting only) ← YOU ARE HERE
include = ["desktop.toml"]
[general]
filesystem_size = 8196
[packages]
# AMD GPU driver stack — Phase 1 infrastructure
redox-driver-sys = {}
linux-kpi = {}
firmware-loader = {}
# AMD GPU — Phase 2: Display output
redox-drm = {}
amdgpu = {}
# Input (Phase 3)
evdevd = { path = "../../local/recipes/system/evdevd" }
udev-shim = { path = "../../local/recipes/system/udev-shim" }
# Wayland (Phase 4 — depends on P2+P3)
# libwayland = {}
# wayland-protocols = {}
# smallvil = {}
# mesa = {}
# libdrm = {}
# KDE (Phase 6)
# qtbase = {}
# qtwayland = {}
# kwin = {}
# plasma-workspace = {}
# Files to include
[[files]]
path = "/usr/firmware/amdgpu"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/lib/init.d/05_firmware"
data = """
requires_weak 00_drivers
nowait firmware-loader
"""
[[files]]
path = "/usr/lib/init.d/10_evdevd"
data = """
requires_weak 00_drivers
nowait evdevd
"""
[[files]]
path = "/usr/lib/init.d/11_udev"
data = """
requires_weak 00_drivers
nowait udev-shim
"""
+72
View File
@@ -0,0 +1,72 @@
# Unified Bare-Metal Desktop Configuration
# Auto-detects GPU vendor (AMD or Intel) at runtime
#
# Phases completed:
# P1: redox-driver-sys, linux-kpi, firmware-loader
# P2: redox-drm (AMD + Intel drivers)
# P3: evdevd, udev-shim
include = ["desktop.toml"]
[general]
filesystem_size = 10240
[packages]
# GPU driver infrastructure — Phase 1
redox-driver-sys = {}
linux-kpi = {}
firmware-loader = {}
# GPU — Phase 2: Both AMD and Intel display drivers
redox-drm = {}
# Input — Phase 3
evdevd = { path = "../../local/recipes/system/evdevd" }
udev-shim = { path = "../../local/recipes/system/udev-shim" }
# Wayland (Phase 4 — depends on P2+P3)
# libwayland = {}
# wayland-protocols = {}
# smallvil = {}
# mesa = {}
# libdrm = {}
# KDE (Phase 6)
# qtbase = {}
# qtwayland = {}
# kwin = {}
# plasma-workspace = {}
# Firmware directories for both GPU vendors
[[files]]
path = "/usr/firmware/amdgpu"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/firmware/i915"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/lib/init.d/05_firmware"
data = """
requires_weak 00_drivers
nowait firmware-loader
"""
[[files]]
path = "/usr/lib/init.d/10_evdevd"
data = """
requires_weak 00_drivers
nowait evdevd
"""
[[files]]
path = "/usr/lib/init.d/11_udev"
data = """
requires_weak 00_drivers
nowait udev-shim
"""
+58
View File
@@ -0,0 +1,58 @@
# Intel Desktop Configuration
# Builds on top of desktop config with Intel GPU support
#
# Phases completed:
# P1: redox-driver-sys, linux-kpi, firmware-loader
# P2: redox-drm, Intel i915 (modesetting only)
include = ["desktop.toml"]
[general]
filesystem_size = 8196
[packages]
# Intel GPU driver stack — Phase 1 infrastructure
redox-driver-sys = {}
linux-kpi = {}
firmware-loader = {}
# Intel GPU — Phase 2: Display output
redox-drm = {}
# Input (Phase 3)
evdevd = { path = "../../local/recipes/system/evdevd" }
udev-shim = { path = "../../local/recipes/system/udev-shim" }
# Wayland (Phase 4 — depends on P2+P3)
# libwayland = {}
# wayland-protocols = {}
# smallvil = {}
# mesa = {}
# libdrm = {}
[[files]]
path = "/usr/firmware/i915"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/lib/init.d/05_firmware"
data = """
requires_weak 00_drivers
nowait firmware-loader
"""
[[files]]
path = "/usr/lib/init.d/10_evdevd"
data = """
requires_weak 00_drivers
nowait evdevd
"""
[[files]]
path = "/usr/lib/init.d/11_udev"
data = """
requires_weak 00_drivers
nowait udev-shim
"""
+17
View File
@@ -0,0 +1,17 @@
# PCID configuration for AMD GPU auto-detection
# When pcid detects an AMD GPU (vendor 0x1002, class 0x03),
# it launches redox-drm with the PCI device location.
[[device]]
vendor = 0x1002
class = 0x03
subclass = 0x00
command = ["redox-drm"]
args = ["$BUS", "$DEV", "$FUNC"]
[[device]]
vendor = 0x1002
class = 0x03
subclass = 0x02
command = ["redox-drm"]
args = ["$BUS", "$DEV", "$FUNC"]