文档:归档历史记录并同步云管与终端验收资料

This commit is contained in:
songyiming committed 2026-11-09 17:55:16 +08:00
1 parent 3fb7b4da8c
commit d87fa47e24
88 files changed
+1831 -3484

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

@@ -0,0 +1,11 @@
{
"mode": "production",
"baseURL": "http://127.0.0.1:5182",
"realLogin": true,
"desktops": 3,
"terminalOnline": true,
"darkAndLight": true,
"mobile": true,
"browserErrors": [],
"pveOrTerminalCommandsSubmitted": 0
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

@@ -0,0 +1,5 @@
{
"actualStreamReady": true,
"resetTaskId": "task_566520ad31e9352714b4a30594e8f634",
"realResetAcknowledged": true
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

@@ -0,0 +1,5 @@
{
"actualStreamReady": true,
"resetTaskId": "task_15c7a5e4709d3709fb7e4186cc15d295",
"realResetAcknowledged": true
}
@@ -0,0 +1,16 @@
{
"overview": {
"activeSessions": 0,
"desktopCount": 3,
"failedTasks": 1,
"mode": "production",
"onlineTerminals": 1,
"runningDesktops": 3,
"terminalCount": 1
},
"terminalVersion": "qt-platform/0.2.0",
"successfulResets": 3,
"successfulDiagnostics": 2,
"vmPowerCommandsSubmitted": 0,
"initialResetFailureRetained": true
}
@@ -0,0 +1,5 @@
{
"actualStreamReady": true,
"resetTaskId": "task_962bb63138b4c1f36d84ce8b7dc41aff",
"realResetAcknowledged": true
}
@@ -0,0 +1,107 @@
{
"desktop_index": 0,
"entry_samples": 819,
"stream_foreground": true,
"returned_to_kiosk": true,
"first_mapped_moonlight_geometry": {
"14680073": {
"t": 4.6786,
"class": "com.moonlight_stream.Moonlight",
"geometry": [
0,
0,
2560,
1440
]
},
"14680075": {
"t": 5.2771,
"class": "com.moonlight_stream.Moonlight",
"geometry": [
0,
0,
2560,
1440
]
}
},
"stack_changes": [
{
"t": 0.0,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 0.0114,
"windows": [
6291462,
6291462,
6291462
],
"classes": {
"6291472": "vdi-kiosk-shell",
"6291462": "vdi-kiosk-shell"
}
},
{
"t": 0.045,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291472": "vdi-kiosk-shell",
"6291462": "vdi-kiosk-shell"
}
},
{
"t": 4.6786,
"windows": [
14680073,
14680073,
14680073
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell",
"14680073": "com.moonlight_stream.Moonlight"
}
},
{
"t": 5.1954,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 5.2771,
"windows": [
14680075,
14680075,
14680075
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell",
"14680075": "com.moonlight_stream.Moonlight"
}
}
],
"violations": [],
"x11_errors": [],
"ok": true
}
@@ -0,0 +1,81 @@
{
"desktop_index": 1,
"entry_samples": 908,
"stream_foreground": true,
"returned_to_kiosk": true,
"first_mapped_moonlight_geometry": {
"14680073": {
"t": 5.6925,
"class": "com.moonlight_stream.Moonlight",
"geometry": [
0,
0,
2560,
1440
]
},
"14680079": {
"t": 6.3673,
"class": "com.moonlight_stream.Moonlight",
"geometry": [
0,
0,
2560,
1440
]
}
},
"stack_changes": [
{
"t": 0.0,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 5.6801,
"windows": [
14680073,
14680073,
14680073
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 6.1982,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 6.2755,
"windows": [
14680079,
14680079,
14680079
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
}
],
"violations": [],
"x11_errors": [],
"ok": true
}
@@ -0,0 +1,107 @@
{
"desktop_index": 2,
"entry_samples": 968,
"stream_foreground": true,
"returned_to_kiosk": true,
"first_mapped_moonlight_geometry": {
"14680073": {
"t": 5.8743,
"class": "com.moonlight_stream.Moonlight",
"geometry": [
0,
0,
2560,
1440
]
},
"14680079": {
"t": 6.4936,
"class": "com.moonlight_stream.Moonlight",
"geometry": [
0,
0,
2560,
1440
]
}
},
"stack_changes": [
{
"t": 0.0,
"windows": [
6291462,
6291462,
6291462
],
"classes": {
"6291472": "vdi-kiosk-shell",
"6291462": "vdi-kiosk-shell"
}
},
{
"t": 0.0107,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 5.8743,
"windows": [
14680073,
14680073,
14680073
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell",
"14680073": "com.moonlight_stream.Moonlight"
}
},
{
"t": 6.4012,
"windows": [
6291472,
6291472,
6291472
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 6.4817,
"windows": [
6291472,
14680079,
14680079
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell"
}
},
{
"t": 6.4936,
"windows": [
14680079,
14680079,
14680079
],
"classes": {
"6291462": "vdi-kiosk-shell",
"6291472": "vdi-kiosk-shell",
"14680079": "com.moonlight_stream.Moonlight"
}
}
],
"violations": [],
"x11_errors": [],
"ok": true
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

@@ -0,0 +1,32 @@
{
"desktop_index": 0,
"samples": 525,
"kiosk": 6291462,
"stream": 14680075,
"stream_windows": [
14680075
],
"stack_changes": [
{
"t": 0.0,
"windows": [
14680075,
14680075,
14680075,
14680075
]
},
{
"t": 0.5698,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
@@ -0,0 +1,32 @@
{
"desktop_index": 1,
"samples": 527,
"kiosk": 6291462,
"stream": 16777231,
"stream_windows": [
16777231
],
"stack_changes": [
{
"t": 0.0,
"windows": [
16777231,
16777231,
16777231,
16777231
]
},
{
"t": 0.6019,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
@@ -0,0 +1,32 @@
{
"desktop_index": 2,
"samples": 510,
"kiosk": 6291462,
"stream": 14680079,
"stream_windows": [
14680079
],
"stack_changes": [
{
"t": 0.0,
"windows": [
14680079,
14680079,
14680079,
14680079
]
},
{
"t": 0.5974,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

@@ -0,0 +1,32 @@
{
"desktop_index": 0,
"samples": 534,
"kiosk": 6291462,
"stream": 14680075,
"stream_windows": [
14680075
],
"stack_changes": [
{
"t": 0.0,
"windows": [
14680075,
14680075,
14680075,
14680075
]
},
{
"t": 0.567,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
@@ -0,0 +1,32 @@
{
"desktop_index": 1,
"samples": 481,
"kiosk": 6291462,
"stream": 14680079,
"stream_windows": [
14680079
],
"stack_changes": [
{
"t": 0.0,
"windows": [
14680079,
14680079,
14680079,
14680079
]
},
{
"t": 0.6282,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
@@ -0,0 +1,41 @@
{
"desktop_index": 2,
"samples": 529,
"kiosk": 6291462,
"stream": 14680079,
"stream_windows": [
14680079
],
"stack_changes": [
{
"t": 0.0,
"windows": [
14680079,
14680079,
14680079,
14680079
]
},
{
"t": 0.5904,
"windows": [
14680079,
14680079,
6291462,
6291462
]
},
{
"t": 0.6373,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
@@ -0,0 +1,41 @@
{
"desktop_index": 0,
"samples": 530,
"kiosk": 6291462,
"stream": 16777227,
"stream_windows": [
16777227
],
"stack_changes": [
{
"t": 0.0,
"windows": [
16777227,
16777227,
16777227,
16777227
]
},
{
"t": 0.5718,
"windows": [
16777227,
16777227,
6291462,
6291462
]
},
{
"t": 0.6144,
"windows": [
6291462,
6291462,
6291462,
6291462
]
}
],
"returned_to_kiosk": true,
"violations": [],
"ok": true
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

@@ -0,0 +1,25 @@
Ubuntu 云桌面启动断联修复记录(2026-11-09)
现象
点击 Ubuntu 后出现白色全屏过渡层和左上角 Moonlight 小窗口,随后约 30 秒内断联并回到列表。
证据
盒子 /home/armbian/.xsession-errors 记录:
Your windowmanager claims not to support _NET_ACTIVE_WINDOW
xdo_activate_window ... error
vdi_connection ... 云桌面画面就绪超时
盒子会话是无 EWMH 窗口管理器的 kiosk X11 会话。Moonlight 的 SDL 窗口已创建,但旧流程只调用 xdotool windowactivate;该命令在无窗口管理器时失败,kiosk-shell 把健康的串流误判为未就绪,过渡层超时后主动终止 Moonlight。
修复
1. MoonlightSession::activateStreamWindow 在 windowactivate 失败时改走 WM-less X11 回退:windowmap、windowraise、windowmove 0 0、windowsize 到显示器尺寸;以窗口已映射且铺满输出作为就绪条件。
2. kiosk-shell 首次显示时走直接 X11 map/raise/focus 路径,避免 _NET_ACTIVE_WINDOW 为空导致盒子输入落到根窗口。
3. 保留原有 30 秒保护超时,避免异常进程无限占用过渡层。
部署
盒子 192.168.1.188 已重新编译并部署 kiosk-shell、vdi-kiosk-monitor;仅保留一个受管 kiosk 栈。部署编译通过,CTest 3/3 通过(display-guard、moonlight-session、desktop-list-page)。
回退
部署脚本会在盒子端保留显示守护配置备份;源码改动可用 git checkout 回退。此次未修改 Windows VM100、麒麟 VM101 或 Ubuntu 的编码参数。
待现场确认
请在盒子上点击 Ubuntu 连接,确认过渡层消失后画面保持 2K/45;若仍出现断联,立即保留 /home/armbian/.xsession-errors、/tmp/vdi-monitor.log 和 /home/armbian/vdi-terminal/logs/moonlight-20261109.log 的对应时间段。
@@ -0,0 +1,21 @@
Ubuntu VM102 startup recovery (2026-11-09)
Observed:
- VM status was running but qmpstatus=io-error.
- QEMU guest agent was unavailable and box-to-guest route was down.
- PVE block statistics showed one historical failed write operation.
Recovery:
- Sent QMP resume through the PVE API.
- Resume task completed OK; no VM reboot, disk change, or config change.
Verified after resume:
- qmpstatus=running
- QEMU guest agent responding (version 8.2.2)
- guest uptime 1 day 15:16
- GDM, Xorg, GNOME Shell running
- Sunshine running as /usr/bin/sunshine /home/test2/.config/sunshine/sunshine.conf
- guest dmesg showed normal EXT4 mount/remount; no new I/O or read-only error
Conclusion:
- The apparent startup failure was a paused QEMU state, not a broken Ubuntu boot configuration. Reconnect Moonlight now.