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
vasilito
550551d8bc
fix: migrate all local recipe Cargo.toml deps from local/sources/ to recipes/core/base/ symlinks
...
Systemic fix: all local recipes (~150 references across 40+ Cargo.toml files)
now resolve libredox, redox_syscall, and redox-scheme through
recipes/core/base/ symlinks instead of local/sources/ paths.
Eliminates lockfile collision between Cargo's resolution of the same
package through different path strings (local/sources/ vs recipes/core/base/).
This is required because the base recipe's workspace Cargo.toml resolves
these deps through recipes/core/base/ (via symlink chain from the
recipe copy location), and Cargo treats different path strings to the
same directory as different packages.
2026-07-09 15:31:01 +03:00
vasilito
aa2185152a
docs: comprehensive driver infrastructure assessment and cleanup
...
IMPLEMENTATION-MASTER-PLAN.md:
- Updated Phase 2 Network Drivers to COMPLETE status
- Added NETWORKING-IMPROVEMENT-PLAN.md to authority table
- Comprehensive driver inventory (5 Ethernet, 7 storage, 4 USB, 4 GPU, etc.)
- Linux 7.1 cross-references for every driver
- Network stack completion summary (9,212 LoC, all protocols)
- Updated e1000d/rtl8168d file statuses (was 'Truncated', now 'Complete')
- Remaining smoltcp-dependent gaps documented
Archived stale docs:
- C7-STATUS.md → archived/ (KF6/Plasma migration, completed)
- BUILD-TOOLS-PORTING-PLAN.md → archived/ (superseded)
- 0.2.5-GRAPHICS-FREEZE-PLAN.md → archived/ (version-specific)
2026-07-07 23:46:41 +03:00
vasilito
46cd3704b9
USB: fix scheme API — match actual redox-scheme SchemeSync trait
...
Cross-referenced with wifictl's working scheme registration pattern.
scheme.rs fixes (acmd + ftdi):
- openat: 5→6 params (add &mut self, fcntl_flags: u32)
- read: 4→6 params (add offset: u64, fcntl_flags: u32)
- write: 4→6 params (add offset: u64, fcntl_flags: u32)
- Removed close() method (not in SchemeSync trait)
- OpenResult.flags: usize→NewFdFlags (via from_bits_truncate)
- Removed unused imports
main.rs fixes (acmd):
- Replaced register_async_scheme + handle_scheme_mut with
wifictl pattern: setrens(0,0) + request.handle_sync() +
socket.write_response() + RequestKind::Call match
- Socket::next_request returns Option<Request>, handle
Ok(None)/Err gracefully instead of expect()
Verified: cargo check --offline passes on host.
2026-07-07 21:12:45 +03:00
vasilito
dac00073ba
USB: canonical scheme pattern — all 4 drivers aligned
...
ftdi/usbaudiod scheme.rs updated to match acmd/ecmd pattern:
Explicit match arms in read/write (not map/map_err chains)
Consistent openat with root dir + device file routing
Saturating close count
AudioScheme retains capture/playback path routing
All 4 scheme modules now identical in structure:
acmd → /scheme/ttys/usbACM_<N> (Mutex<bulk_in>, Mutex<bulk_out>)
ftdi → /scheme/ttys/usbFTDI_<N> (same)
ecmd → /scheme/net/usbECM_<N> (same)
audio → /scheme/audio/usbAudio_<N> (Mutex<isoch_in>, Mutex<Option<isoch_out>>)
2026-07-07 20:01:37 +03:00
vasilito
e28d575668
USB: add redbear-ftdi — FTDI FT232 USB-serial driver
...
Cross-referenced with Linux 7.1 drivers/usb/serial/ftdi_sio.c (2,876 lines).
Implements the core FTDI protocol:
- Reset (SIO_RESET_SIO + purge RX/TX buffers)
- Baud rate setting (48MHz base clock, 16-bit divisor encoding)
- Flow control (RTS/CTS, DTR/DSR)
- Modem control (DTR/RTS line state)
- Bidirectional bulk I/O: bulk IN → stdout, stdin → bulk OUT (spawned thread)
Recipe pattern matches redbear-acmd: path dep on local forks, XhciClientHandle interface,
common::setup_logging, cargo template.
Wired into redbear-mini.toml (inherited by redbear-full) with probe marker service.
2026-07-07 13:06:20 +03:00