vasilito
0ec7bd46bb
Phase 3: GPU 3D drivers + Phase 1-2 stability fixes — full rollup
...
ROLLUP of all Phase 1-3 work on branch 0.3.0, targeting a production-ready
console + full graphical desktop under Intel and Virgl/VirtIO-GPU.
=== Phase 1 — Stability ===
- fbcond: Enter key handler (scancode 0x1C→\n), display map buffering,
control-char filter in all 7 keymaps, write_event assert
- build-redbear.sh: auto-rebuild-prefix when fork timestamps are newer
than prefix/x86_64-unknown-redox/sysroot (was warning-only). Added
configurable REDBEAR_SKIP_PREFIX_REBUILD guard.
- build-redbear.sh: set explicit keymap '-K us' in console activation
- config/redbear-device-services.toml: remove spurious init.d service
files for redbear-acmd/ecmd/usbaudiod. These USB device daemons are
spawned dynamically by pcid-spawner, not as boot-time init services.
Starting them without args panicked the boot flow.
- relibc: grantpt/unlockpt/ptsname (then deduplicated against stdlib)
- userutils: cherry-pick upstream getty commit 2834434 (standard C
ptsname/grantpt/unlockpt)
- base fork: Russian (ЙЦУКЕН) keymap + inputd control-char filter
(K_ESC/K_BKSP/K_ENTER → \0, commit 73e44d81 in submodule/base)
=== Phase 2 — Login & Console ===
- login.rs: restored to 0.2.5-known-good liner-based prompt
- redbear-upower: removed tokio full/signal features → protection fault fix
- redbear-power: excluded temporarily (being fixed in other session)
- tlc version: updated to 0.3.0
=== Phase 3 — GPU/3D Drivers (commit 0898332f7a ) ===
Intel i915: FULLY implemented — real ring buffer + MMIO command
submission via GEM DMA → GGTT → i915 render ring, with hardware
head-pointer polling (2M iterations, 50µs backoff). Zero stubs.
VirtIO GPU/Virgl (VirtioTransport): 11 VIRTGPU ioctls (GETPARAM,
GET_CAPS, RESOURCE_CREATE, RESOURCE_INFO, CONTEXT_INIT, EXECBUFFER,
WAIT, TRANSFER_TO_HOST, TRANSFER_FROM_HOST, MAP, CREATE_BLOB) ported
from Linux 7.1 virtgpu_ioctl.c and virtgpu_vq.c.
- driver.rs: 8 virgl_* trait methods (default Unsupported)
- scheme.rs: 11 ioctl constants + 8 wire structures + dispatch
- virtio/transport.rs: PCI capability discovery, feature negotiation,
control+cursor virtqueue setup, vring descriptor building
- virtio/mod.rs: real implementations for all 8 virgl_* methods
- intel/mod.rs: explicit virgl Unsupported stubs
Other changes from active sessions: Cargo.toml version bumps, linux-kpi
headers, libpciaccess recipe, mesa/recipe.toml, kf6 patches, expat,
driver-manager, redbear-sessiond, redbear-compositor, cub, tlc, and
many other local recipes.
2026-07-09 20:29:28 +03:00
Red Bear Build System
7bbf56217e
graphics(0.2.5): bump Wayland/DRM/Input/expat/seatd to upstream latest stable
...
Bump the lower-delta graphics-stack lane to real upstream latest stable
on 2026-07-02. Per AGENTS.md fork-adaptation policy, the local patches
in local/patches/{libdrm,libwayland,libevdev,libinput}/ must be re-applied
against the new source trees before the next build; rebase is open work.
Versions resolved against authoritative upstream registries (real latest stable):
libwayland 1.24.0 -> 1.25.0 (gitlab.freedesktop.org/wayland/wayland)
wayland-protocols 1.38 -> 1.49 (gitlab.freedesktop.org/wayland/wayland-protocols)
libdrm 2.4.125 -> 2.4.134 (gitlab.freedesktop.org/mesa/libdrm)
libxkbcommon 1.7.0 -> 1.9.2 (github.com/xkbcommon/libxkbcommon mirror)
libevdev 1.13.2 -> 1.13.6 (freedesktop.org/software/libevdev)
libinput 1.30.2 -> 1.31.3 (gitlab.freedesktop.org/libinput/libinput)
seatd-redox 0.9.1 -> 0.9.3 (git.sr.ht/~kennylevinsen/seatd)
expat 2.5.0 -> 2.8.2 (github.com/libexpat/libexpat)
BLAKE3 hashes verified against the actual downloaded upstream tarballs.
Not changed (already at or near upstream latest):
- dbus 1.16.2 (== upstream latest)
- xkeyboard-config (no standalone recipe; consumed via libxkbcommon)
- linux-input-headers (Red Bear original, not upstream)
Patches NOT yet rebased: see local/patches/{libdrm,libwayland,libevdev,
libinput}/. The dependency surfaces they patch (libdrm 2.4.134 has new
DRM modifier code, libwayland 1.25.0 has new server-decoder helpers,
libinput 1.31 has new touchpad gesture tables) will need review before
re-fetch.
2026-07-02 14:34:50 +03:00
vasilito
f65bc145a1
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