- moonlight_session.cpp:QOverload 显式指定 finished 重载,修复 ARM64 编译 - moonlight.conf:vsync/frame-pacing 默认改回开启(A/B 实测关闭无改善) - docs:补充 10-29 登录流程验收、重启验收、Monitor 恢复、双 IP 根因与 A/B 数据 - tools:新增 deploy_kiosk.sh 一键部署脚本与语法自检
60 lines
4.2 KiB
Markdown
60 lines
4.2 KiB
Markdown
# 继续开发前必读
|
||
|
||
完整对话总结在:`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,Windows 10 22H2 VM `192.168.1.70:3389`,用户 `test1`
|
||
- FreeRDP 3.32.1 已安装,命令 `xfreerdp3`
|
||
- `kiosk-shell` 已按 Qt/C++ + libfreerdp3 内嵌实现,已真实显示 Windows 10 远程桌面
|
||
- **当前开机默认走 Moonlight 云桌面**(2026-10-28 起):
|
||
`vdi-kiosk-monitor -- vdi-moonlight` → `moonlight-qt stream 192.168.1.70 Desktop`,
|
||
满屏 1920x1080 与屏幕 1:1,崩溃/被杀均自动恢复。
|
||
RDP 路径保留但自启已禁用,可切回。详见 `docs/moonlight-kiosk-20261028.md`
|
||
- 代码位置:`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;FreeRDP 以 libfreerdp3 API 内嵌,不拉外部进程。
|
||
- `/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` 存在,但 `mppvideodec` GStreamer 插件未确认;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`。
|
||
- 服务端软编码(Sunshine libx264,无 GPU)是 1080p 只有 ~21.6 FPS、抖动丢帧 13.64% 的根因;
|
||
客户端解码 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`,不要丢弃未提交改动。 |