vasilito
6d14a378c3
coretempd: disable MSR fallback, use /scheme/sys/cpu exclusively
...
Kernel has a use-after-free bug in sys_read triggered by /scheme/sys/msr
access. The probe guard prevents most crashes but the kernel bug can still
trigger during MSR read paths. Removing the MSR fallback eliminates this
crash path entirely. Vendor detection now uses /scheme/sys/cpu only.
2026-06-02 09:22:47 +03:00
vasilito
a52632f69d
fix: bits_pthread cbindgen needs stddef.h for size_t type
...
The generated bits/pthread.h uses size_t but had no includes.
Also added openat cache vars to m4 recipe for gnulib cross-compilation.
2026-06-01 17:00:53 +03:00
vasilito
99e661081f
fix: add reasonable P-state fallback when platform detection fails but MSR works
2026-06-01 11:32:30 +03:00
vasilito
052be6d264
feat: intelligent platform detection for cpufreqd and coretempd
...
cpufreqd:
- Read CPU vendor and frequency from /scheme/sys/cpu (CPUID-based)
- Generate P-states dynamically from detected max/base frequency
- Remove hardcoded 2400-1200 kHz fallback table
- Intel SpeedStep and AMD encoding support
coretempd:
- Detect vendor from /scheme/sys/cpu before MSR probing
- Read CPU count from /scheme/sys/cpu for accuracy
- Fall back to MSR detection only when platform info unavailable
2026-06-01 11:14:52 +03:00
vasilito
ad74e920ae
fix: coretempd MSR probe for QEMU default machine type
...
On QEMU's default i440FX machine type, rdmsr on unsupported MSRs
(0x19c IA32_THERM_STATUS, 0x1a2 IA32_TEMPERATURE_TARGET) causes a
kernel #GP that kills the process. Same pattern as cpufreqd: spawn a
child with --probe-msr to test readability before the main loop. If
probe fails, disable all MSR reads and report all CPUs as Unknown.
2026-06-01 09:42:24 +03:00
vasilito
77795cfa18
fix: redbear-mini boot to login prompt + daemon hardening
...
- 29_activate_console.service: oneshot -> oneshot_async (unblocks init
scheduler, enabling getty 2 -> login)
- 15_coretempd.service: oneshot_async -> {scheme="coretemp"} (init
now correctly registers the scheme fd)
- cpufreqd: child-process MSR probe detects QEMU's lack of MSR 0x199
and gracefully degrades to monitoring-only mode
- coretempd: notification failure is now non-fatal (WARN instead of ?)
- driver-manager: "no match entries" downgraded from warn to debug
(infrastructure daemons intentionally have no hw match)
2026-06-01 09:02:42 +03:00
vasilito
cd05afdcb1
initfs: exit after enumeration, skip scheme path checks
...
- Skip binary existence check in probe(): Redox scheme paths
(especially /scheme/initfs/) may block on open/stat indefinitely.
Command::new() spawn fails cleanly if binary missing.
- In initfs mode: use synchronous probe, do bounded deferred
retries, then exit. Rootfs instance handles hotplug.
- Avoids pcid config handle read hang that blocks async threads.
2026-05-31 19:22:39 +03:00
vasilito
3431bbfeb2
Fix duplicate atomic_t typedef conflicting with types.h
2026-05-31 05:50:29 +03:00
vasilito
10aa80bb0b
chore: AI slop cleanup — remove broken symlinks, .rej/.orig files, empty dirs, stale patch refs
2026-05-30 04:47:12 +03:00
vasilito
706050482b
fix: rewrite coretempd to use redox_scheme Socket + SchemeSync
...
Replaced broken UnixListener::bind(':coretemp') with proper redox_scheme::Socket::create() + SchemeSync trait impl. Event loop uses next_request/handle_sync/write_response pattern. Verified: registers scheme:coretemp, detects CPU info, zero panics.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-29 21:48:51 +03:00
vasilito
9db9c3bdc9
feat: ISO size reduction, user account, SDDM, PAM, VirtIO fixes, KDE/Qt patches
...
- Trim redbear-firmware from 1816MB to 143MB (GPU+WiFi only)
- Reduce filesystem_size from 8192 to 2048 MB
- Add unprivileged user account (uid=1000, sudo group)
- Add SDDM display manager recipe with Wayland-only patches
- Add pam-redbear PAM module for authentication
- Fix VirtIO queue timeout (SeqCst fence, remove permanent failure)
- KDE/KWin build fixes (libinput, wayland socket, ramfile, tabletmode)
- Qt6 build fixes (platformdefs, socket engine, Wayland integration)
- KF6 CMake fixes (attica, kcmutils, kcolorscheme, kcompletion, etc.)
- libxml2 build fix, libxkbcommon recipe fix
- Remove gcc-native/binutils-native from desktop ISO
2026-05-29 09:00:55 +03:00
vasilito
845ae99f9d
fix graphical boot: DRM scheme detection, ConsoleKit bypass, boot chain deps
...
Three fixes for the KWin DRM device discovery failure:
1. drm_scheme_ready(): replace head -c 1 with exec 3< open test.
Reading from a DRM scheme fd blocks because the scheme expects
ioctl-style request/response, not streaming reads. Use open()
success as the scheme availability probe instead.
2. ConsoleKitSession::create(): return nullptr immediately.
The D-Bus isServiceRegistered() call can block indefinitely when
the bus daemon doesn't fully implement org.freedesktop.DBus.
With both LogindSession and ConsoleKitSession returning nullptr,
Session::create() falls through to NoopSession which uses plain
open() for DRM device access.
3. Boot chain deps: redox-drm depends on driver-manager,
greeter depends on evdevd (keyboard/mouse ready before login).
Also includes: KF6 CMake build fixes, Qt6 platform patches,
libdrm Redox ioctl shim, and wayland.toml scheme check fix.
2026-05-28 23:19:49 +03:00
vasilito
cb50169517
P0-P3 baseline for P4
2026-05-28 15:49:45 +03:00
vasilito
328d1abbcd
rate-limit scheme error spam to prevent serial log flood
2026-05-28 00:36:17 +03:00
vasilito
b9de373b31
Merge bootprocess branch overlay into 0.2.0
...
Restore all bootprocess branch files that were overwritten by later 0.2.0
commits. This overlay brings back the complete boot infrastructure:
- Configs: redbear-full, redbear-mini, redbear-device-services, driver .d files
- Kernel: IRQ affinity, x2APIC, C-states, NUMA (SLIT/SRAT), MCS locks, cpuidle
- Base patches: P0-P55 + new P6 (lived block_size=512) + P57 (fbbootlogd graceful init)
- Driver infra: driver-manager, udev-shim, thermald, cpufreqd, iommu, redox-driver-sys/core
- GPU: redox-drm with improved connector handling
- System: redbear-info, redbear-hwutils phase-timer-check
- Build system: fetch.rs improvements, build-iso.sh, run_full.sh
- Kernel source: new ACPI (SLIT, SRAT), cpuidle, cstate, MCS lock modules
83 files changed, +3966/-1248 lines
2026-05-27 06:47:23 +03:00
vasilito
0c8be761eb
Merge master into 0.2.0 (688 commits, theirs pref for conflicts)
2026-05-21 21:37:43 +03:00
vasilito
17791421c4
redbear-info: Add thermal, fan, and C-state health dashboard items
...
Reads from /scheme/acpi/thermal/, /scheme/acpi/fan/, and /scheme/acpi/cstates/
plus /scheme/sys/cstate_policy to populate the --health dashboard with
hardware thermal status, fan activity, and CPU power-management state.
2026-05-20 22:20:47 +03:00
vasilito
ac2f1ccbc2
iommu: Add Intel VT-d daemon foundation (Phase 3.2)
...
- Add intel_vtd.rs module with DMAR parsing, DRHD discovery,
register definitions, and basic unit initialization
- Update iommu daemon discovery to detect both AMD-Vi (IVRS)
and Intel VT-d (DMAR) units
- Update IommuScheme to track both amd_units and intel_units
- Intel VT-d init: version check, capability read, disable
translation, report supported features (QI, IR, EIM)
Full DMA remapping enablement (root table, context entries,
page tables, command buffer) remains as TODO for follow-up.
2026-05-20 21:13:03 +03:00
vasilito
676a4342ce
udev-shim: Only log hotplug events when device count changes
...
Track the last PCI device count and only emit log messages when
devices are added or removed, eliminating redundant 2-second poll
noise.
2026-05-20 18:52:43 +03:00
vasilito
e5b82a644a
coretempd: Add AMD Zen temperature sensor support
...
Detect CPU vendor by probing MSRs (Intel IA32_THERM_STATUS vs AMD
TCTL MSR C0010293). Support both Intel Tjmax-based and AMD direct
temperature reading. Log detected vendor per CPU at startup.
2026-05-20 18:52:01 +03:00
vasilito
0834c21607
udev-shim: Harden rules file write with retry loop
...
Handle BrokenPipe and AlreadyExists races when writing default udev
rules during early boot. Retry up to 3 times with 50ms backoff.
2026-05-20 14:00:49 +03:00
vasilito
6ca3e47383
Add coretempd CPU temperature sensor daemon
...
New local recipe coretempd reads IA32_THERM_STATUS MSR via the
new sys:msr scheme and exposes per-CPU temperatures via scheme:coretemp.
- Reads IA32_THERM_STATUS (0x19C) and IA32_TEMPERATURE_TARGET (0x1A2)
- Calculates Celsius from digital readout relative to TjMax
- Exposes /scheme/coretemp/ directory with per-CPU temperature files
- Added to redbear-mini.toml (inherited by redbear-full)
- Added 15_coretempd.service init file
2026-05-20 13:46:43 +03:00
vasilito
7999a896d0
cpufreqd: Use new sys:msr scheme for P-state control
...
Replace non-existent /dev/cpu/{n}/msr path with /scheme/sys/msr/{cpu}/{msr}
now that the kernel exposes MSR access via the sys scheme.
2026-05-20 13:40:45 +03:00
vasilito
861e6f88d2
driver-manager: fix scheme collision and scheme availability check; redox-driver-sys: CPU affinity logging; redbear-hwutils: timer characterization
2026-05-19 23:50:32 +03:00
vasilito
f6c2eb2a8e
feat: ACPI Wave 1 boot-critical hardening (P19) + robust patch generation
...
- P19-init-startup-hardening: Replace panic-grade expect/unwrap in init
startup paths (getns, register_scheme_to_ns, setrens, filename parsing)
with graceful error handling and logging
- P19-acpid-startup-hardening: Replace panic-grade calls in acpid with
graceful degradation (rxsdt read failure → warn + exit 0, SDT parse →
error + exit 1, I/O privilege → fatal, scheme registration → fatal,
setrens → warn + continue, event loop errors → log + continue)
- P18-9-msi-allocation-resilience: Regenerate with git diff -U0 -w format
for maximum context resilience
- fetch.rs: Change --fuzz=0 to --fuzz=3 for resilient patch application
- AGENTS.md: Document robust patch generation technique as mandatory
- Add P4/P5/P6/P7 patches (estale, dmi, i2c, ps2d hardening)
- Add P21 kernel x2apic SMP fix patch
- Multiple local recipe source improvements (redox-drm, driver-manager,
driver-acpi, thermald)
- Config updates for redbear-mini and redbear-device-services
- Subsystem assessment document
2026-05-18 14:07:42 +03:00
vasilito
cee25393d8
fix: boot process improvements — dependency cycle, INIT_NOTIFY, probing loop, and log spam fixes
...
- Fix P15-8-init-cycle-detection.patch: replace visiting+error with seen+silent-skip
to eliminate 11 false-positive 'dependency cycle detected' errors on shared deps
- Fix P0-daemon-fix-init-notify-unwrap.patch: remove eprintln! for missing
INIT_NOTIFY (expected for oneshot_async services, ~7 daemons affected)
- Fix driver-manager hotplug loop: add PERMANENTLY_SKIPPED static set shared
between hotplug handler and DriverConfig::probe() to stop infinite re-probing
of Fatal/NotSupported/deferred-exhausted device+driver pairs (e.g. ided)
- Fix driver-manager log_timeline: suppress repeated EPIPE/ENOENT errors with
AtomicI32 dedup and AtomicBool one-shot guards for boot timeline JSON
- Add driver-manager SIGTERM handler, ACPI bus registration, --status mode,
driver reap loop, graceful shutdown, and reduced deferred retries (30→3)
2026-05-17 12:34:02 +03:00
vasilito
741f144c79
feat: VirtIO GPU driver, libdrm DRM ioctls, KWin/KF6 build fixes, display stack additions
...
- Add full VirtIO GPU driver with command submission, resource management,
VirtQueue implementation, and transport layer; includes diagnostic probes
for resource_create_2d ERR_INVALID_RESOURCE_ID investigation
- Expand libdrm Redox support with DRM ioctl wrappers (ADDFB, RMFB,
CREATE_DUMB, MAP_DUMB, DESTROY_DUMB, GET_RESOURCES, GET_CONNECTOR,
GET_CRTC, SET_CRTC, MODE_OBJ_GET_PROPERTIES, etc.) and xf86drm_redox.h
- Add redox-drm scheme handlers for VirtIO GPU-specific DRM ioctls
(VIRTGPU_RESOURCE_CREATE, VIRTGPU_MAP, VIRTGPU_WAIT, VIRTGPU_INFO, etc.)
- Add display stack recipes: freetype2, lcms2, libdisplay-info, libepoxy,
libxcvt
- Fix KWin build (recipe.toml expanded, kf6-ksvg added)
- Fix KF6 CMakeLists for cross-compilation (attica, kcmutils, kcolorscheme,
kcompletion, kconfigwidgets, kdeclarative, kiconthemes, kitemmodels,
kitemviews, kjobwidgets, ktextwidgets, kwayland, kxmlgui, kpty, solid)
- Add Qt6 futex support patch
- Add relibc patches: P3 strtold, P3 ld-so search path, P5 DRM ioctl removal
- Add base P4 pcid config scheme patch
- Update driver-manager hotplug/config, PCI config in redox-driver-sys
- Update greeter compositor and KDE session scripts
- Update AGENTS.md with zero-tolerance stubs policy and project knowledge
2026-05-14 10:31:13 +01:00
vasilito
19c65be7b1
feat: VirtIO GPU driver, libdrm DRM ioctls, KWin/KF6 build fixes, display stack additions
...
- Add full VirtIO GPU driver with command submission, resource management,
VirtQueue implementation, and transport layer; includes diagnostic probes
for resource_create_2d ERR_INVALID_RESOURCE_ID investigation
- Expand libdrm Redox support with DRM ioctl wrappers (ADDFB, RMFB,
CREATE_DUMB, MAP_DUMB, DESTROY_DUMB, GET_RESOURCES, GET_CONNECTOR,
GET_CRTC, SET_CRTC, MODE_OBJ_GET_PROPERTIES, etc.) and xf86drm_redox.h
- Add redox-drm scheme handlers for VirtIO GPU-specific DRM ioctls
(VIRTGPU_RESOURCE_CREATE, VIRTGPU_MAP, VIRTGPU_WAIT, VIRTGPU_INFO, etc.)
- Add display stack recipes: freetype2, lcms2, libdisplay-info, libepoxy,
libxcvt
- Fix KWin build (recipe.toml expanded, kf6-ksvg added)
- Fix KF6 CMakeLists for cross-compilation (attica, kcmutils, kcolorscheme,
kcompletion, kconfigwidgets, kdeclarative, kiconthemes, kitemmodels,
kitemviews, kjobwidgets, ktextwidgets, kwayland, kxmlgui, kpty, solid)
- Add Qt6 futex support patch
- Add relibc patches: P3 strtold, P3 ld-so search path, P5 DRM ioctl removal
- Add base P4 pcid config scheme patch
- Update driver-manager hotplug/config, PCI config in redox-driver-sys
- Update greeter compositor and KDE session scripts
- Update AGENTS.md with zero-tolerance stubs policy and project knowledge
2026-05-14 10:31:13 +01:00
vasilito
9b0fb0de0c
fix: update custom recipe implementations
...
Update cpufreqd, driver-params, firmware-loader, seatd, redox-drm,
and redox-driver-sys. Add XHCI controller quirk table. Update
redbear-compositor protocol handlers.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 10:10:25 +01:00
vasilito
4e24760a22
fix: update custom recipe implementations
...
Update cpufreqd, driver-params, firmware-loader, seatd, redox-drm,
and redox-driver-sys. Add XHCI controller quirk table. Update
redbear-compositor protocol handlers.
2026-05-11 10:10:25 +01:00
vasilito
7d96c20b28
feat: add KWin compositor integration with QML-free build
...
Add P0-disable-qml-quick.patch for building KWin without QML/Quick
dependencies. Update greeter scripts to prefer kwin_wayland. Enable
kwin in redbear-full config.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 10:09:58 +01:00
vasilito
b35977b654
feat: add KWin compositor integration with QML-free build
...
Add P0-disable-qml-quick.patch for building KWin without QML/Quick
dependencies. Update greeter scripts to prefer kwin_wayland. Enable
kwin in redbear-full config.
2026-05-11 10:09:58 +01:00
vasilito
65ded583e8
fix: expose driver-manager boot observability
2026-05-09 01:33:34 +01:00
vasilito
4672ddd20c
fix: expose driver-manager boot observability
2026-05-09 01:33:34 +01:00
vasilito
c11c7a04df
fix: harden driver-manager lifecycle
2026-05-09 01:32:57 +01:00
vasilito
84416f679e
fix: harden driver-manager lifecycle
2026-05-09 01:32:57 +01:00
vasilito
3544d8c5c9
fix: cub -i interactive flag, -S auto-build on Linux
2026-05-08 12:09:51 +01:00
vasilito
987350d9f5
fix: cub -i interactive flag, -S auto-build on Linux
2026-05-08 12:09:51 +01:00
vasilito
261a6c26b3
fix: cub production recipe, serde_derive import, minor cleanup
...
- recipe: use cargo install for proper binary installation
- aur.rs: serde_derive for explicit derive path
- main.rs: final noconfirm/force flow cleanup
2026-05-08 11:58:36 +01:00
vasilito
cd6d23b3b4
fix: cub production recipe, serde_derive import, minor cleanup
...
- recipe: use cargo install for proper binary installation
- aur.rs: serde_derive for explicit derive path
- main.rs: final noconfirm/force flow cleanup
2026-05-08 11:58:36 +01:00
vasilito
5c90afdad8
feat: -i interactive ratatui TUI for redbear-info and redbear-netctl
...
- redbear-info: -i launches ratatui dashboard (System/Hardware/Network/Integrations/Health tabs)
- redbear-netctl: -i wires existing netctl-console ratatui TUI
- Same -i switch convention as cub
- Feature-gated behind 'tui' feature for both apps
2026-05-08 11:56:55 +01:00
vasilito
12d773a380
feat: -i interactive ratatui TUI for redbear-info and redbear-netctl
...
- redbear-info: -i launches ratatui dashboard (System/Hardware/Network/Integrations/Health tabs)
- redbear-netctl: -i wires existing netctl-console ratatui TUI
- Same -i switch convention as cub
- Feature-gated behind 'tui' feature for both apps
2026-05-08 11:56:55 +01:00
vasilito
cb4f56b633
fix: TUI spawns current_exe() instead of hardcoded 'cub' in PATH
2026-05-08 11:48:45 +01:00
vasilito
01d3cec897
fix: TUI spawns current_exe() instead of hardcoded 'cub' in PATH
2026-05-08 11:48:45 +01:00
vasilito
cd07d32597
fix: PKGBUILD shell variable resolver, TUI auto-fetch before build, AurClient Result fix
...
- resolve_shell_vars(): handles ${var}, $var, ${var%suffix} patterns
- nushell-git ($_pkgname-git) now resolves correctly to nushell-git
- TUI start_build_selected() auto-fetches AUR PKGBUILD if not cached
- Fix AurClient::new() Result handling in app.rs
- 70 tests pass (1 new: resolves_shell_variables)
2026-05-08 11:40:36 +01:00
vasilito
7ec448504f
fix: PKGBUILD shell variable resolver, TUI auto-fetch before build, AurClient Result fix
...
- resolve_shell_vars(): handles ${var}, $var, ${var%suffix} patterns
- nushell-git ($_pkgname-git) now resolves correctly to nushell-git
- TUI start_build_selected() auto-fetches AUR PKGBUILD if not cached
- Fix AurClient::new() Result handling in app.rs
- 70 tests pass (1 new: resolves_shell_variables)
2026-05-08 11:40:36 +01:00
vasilito
2d9ccec10c
fix: TUI always launches CubApp (infallible init), depresolve module, cub binary unified
...
- lib.rs: removed fallback help screen, always launches ratatui CubApp
- app.rs: CubApp::new() infallible — fallback to /tmp/.cub if HOME missing
- app.rs: AUR client graceful fallback (None on error or AUR_OFFLINE)
- storage.rs: from_root() made pub for fallback store construction
- depresolve.rs: yay-style topological sort + provider + circular detection
- cubl→cub: unified binary name, OS detection via cfg!(target_os)
- 69 tests pass, 0 failures, clean build
2026-05-08 11:23:44 +01:00
vasilito
ee66b92218
fix: TUI always launches CubApp (infallible init), depresolve module, cub binary unified
...
- lib.rs: removed fallback help screen, always launches ratatui CubApp
- app.rs: CubApp::new() infallible — fallback to /tmp/.cub if HOME missing
- app.rs: AUR client graceful fallback (None on error or AUR_OFFLINE)
- storage.rs: from_root() made pub for fallback store construction
- depresolve.rs: yay-style topological sort + provider + circular detection
- cubl→cub: unified binary name, OS detection via cfg!(target_os)
- 69 tests pass, 0 failures, clean build
2026-05-08 11:23:44 +01:00
vasilito
3622c7b8ec
feat: yay-style dependency resolution (topological sort, providers, circular detection)
...
- depresolve.rs: resolve_build_order() with iterative topological sort
- Provider resolution for virtual packages
- Circular dependency detection and component extraction
- resolve_deps_recursive() for AUR→Redox recursive resolution
- 4 tests: linear, circular, providers, make deps
2026-05-08 11:17:07 +01:00
vasilito
8b5d9209c0
feat: yay-style dependency resolution (topological sort, providers, circular detection)
...
- depresolve.rs: resolve_build_order() with iterative topological sort
- Provider resolution for virtual packages
- Circular dependency detection and component extraction
- resolve_deps_recursive() for AUR→Redox recursive resolution
- 4 tests: linear, circular, providers, make deps
2026-05-08 11:17:07 +01:00