vasilito
a39f741d23
drm: VIRGL quality fixes — GETPARAM expansion, set_property clarity, cursor clip
...
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).
2026-06-02 17:59:58 +03:00
vasilito
bccc2f7dd1
console: fix login prompt by avoiding oneshot scheduler deadlock
...
29_activate_console: changed from oneshot back to oneshot_async.
The oneshot type calls child.wait() which blocks the entire init
scheduler. If inputd doesn't drain its control channel promptly,
ControlHandle::write() hangs forever, freezing boot.
30_console: added 'sleep 0.2' before 'exec getty 2' to give
inputd time to process the VT activation before getty opens
/scheme/fbcon/2. Eliminates the race condition without
blocking the init scheduler.
2026-06-02 10:21:05 +03:00
vasilito
556c9ac93d
redbear-mini: add sed, nano to text-mode ISO; re-enable mc
...
mc builds fine after gnulib cross-compile fixes. sed and nano cook
successfully. file and less blocked pending further debugging.
2026-06-02 09:58:55 +03:00
vasilito
d5636ae1de
intel: P0/P1 — LRC context state, MI commands, DDI sequences, pipe scaler
...
context.rs: proper LRC image population
Removed context restore inhibit — GPU now saves/restores state on preempt
Added PDP register initialization in LRC image (4 PDP entries)
Added FAULT_AND_STREAM_CTL, BB_STATE initialization
set_pdp_registers() for per-context PPGTT configuration
ring.rs: MI command emission helpers
emit_bb_start/emit_bb_end: batch buffer chaining
emit_load_register_imm: LRI for workaround application
emit_store_data_imm: store-to-memory for fence signaling
emit_arb_check: preemption point insertion
emit_semaphore_wait: inter-engine synchronization
emit_user_interrupt: explicit interrupt generation
display.rs: DDI pre-enable/post-disable sequences
ddi_pre_enable: DP link retrain + DDI_BUF_CTL enable with pipe routing
ddi_post_disable: DDI_BUF_CTL, PIPECONF, DSPCNTR disable + pipe update
Pipe scaler PS_CTRL/PS_WIN_POS/PS_WIN_SIZE programming in set_mode
regs.rs + regs_gen9/gen12/xe2: scaler register trait methods
ps_ctrl, ps_win_pos, ps_win_size at 0x68180/0x68170/0x68174 per pipe
2026-06-01 23:58:13 +03:00
vasilito
7cfef2633e
fix: m4 recipe - fix_types.h for cross-compiler header ordering
...
The cross-compiler's GCC built-in stddef.h is blocked by relibc's
_STDDEF_H guard, causing size_t/off_t/ptrdiff_t to be undefined.
Add fix_types.h with guarded typedefs and force-include via CPPFLAGS.
Also: comprehensive upstream relibc comparison for systematic import.
Remaining: redoxer env overrides CC, injecting broken stdint typedefs
from its toolchain. This needs a redoxer-level fix to clean the
injected flags before passing to build commands.
2026-06-01 18:53:05 +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
3431bbfeb2
Fix duplicate atomic_t typedef conflicting with types.h
2026-05-31 05:50:29 +03:00
vasilito
daf131d435
P7 login diagnostics, P11 init noise reduction, config layering fix
2026-05-29 19:13:16 +03:00
vasilito
bb3ae6e63f
feat: Phase 1 - Plan 9 namespace privilege drop + branding
...
- login.rs: drop privileges via setresugid after authentication
- login.rs: add namespace isolation to password auth path (was missing)
- login.rs: add drm, input schemes to DEFAULT_SCHEMES
- sudo service: rename 00_sudo -> 12_sudo, type daemon (no boot block)
- Branded login screen with figlet RedBear OS v0.2.2 'Liliya'
- Root user kept but not advertised on login screen
- P6-login-privilege-drop.patch generated and wired
Implements Phase 1 of Plan 9 namespace privilege model:
login creates restricted namespace (mkns/setns) then drops
uid/gid to authenticated user before spawning shell.
2026-05-29 09:54:28 +03:00
vasilito
a0244075e7
build system audit: implement Phase 1-3 fixes comprehensively
...
Phase 1 (Critical):
- Fix broken config includes: redbear-minimal -> redbear-mini in wifi/bt experimental configs
- Fix 05_boot-essential.target dependency: 00_base -> 04_drivers for correct boot ordering
- Fix IOMMU service dependency: 00_base -> 05_boot-essential
- Fix firmware-loader dependency: 00_base -> 05_boot-essential
- Fix messagebus shell: /usr/bin/zsh -> /usr/bin/false (security)
- Add offline gate to fetch-firmware.sh (REPO_OFFLINE=1 blocks network access)
- Add --upstream gate to fetch-all-sources.sh (network access requires explicit opt-in)
- Gate U-Boot wget calls in mk/qemu.mk with REPO_OFFLINE check
- Fix patch-inclusion-gate.sh: rewrite from Python deps to pure shell implementation
- Fix build-redbear.sh: remove direct patch application, let repo fetch handle it atomically
Phase 2 (High):
- Increase redbear-full filesystem_size: 4096 -> 8192 MiB for KDE desktop
- Deprecate redbear-greeter-services.toml (orphaned, not included by any config)
- Add cascade rebuild target to Makefile (make cascade.<package>)
- Gate cargo-update.sh with REDBEAR_ALLOW_UPSTREAM
- Add deprecation notice to apply-patches.sh
- Make protected recipe list data-driven via config/protected-recipes.toml
- Replace 127-entry hardcoded Rust matches! with TOML config file reader
Phase 3 (Medium):
- Fix 5 phantom doc references in local/AGENTS.md (retired/removed docs)
- Fix stale config names: redbear-minimal -> redbear-mini across scripts
- Fix duplicate references in docs/README.md
- Fix run_full.sh and run_mini.sh: hardcoded paths -> relative paths + error handling
2026-05-28 17:24:50 +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
33ab2bbd73
fix: wire driver-manager service ordering
2026-05-09 01:32:44 +01:00
vasilito
153cca6132
fix: noconfirm auto-selects first AUR match
2026-05-08 11:01:02 +01:00
vasilito
7706617e7f
cub: full AUR package manager + Phase 1-5 native build tools
...
cub redesign (local/recipes/system/cub/):
- AUR RPC v5 client (serde_json) with search/info
- ~/.cub/ user-local recipe/source/repo storage
- Enhanced PKGBUILD parser: optdepends, .SRCINFO, split packages, 19 linuxism patterns
- Recipe generation: host: prefix on dev-deps, shallow_clone, cargopath, installs, optional-packages
- Dependency resolver: scans build errors for missing commands/headers/libs/pkgconfig, maps to packages
- Dependency installation: checks installed packages, fetches AUR deps, interactive prompt
- ~110 Arc→Redox dependency mappings
- ratatui TUI: search, info, install, build, query views
- 14 Arch-style CLI switches (-S/-Si/-Syu/-G/-R/-Q/-Qi/-Ql)
- 65 tests, 0 failures, clean build
Phase 1-5 native build tools (local/recipes/dev/):
- P1 Substrate: tar, m4, diffutils (gnulib bypass), mkfifo kernel patch (1085 lines)
- P2 Build Systems: bison, flex, meson (standalone wrapper), ninja-build, libtool
- P3 Native GCC: gcc-native, binutils-native (cross-compiled for redox host)
- P4 Native LLVM: llvm-native (clang + lld from monorepo)
- P5 Native Rust: rust-native (rustc + cargo)
- Groups: build-essential-native, dev-essential expanded
Config:
- redbear-mini: +7 tools (diffutils, tar, bison, flex, meson, ninja, m4)
- redbear-full: +4 native tools (gcc, binutils, llvm, rust)
- All recipes moved to local/ with symlinks for cookbook discovery (Red Bear policy)
Docs:
- BUILD-TOOLS-PORTING-PLAN.md: phased porting roadmap
- CUB-WORKFLOW-ASSESSMENT.md: gap analysis and integration assessment
2026-05-08 00:13:31 +01:00
vasilito
be17bbc9bc
milestone1
2026-05-07 04:35:57 +01:00
vasilito
ff5a132a9d
fix: comprehensive boot hardening — crashes, warnings, sensors, bare-metal PS/2
...
- firmware-loader: handle missing INIT_NOTIFY gracefully (Option<RawFd>)
- driver-params: suppress ENODEV (19) on missing driver-manager scheme
- compositor: add wl_seat.name + pointer capabilities for Qt6 compat
- greeter: use redox QPA (libqredox.so) instead of broken Qt6 Wayland
- greeter: reduce DRM wait 10s→2s, kded6 offscreen QPA to avoid crash
- thermald: add CPU die temperature via MSR IA32_THERM_STATUS (Linux coretemp)
- pcid: diagnostic MCFG warning with Q35 guidance, address validation
- dhcpd: auto-interface detection (P0-dhcpd-auto-iface.patch wired)
- procmgr: SIGCHLD EPERM→debug (kernel limitation, not a bug)
- ps2d LED: warn→debug on modern hw without real PS/2 controller
- ps2d mouse: 10×1s→3×250ms retry, fast-fail on unknown response
- i2c RON: handle empty response from i2cd when no adapters present
- base recipe: wire 6 new/improved patches
- config: remove INIT_SKIP, enable all 14 previously-suppressed daemons
2026-05-06 11:16:18 +01:00
vasilito
f31522130f
fix: comprehensive boot warnings and exceptions — fixable silenced, unfixable diagnosed
...
Build system (5 gaps hardened):
- COOKBOOK_OFFLINE defaults to true (fork-mode)
- normalize_patch handles diff -ruN format
- New 'repo validate-patches' command (25/25 relibc patches)
- 14 patched Qt/Wayland/display recipes added to protected list
- relibc archive regenerated with current patch chain
Boot fixes (fixable):
- Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset)
- D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped)
- redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped)
- daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch)
- udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async)
- relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs
- greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait)
- greeter-ui: built and linked (header guard unification, sem_compat stubs removed)
- mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps
- greeter config: removed stale keymapd dependency from display/greeter services
- prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified
Unfixable (diagnosed, upstream):
- i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort
- kded6/greeter-ui: page fault 0x8 — Qt library null deref
- Thread panics fd != -1 — Rust std library on Redox
- DHCP timeout / eth0 MAC — QEMU user-mode networking
- hwrngd/thermald — no hardware RNG/thermal in VM
- live preload allocation — BIOS memory fragmentation, continues on demand
2026-05-05 20:20:37 +01:00
vasilito
2e764746e7
feat: build system hardening — collision detection, validation gates, init path enforcement
...
5-phase hardening to prevent silent file-layer collisions (the D-Bus
regression class):
Phase 1: lint-config-paths.sh + make lint-config in depends.mk
Phase 2: CollisionTracker in installer (content-hash comparison)
Phase 3: installs manifests in recipe.toml + validate-file-ownership.sh
Phase 4: validate-init-services.sh + make validate in disk.mk
Phase 5: documentation (AGENTS.md, BUILD-SYSTEM-HARDENING-PLAN.md)
Both redbear-mini and redbear-full build and validate clean.
66 declared install paths in base, zero conflicts.
2026-05-03 22:25:22 +01:00
vasilito
5862255060
feat: zsh as default shell, pkgar staging fix
...
Shell: Changed default shell from ion to zsh for all user accounts
in base.toml, redbear-mini.toml, redbear-full.toml, and greeter config.
zsh 5.9 is already ported and builds (ZSH-PORTING-PLAN — fully implemented).
ion is kept as fallback/alternative.
Cookbook: pkgar staging fallback — when a dependency's target pkgar
doesn't exist, fall back to repo/<target>/<pkg>.pkgar. This fixes the
kf6-kitemviews build failure where libwayland's pkgar was missing from
the target directory.
2026-05-03 10:55:46 +01:00
vasilito
d1fb5744cb
chore: patch reorganization — absorbed + .config 0.1.1
2026-05-02 01:43:47 +01:00
vasilito
1e71b37bdb
chore: close session — commit all remaining pre-existing state
...
Finalize all non-artifact changes accumulated from other sessions:
- config updates, recipe changes, source edits, patches
- pkgar/cache artifacts intentionally excluded (build outputs)
This is the maximum achievable scope for this session.
Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds,
hardware GPU validation — all require build system + physical GPU.
2026-05-01 03:15:20 +01:00
vasilito
4ee7fdeecb
fix: KF6 config, kwin stub, docs, greeter, I2C/GPIO drivers, bootstrap
...
- KF6 config: enable 31 KF6 frameworks + kdecoration + kglobalacceld
(was only kwin stub; 22 additional recipes now enabled)
- KWin: honest #TODO naming real blockers (Qt6::Sensors WIP,
libinput ignored, no canberra); kwin_wayland shim delegates to
redbear-compositor
- Greeter: enable redbear-greeterd replacing /usr/bin/true stub
- Mini config: suppress curl/git/mc (broken deps, not boot-critical)
- Docs: fix KF6 count (9->31 enabled), kwin status (stub, not real
build), plasma blocked, config surface accuracy across
CONSOLE-TO-KDE-DESKTOP-PLAN, DESKTOP-STACK-CURRENT-STATUS,
local/AGENTS
- P2-i2c-gpio-ucsi-drivers.patch: 10 I2C/GPIO/UCSI daemon sources
(gpiod, i2cd, dw-acpi-i2cd, intel-lpss-i2cd, i2c-gpio-expanderd,
intel-gpiod, i2c-hidd, ucsid, i2c-interface, acpi-resource);
amd-mp2-i2cd + intel-thc-hidd excluded (PCI API changed)
- P0-bootstrap-workspace-fix.patch: empty [workspace] in bootstrap
Cargo.toml prevents auto-detection of parent workspace (fixes
base-initfs from-scratch build)
- QEMU boot verified: kernel -> PCI -> NVMe -> ACPI -> display ->
networking -> services -> RB_SERIAL_PROBE_OK
2026-04-30 00:01:49 +01:00
vasilito
70a84cefee
Add kwin full source tree, greeter login, zsh, pcid service, and build system improvements
2026-04-26 22:31:07 +01:00
vasilito
ab525d4b5d
Remove unnecessary ion -c wrappers from service configs
2026-04-25 17:38:28 +01:00
vasilito
4fe9460a33
Red Bear OS 0.2.0 Liliya branding with updated banner and MOTD
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-25 14:50:29 +01:00
vasilito
dc69317ddf
D-Bus Phase 3/4: upgrade sessiond, services, add StatusNotifierWatcher, consolidate configs
...
- redbear-sessiond: add Manager.Inhibit (pipe FD), CanPowerOff/CanReboot/
CanSuspend/CanHibernate/CanHybridSleep/CanSleep (return na), PowerOff/
Reboot/Suspend stubs, GetSessionByPID, ListUsers, ListSeats,
ListInhibitors, ActivateSession/LockSession/UnlockSession/TerminateSession
- redbear-sessiond: add Session SetIdleHint, SetLockedHint, SetType,
Terminate methods; wire PauseDevice/ResumeDevice/Lock/Unlock signal
emission via SignalEmitter injection; add dynamic device enumeration
scanning /scheme/drm/card* and /dev/input/event* at startup
- redbear-sessiond: replace infinite pending() with stoppable shutdown
via tokio watch channel + control socket shutdown command
- redbear-upower: add Changed signal emission with 30s periodic polling
and power state snapshot comparison
- redbear-notifications: add ActionInvoked signal, expand capabilities
to body + body-markup + actions
- redbear-polkit, redbear-udisks: replace pending() with stoppable
shutdown via signal handling + watch channel
- Add redbear-statusnotifierwatcher: new session bus service implementing
org.freedesktop.StatusNotifierWatcher for KDE system tray
- Add D-Bus activation file for StatusNotifierWatcher
- KWin session.cpp: try LogindSession before NoopSession fallback
- Consolidate config profiles: remove obsolete redbear-desktop, redbear-kde,
redbear-live-*, redbear-minimal-*, redbear-wayland configs; simplify
to three supported targets (redbear-full, redbear-mini, redbear-grub)
- Update DBUS-INTEGRATION-PLAN.md and DESKTOP-STACK-CURRENT-STATUS.md
with Phase 3/4 fragility assessment, KWin readiness matrix, and
completeness gap analysis
2026-04-25 12:01:25 +01:00