0ec7bd46bb
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 commit2834434(standard C ptsname/grantpt/unlockpt) - base fork: Russian (ЙЦУКЕН) keymap + inputd control-char filter (K_ESC/K_BKSP/K_ENTER → \0, commit73e44d81in 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 (commit0898332f7a) === 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.
61 lines
2.0 KiB
TOML
61 lines
2.0 KiB
TOML
# libudev — Red Bear real implementation backed by the scheme:udev producer
|
|
# (driven by udev-shim). Provides the libudev.so / UDev::UDev surface that KWin
|
|
# links against for tablet/input device enumeration. Hotplug event delivery is
|
|
# bounded by the current scheme:udev protocol (no kernel netlink link on Redox).
|
|
[source]
|
|
path = "source"
|
|
|
|
[build]
|
|
template = "custom"
|
|
script = """
|
|
DYNAMIC_INIT
|
|
|
|
mkdir -p "${COOKBOOK_STAGE}/usr/include"
|
|
mkdir -p "${COOKBOOK_STAGE}/usr/lib/cmake/UDev"
|
|
mkdir -p "${COOKBOOK_STAGE}/usr/lib/pkgconfig"
|
|
|
|
cp "${COOKBOOK_SOURCE}/include/libudev.h" "${COOKBOOK_STAGE}/usr/include/libudev.h"
|
|
|
|
x86_64-unknown-redox-gcc \
|
|
-shared \
|
|
-fPIC \
|
|
-std=c11 \
|
|
-Wall \
|
|
-Wextra \
|
|
-Wl,-soname,libudev.so \
|
|
-I"${COOKBOOK_SOURCE}/include" \
|
|
-o "${COOKBOOK_STAGE}/usr/lib/libudev.so" \
|
|
"${COOKBOOK_SOURCE}/libudev.c"
|
|
|
|
cat > "${COOKBOOK_STAGE}/usr/lib/cmake/UDev/UDevConfig.cmake" << 'EOF'
|
|
set(UDev_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../include")
|
|
set(UDev_LIBRARIES "${CMAKE_CURRENT_LIST_DIR}/../../../lib/libudev.so")
|
|
set(UDev_VERSION "0.3.0")
|
|
if(NOT TARGET UDev::UDev)
|
|
add_library(UDev::UDev SHARED IMPORTED)
|
|
set_target_properties(UDev::UDev PROPERTIES
|
|
IMPORTED_LOCATION "${UDev_LIBRARIES}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${UDev_INCLUDE_DIRS}"
|
|
)
|
|
endif()
|
|
set(UDev_FOUND TRUE)
|
|
EOF
|
|
|
|
cat > "${COOKBOOK_STAGE}/usr/lib/pkgconfig/libudev.pc" << 'EOF'
|
|
prefix=/usr
|
|
exec_prefix=${prefix}
|
|
libdir=${exec_prefix}/lib
|
|
includedir=${prefix}/include
|
|
|
|
Name: libudev
|
|
Description: Real scheme:udev-backed libudev provider for Red Bear
|
|
Version: 0.3.0
|
|
Libs: -L${libdir} -ludev
|
|
Cflags: -I${includedir}
|
|
EOF
|
|
"""
|
|
|
|
[package]
|
|
version = "0.3.0"
|
|
description = "libudev — real scheme:udev-backed libudev.so for Red Bear. Full enumerate / device / monitor / list-entry API in 1314 lines of C backed by /scheme/udev/devices plus udev-shim. Provides UDev::UDev CMake target, libudev.pc, and libudev.h for KWin tablet/input discovery. Hotplug event delivery remains bounded by scheme:udev semantics."
|