XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8

双启动、RTX 5090 诊断与原生 USB 输入

实验标签:0.3.0-dev.4-gpu-usb.2,2026-10-15。仍使用自研 C# 独立内核、官方 Microsoft .NET 10 NativeAOT,实际一个 BSP 执行,软件渲染,RAM 会话。关机不保存文件和设置。

RTX 5090 的只读 PCI/BAR、ACPI/MCFG、UEFI 资源交接和 GB202 FSP 状态诊断已合入 Console/Desktop。发现 10DE:2B85 时,Desktop 自动打开 X:\System\Diagnostics\Gpu.txt;Console 显示同一诊断并提供该 RAM 文件。FSP 状态不能表示 GSP/RM、计算通道或 CUDA 已初始化。XFESystem 内 CUDA 和 GPU 渲染尚未实现。 先前 Windows SM120 参考程序结果仍只属于 Windows 宿主。

当前键鼠失效的代码缺口是独立内核仅有 PS/2 驱动。新增的 UsbXhci.cs 在原生调度工作线程中接管 xHCI,处理固件所有权、控制器复位、端口供电、DMA 命令/事件/传输环、设备配置、USB 集线器与 HID 端点。UI 和中断处理程序不执行 USB 枚举等待。UsbHid.cs 将标准键盘、相对鼠标和报告描述符转换为现有输入 ABI,保留 Ctrl/Alt/Win、滚轮及窗口快捷键分派。拔出设备会取消旧输入状态,重新插入会重新枚举。PS/2 继续作为独立后端。驱动不发出 USB 存储读写命令。

实现参考 Intel xHCI 规范 和 USB-IF HID 1.11,没有移用旧 Cosmos 驱动。枚举和等待均有边界:最多 8 个控制器、每个 32 个 slot、共 96 个设备/端点、5 层集线器、每个集线器 15 个下游口、4 KiB HID 描述符。失效控制器仍可能拥有的 DMA 页在 RAM 会话中隔离,避免过早复用。

最终规范复核修订了三处实体兼容细节:用 Configure Endpoint 初始化集线器 Hub/TT 上下文;单个 Data Stage TRB 的 CH=0;先读取设备描述符前 8 字节并更新 EP0 包长,再读取完整描述符。严格回读检查曾暴露 QEMU 11.1 的 configure-slot 实现 不复制 Hub/TT 字段。该失败保留;最终仅对精确虚拟设备 1b36:000d 明确记录 QEMU_NOT_MODELED 并检查真实 Slot Configured 状态,实体控制器必须回读 Hub/端口数/TTT 匹配。模拟器输入通过不等于实体 TT 已通过。

实际验收

范围 结果
宿主 16 组、1451 项通过,包含 19 项新增 HID 解析检查
独立 Console / Desktop 同一最终源码分别通过应用与启动动画验收
同一 256 MiB 双启动镜像 两个实际菜单入口通过;默认 10 秒进入 Desktop
USB-only Desktop i8042 关闭,xHCI + USB 集线器 + 键鼠,实际创建/保存/重开文件、窗口操作、JS 页面和十条终端命令通过
USB-only Console 同样关闭 PS/2,实际文件命令、历史、光标编辑、ConsoleIL 通过
USB 键盘拔插 两版本均实际移除/重新添加 USB 键盘,重新输入并呈现 echo usb-replug 的独立输出
上层功能 Bing 原生 TLS、Monaco 实际编辑、Markdown 八项流程、经典终端通过
GPU 前提 无 NVIDIA 的 QEMU 正确拒绝 GPU/CUDA;只读发现检查、设备映射 118 断言、固件交接 157 断言通过
无串口 同一 Desktop 内核实际呈现应用界面
发行包 两个 ZIP 完整回读、每个解压文件哈希、重定位和 Windows PowerShell 5.1 启动计划通过

启动动画与 Monaco 优化源码保持最新双版本基线字节;本轮未作原生性能对比,不宣称一秒完整就绪、240 Hz 或硬件加速。首轮宿主测试在 HTTP 测试服务器关闭时发生 Socket 释放竞态,仅修复测试服务器取消后的异常处理;原失败与重试记录保留。

USB Desktop 实际输入与重新插入

USB Console 实际输入与重新插入

镜像与实体测试

镜像和两个独立 QEMU 启动包已保存在主项目 dist,具体路径、SHA256、源码与来宾回执见 验证摘要。双启动镜像为 268435456 字节,SHA256:

531bcf6c033548bf7960372dd0361fefcdcc85e6eb9a35e6b213f692fef859b9

本轮实体 U 盘只报告 262144 字节。核对同一磁盘与精确存储父节点后,仅重启该存储设备;Windows 返回 3010,可寻址空间仍未恢复。用户回复“暂不方便,先完成镜像”,因此未创建可执行写盘令牌、未开始原始写入,也没有物理介质完整回读通过的声明。未写记录保留于主项目 build/usb-media/XFEstudio-Dual-GpuUsb2-0.3.0-dev.4-1792075963972/NotWritten.json。用户重新连接后再核对身份、创建新计划,使用 IndependentDualCSharp256 写入并校验容量调整后的完整镜像与实际盘尾 GPT。

实体复测时,分别选择 Desktop 和 Console,检查键鼠输入及重新插入;GPU 诊断可拍照保留。X:\System\Diagnostics\Usb.txt 每两秒更新控制器、设备、端点、输入报告与失败计数。Corsair 与无线接收器的实体兼容和灯效仍待实际启动确认;此版本使用设备默认 RGB 行为,未实现厂商 RGB 协议。ImageDeliveryComplete=true,UsbWritten=false,FullReleaseQualified=false。