变更详情:删除 RDP 渲染管线,协议统一 Moonlight;退出三层设计与串流过场层落地 - 移除 rdp_session.*、FreeRDP 构建依赖与代码内协议概念,Moonlight 为唯一会话通道 - Ctrl+Alt+Shift+Q 退串流回列表(kiosk 兜底 + moonlight-qt 主路径);登录页去退出按钮 - 新增 TransitionOverlay:全屏过场层盖住串流启动闪烁,进程 CPU 首帧检测后淡出 - Sunshine 写入 sw_preset=ultrafast;实测推翻 x264 瓶颈结论(21.6FPS 帽子在虚拟显示/捕获节奏,CPU≈0%) - 文档:麒麟(101/.71)/Ubuntu(102/.72) 接入信息与四件事落地记录;MEMORY 根因修正
4.9 KiB
4.9 KiB
继续开发前必读
完整对话总结在:D:\DAIMA\vdi-cloud\PROJECT_CONTEXT.md
当前状态
- 项目目录:
D:\DAIMA\vdi-cloud - 终端盒子:RK3528 PRO DDR4,Armbian Ubuntu Noble,aarch64,IP
192.168.1.188 - 当前图形:LightDM + Xorg;正式文档要求 Weston + Wayland + Qt,当前只是 POC
- Proxmox:9.2.2 节点
starhe。VM 100 win10-test192.168.1.70(Sunshine/Moonlight 云桌面); VM 101 kylin-test192.168.1.71(test1)、VM 102 ubuntu-test192.168.1.72(test2), 密码均yx66668888,SSH 可登、图形会话在跑,尚未装 Sunshine,暂不能串流 kiosk-shell(Qt/C++):登录页 → 桌面列表 → Moonlight 会话;RDP 代码已于 2026-10-29 全部删除(git 历史可查),Moonlight 是唯一会话通道,无 freerdp 构建依赖- 新增退出三层与会话过场层:
Ctrl+Alt+Shift+Q退串流回列表;列表页"退出登录"; 登录页无退出按钮(退出终端只在管理菜单);点连接有全屏过场层,首帧后淡出。 详见docs/moonlight-kiosk-20261028.md2026-10-29 下午节 - 代码位置:
terminal/kiosk-shell - 远程安装路径:
~/vdi-terminal/bin/(kiosk-shell、vdi-kiosk-monitor、vdi-moonlight)
必须遵守
- 所有实现严格参考用户提供的两个正式 Word 和会议纪要;文档未确定的技术只能标记待调研,不得擅自定版。
- 终端先做,后接自研管理平台 API;终端不直接调用 Proxmox API。
- 正式状态机:
BOOT -> CONFIG -> CONNECTING -> SESSION -> RECONNECT -> ERROR - 正式 Kiosk 选型:Weston + Wayland + Qt;会话通道统一 Moonlight(RDP 已删,勿在代码里复活协议分支)。
/cert:ignore、空密码仅限局域网 POC。- 项目经理新增待调研:RDP 是否适合 GPU/CAD/3D;研究 Moonlight/Sunshine,但不要在调研前删除 RDP、确定 Moonlight 参数或定版双协议。
已知关键结论
- WiFi:约 -47 dBm,协商约 200 Mbps,零丢包/重传;卷帘问题不能简单归因于 WiFi。
- HDMI 当前原生:
1920x1440@75Hz(10-23 记录);2026-10-28 实测盒子系统已是1920x1080@60Hz, 与 Sunshine 侧虚拟显示器一致,串流 1:1 无缩放。以现场xrandr为准。 /dev/mpp_service、/dev/rga存在,但mppvideodecGStreamer 插件未确认;Weston/DRM 零拷贝待验证。- FreeRDP 3:
gdi_init必须在 PostConnect;NLA 空密码传strdup("");BGRX32 需转换为 Qt RGB;/gfx是能力组合语义。 - Moonlight/Sunshine(2026-10-28 实测):Windows 防火墙挡 ICMP,ping 不通不代表不通,
可达性判断必须用 TCP 探测;
moonlight-qt的 app id 会随服务端重装失效, 命令行要用应用名Desktop;RK3528 上--video-decoder auto会选到不可用的h264_v4l2m2m,必须显式software。 - 21.6 FPS 上限根因(2026-10-29 修正):不是 x264 编码算力——ultrafast 前后帧率分毫不差,
串流中 VM CPU 仅 0.5%、sunshine 累计 14 秒 CPU/3 分钟会话,鼠标运动也不变;
真正瓶颈在虚拟显示/捕获节奏(MttVDD 呈现 + Desktop Duplication 脏帧 + QEMU 显示栈,
VM CPU 型号
QEMU Virtual CPU version 2.5+未透传宿主 AVX2)。 根治 = GPU 直通(NVENC + 真实显示栈);备选 = VirtIO-GPU / cpu=host 排除 QEMU 显示栈因素。 客户端解码 10~15 ms、网络丢包 0%、延迟 3 ms,链路健康。
Web 控制台(2026-10-28 方案确认)
console/是管理员 Web 管理控制台,不是 RK3528 盒子的用户登录页。- 正式技术栈:Vue3 + Vite + TypeScript 严格模式 + Element Plus;后端通过 api-gateway,JWT + RBAC。
- 页面:仪表盘、终端管理、桌面管理、用户与绑定、GPU 池、监控、OTA、审计日志。
- 角色:超级管理员、运维、只读。
- 终端产品流程仍应是
kiosk-shell 登录/首配 -> 桌面列表 -> 获取短期连接票据 -> RDP/Moonlight 会话; 当前开机直连 Moonlight 仅是串流技术验证,不是最终产品登录流程。 - 开发策略:先做功能骨架、Mock API、OpenAPI 契约、RBAC 与 E2E;项目经理 UI 稿到后替换视觉层。
- 完整方案:
docs/web-console-mvp-plan-20261028.md。
尚未完成
- 服务端 GPU 直通(宿主机 starhe 有 GTX 965M / IOMMU Group 2 独占,Intel 核显留给主机显示)
- RK3528 VPU 硬解(h264_v4l2m2m 等缺可用设备,需 MPP FFmpeg 补丁或 V4L2 request 驱动)
- 2K 分辨率链路验证(虚拟显示器 + 盒子显示模式需同步调整)
- Weston/DRM/mppvideodec
- 后端 API 注册、配置、MQTT 心跳(Moonlight 路径目前是本地静态配置)
- 终端音频出音现场确认
- 协议最终选型定版(RDP / Moonlight / 双协议,需实测数据 + 产品方案共同确认)
- 监控与运维脚本、OTA、USB 重定向等终端其余能力
先读 PROJECT_CONTEXT.md,再查看 git status,不要丢弃未提交改动。