Add cross-toolchain wrappers and update scripts

Red Bear OS Team
This commit is contained in:
2026-04-16 12:46:07 +01:00
parent 225f7882f9
commit aeac5a6d92
12 changed files with 154 additions and 7 deletions
+10
View File
@@ -80,6 +80,8 @@ symlink "../../local/recipes/branding/redbear-release" "recipes/branding/redbear
# Drivers
mkdir -p recipes/drivers
symlink "../../local/recipes/drivers/linux-kpi" "recipes/drivers/linux-kpi"
symlink "../../local/recipes/drivers/redbear-btusb" "recipes/drivers/redbear-btusb"
symlink "../../local/recipes/drivers/redbear-iwlwifi" "recipes/drivers/redbear-iwlwifi"
symlink "../../local/recipes/drivers/redox-driver-sys" "recipes/drivers/redox-driver-sys"
# GPU
@@ -99,12 +101,16 @@ symlink "../../local/recipes/libs/libxcvt-stub" "recipes/libs/libxcvt-stu
mkdir -p recipes/system
symlink "../../local/recipes/system/cub" "recipes/system/cub"
symlink "../../local/recipes/system/evdevd" "recipes/system/evdevd"
symlink "../../local/recipes/system/redbear-firmware" "recipes/system/redbear-firmware"
symlink "../../local/recipes/system/firmware-loader" "recipes/system/firmware-loader"
symlink "../../local/recipes/system/iommu" "recipes/system/iommu"
symlink "../../local/recipes/system/redbear-hwutils" "recipes/system/redbear-hwutils"
symlink "../../local/recipes/system/redbear-info" "recipes/system/redbear-info"
symlink "../../local/recipes/system/redbear-btctl" "recipes/system/redbear-btctl"
symlink "../../local/recipes/system/redbear-netstat" "recipes/system/redbear-netstat"
symlink "../../local/recipes/system/redbear-netctl" "recipes/system/redbear-netctl"
symlink "../../local/recipes/system/redbear-netctl-console" "recipes/system/redbear-netctl-console"
symlink "../../local/recipes/system/redbear-wifictl" "recipes/system/redbear-wifictl"
symlink "../../local/recipes/system/redbear-traceroute" "recipes/system/redbear-traceroute"
symlink "../../local/recipes/system/redbear-mtr" "recipes/system/redbear-mtr"
symlink "../../local/recipes/system/redbear-nmap" "recipes/system/redbear-nmap"
@@ -115,6 +121,10 @@ symlink "../../local/recipes/system/udev-shim" "recipes/system/udev-shim"
mkdir -p recipes/core
symlink "../../local/recipes/core/ext4d" "recipes/core/ext4d"
# Wayland additions
mkdir -p recipes/wip/wayland
symlink "../../../local/recipes/wayland/qt6-wayland-smoke" "recipes/wip/wayland/qt6-wayland-smoke"
# KDE / Phase 6 recipes
mkdir -p recipes/kde
symlink "../../local/recipes/kde/plasma-desktop" "recipes/kde/plasma-desktop"
+3 -2
View File
@@ -4,6 +4,7 @@
# Usage:
# ./local/scripts/build-redbear.sh # Default: redbear-desktop
# ./local/scripts/build-redbear.sh redbear-minimal # Minimal validation baseline
# ./local/scripts/build-redbear.sh redbear-bluetooth-experimental # First bounded Bluetooth slice
# ./local/scripts/build-redbear.sh redbear-full # Full Red Bear integration target
# ./local/scripts/build-redbear.sh redbear-wayland # Wayland runtime validation profile
# ./local/scripts/build-redbear.sh redbear-kde # KDE Plasma bring-up target
@@ -24,11 +25,11 @@ JOBS="${JOBS:-$(nproc)}"
APPLY_PATCHES="${APPLY_PATCHES:-1}"
case "$CONFIG" in
redbear-desktop|redbear-minimal|redbear-full|redbear-wayland|redbear-kde|redbear-live)
redbear-desktop|redbear-minimal|redbear-bluetooth-experimental|redbear-full|redbear-wayland|redbear-kde|redbear-live)
;;
*)
echo "ERROR: Unknown config '$CONFIG'"
echo "Supported: redbear-desktop, redbear-minimal, redbear-full, redbear-wayland, redbear-kde, redbear-live"
echo "Supported: redbear-desktop, redbear-minimal, redbear-bluetooth-experimental, redbear-full, redbear-wayland, redbear-kde, redbear-live"
exit 1
;;
esac
+8
View File
@@ -136,16 +136,22 @@ echo ""
section "Ensuring custom recipe symlinks..."
symlink "../../local/recipes/branding/redbear-release" "recipes/branding/redbear-release"
symlink "../../local/recipes/drivers/linux-kpi" "recipes/drivers/linux-kpi"
symlink "../../local/recipes/drivers/redbear-btusb" "recipes/drivers/redbear-btusb"
symlink "../../local/recipes/drivers/redbear-iwlwifi" "recipes/drivers/redbear-iwlwifi"
symlink "../../local/recipes/drivers/redox-driver-sys" "recipes/drivers/redox-driver-sys"
symlink "../../local/recipes/gpu/amdgpu" "recipes/gpu/amdgpu"
symlink "../../local/recipes/gpu/redox-drm" "recipes/gpu/redox-drm"
symlink "../../local/recipes/system/evdevd" "recipes/system/evdevd"
symlink "../../local/recipes/system/redbear-firmware" "recipes/system/redbear-firmware"
symlink "../../local/recipes/system/firmware-loader" "recipes/system/firmware-loader"
symlink "../../local/recipes/system/iommu" "recipes/system/iommu"
symlink "../../local/recipes/system/redbear-btctl" "recipes/system/redbear-btctl"
symlink "../../local/recipes/system/redbear-info" "recipes/system/redbear-info"
symlink "../../local/recipes/system/redbear-hwutils" "recipes/system/redbear-hwutils"
symlink "../../local/recipes/system/redbear-netstat" "recipes/system/redbear-netstat"
symlink "../../local/recipes/system/redbear-netctl" "recipes/system/redbear-netctl"
symlink "../../local/recipes/system/redbear-netctl-console" "recipes/system/redbear-netctl-console"
symlink "../../local/recipes/system/redbear-wifictl" "recipes/system/redbear-wifictl"
symlink "../../local/recipes/system/redbear-traceroute" "recipes/system/redbear-traceroute"
symlink "../../local/recipes/system/redbear-mtr" "recipes/system/redbear-mtr"
symlink "../../local/recipes/system/redbear-nmap" "recipes/system/redbear-nmap"
@@ -154,6 +160,7 @@ symlink "../../local/recipes/system/udev-shim" "recipes/system/udev-shim"
symlink "../../local/recipes/core/ext4d" "recipes/core/ext4d"
symlink "../../local/recipes/tui/mc" "recipes/tui/mc"
symlink "../../local/recipes/system/cub" "recipes/system/cub"
symlink "../../../local/recipes/wayland/qt6-wayland-smoke" "recipes/wip/wayland/qt6-wayland-smoke"
# KDE / Phase 6 recipes
mkdir -p recipes/kde
@@ -216,6 +223,7 @@ section "Validating Red Bear configs..."
declare -a redbear_configs=(
"config/redbear-desktop.toml"
"config/redbear-minimal.toml"
"config/redbear-bluetooth-experimental.toml"
"config/redbear-full.toml"
"config/redbear-wayland.toml"
"config/redbear-live.toml"
+3
View File
@@ -224,5 +224,8 @@ echo "1. Safely eject or unplug the target device if your host requires it."
echo "2. Insert the device into the AMD test machine and boot from it in UEFI mode."
echo "3. Capture serial output during boot if available to diagnose early failures."
echo "4. Check ACPI, SMP, framebuffer, and storage initialization on real hardware."
echo "5. If validating the Intel Wi-Fi path, run: redbear-phase5-wifi-check"
echo "6. For the strongest bounded Wi-Fi runtime path, also run: test-wifi-baremetal-runtime.sh"
echo "7. Preserve /tmp/redbear-phase5-wifi-capture.json from the target after the run."
echo ""
echo "If you need serial logs, connect your serial console before powering on the target system."
+15
View File
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
# Launch the Phase 4 Wayland path in QEMU using the repo's Wayland profile.
# This script validates the current bounded software-path Wayland runtime slice.
# It does NOT currently prove a hardware-accelerated desktop path in QEMU.
set -euo pipefail
@@ -36,6 +38,11 @@ Examples:
Expected runtime path:
orbital -> orbital-wayland -> smallvil -> wayland-session
Important:
the current harness uses '-vga std' and today still surfaces llvmpipe in-guest.
Treat this as a Phase 4 software-path/runtime smoke check and regression harness.
Hardware-accelerated desktop proof is a separate bare-metal/runtime-driver milestone.
USAGE
}
@@ -93,6 +100,7 @@ echo " redbear-info --json"
echo " netctl status"
echo " redbear-phase4-wayland-check"
echo " smallvil should be the primary compositor path"
echo " qt6-wayland-smoke should leave a success marker via wayland-session"
echo
if [[ "$check_mode" -eq 1 ]]; then
@@ -110,6 +118,13 @@ expect "Red Bear OS Phase 4 Wayland Runtime Check"
expect "orbital-wayland"
expect "wayland-session"
expect "smallvil"
expect "/home/root/.qt6-bootstrap-minimal.ok"
expect "/home/root/.qt6-plugin-minimal.ok"
expect "/home/root/.qt6-wayland-smoke-minimal.ok"
expect "/home/root/.qt6-wayland-smoke-offscreen.ok"
expect "/home/root/.qt6-wayland-smoke-wayland.ok"
expect "/home/root/.qt6-wayland-smoke.ok"
expect "qt6-wayland-smoke"
expect "virtio_net_present"
send "shutdown\r"
expect eof
+30 -5
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Reference host-side copy of the guest-side Phase 4 Wayland runtime check.
# The actual in-guest command installed by the profile is `redbear-phase4-wayland-check`.
# Reference shell reimplementation of the guest-side Phase 4 Wayland runtime check.
# Run this inside the guest when `redbear-phase4-wayland-check` is unavailable for debugging.
set -euo pipefail
@@ -21,15 +21,40 @@ require_command() {
require_command orbital-wayland "orbital-wayland launcher is installed"
require_command wayland-session "wayland-session launcher is installed"
require_command smallvil "smallvil compositor is installed"
require_command qt6-wayland-smoke "qt6-wayland-smoke is installed"
require_command qt6-bootstrap-check "qt6-bootstrap-check is installed"
require_command qt6-plugin-check "qt6-plugin-check is installed"
require_command redbear-info "redbear-info is installed"
echo
for marker in \
/home/root/.wayland-session.started \
/home/root/.qt6-bootstrap-minimal.ok \
/home/root/.qt6-plugin-minimal.ok \
/home/root/.qt6-wayland-smoke-minimal.ok \
/home/root/.qt6-wayland-smoke-offscreen.ok \
/home/root/.qt6-wayland-smoke-wayland.ok \
/home/root/.qt6-wayland-smoke.ok
do
if [[ -f "$marker" ]]; then
echo "✅ Marker present: $marker"
else
echo "❌ Marker missing: $marker"
exit 1
fi
done
echo
echo "=== redbear-info --json ==="
redbear-info --json
redbear-info --json | tee /tmp/redbear-phase4-info.json
if ! grep -q 'virtio_net_present' /tmp/redbear-phase4-info.json; then
echo "❌ redbear-info --json did not report virtio_net_present"
exit 1
fi
echo
echo "=== Phase 4 launch surface ==="
echo "orbital-wayland and smallvil are present on the wayland profile."
echo "Run 'orbital-wayland' from a graphical VT to start the compositor path."
echo "orbital-wayland, smallvil, and the Qt6 Phase 4 smoke helpers are present on the wayland profile."
echo "Run this script inside the guest, or use redbear-phase4-wayland-check as the canonical validator."
echo
echo "=== Test Complete ==="
@@ -82,6 +82,11 @@ send "redbear-phase5-network-check\r"
expect "Red Bear OS Phase 5 Networking Check"
expect "dbus-daemon"
expect "virtio_net_present"
expect "wifi_control_state=present"
expect "wifi_connect_result=present"
expect "PHASE5_WIFI_CHECK=pass"
expect "WIFICTL_INTERFACES=present"
expect "WIFICTL_CAPABILITIES=present"
expect "DBUS_SYSTEM_BUS="
send "shutdown\r"
expect eof