cage + qutebrowser + Netdata v2.11.1 全屏),⚠️ 落地页深链待定(见第六节)card1 = NVIDIA(四口全 disconnected,纯计算卡)
card2 = Intel 核显(HDMI-A-2 connected → 就是那块 2K 屏)
fb0 = i915drmfb ← 控制台/图形全走核显,独显 16GB 不再被显示栈占用
0.0.0.0:19999 → 局域网直达/etc/netdata/go.d/):
nvidia_smi.conf → GPU 13 张图:利用率 / 显存占用 / 温度 / 功耗 / 风扇 / 时钟 / 编解码器 / PCIe / BAR1 / MIGportcheck.conf → 端口存活 18 张图:8189(ComfyUI)、8080(LLM)、1234(LM Studio)、3013/6020(H3 Studio)、22(SSH),每口有 status / 连接延迟 / 状态持续时长printf 密码 | sudo -S 这种封装不能再接 heredoc 写文件——stdin 被密码管道吃掉,写进去的是密码本身(本次第一版配置就是 11 字节的密码)。正确做法:本地写文件 → scp → install -o netdata -g netdata。| 组件 | 作用 | 说明 |
|---|---|---|
| cage 0.1.5 | Wayland kiosk 合成器 | cage -s -d -- <app>;-s 允许切 VT,-d 不画客户端装饰 |
| qutebrowser 2.5.4 | 浏览器(QtWebEngine = Chromium 内核) | 用专用 --basedir 配置目录,tabs.show/statusbar.show = never → 纯页面全屏 |
| grim 1.4.0 | kiosk 内截图 | 验证渲染用(--shot 模式) |
| Netdata 落地页 | 显示内容 | 见第六节 |
关键脚本:/usr/local/bin/netdata-kiosk.sh、/usr/local/bin/display-mode、~/.config/qutebrowser-kiosk/{config/config.py,kiosk.css}
display-mode kiosk qutebrowser # 图形大屏(cage + 浏览器 + Netdata)
display-mode console # 回文本控制台面板(btop + 状态栏)
display-mode status # 看当前模式与运行状态
原理:~/.display-mode 里写 kiosk [浏览器];tty1 登录时 ~/.bash_profile → sysmon.sh 读它 → exec netdata-kiosk.sh;否则走原控制台面板。
libseat: Could not open target tty: Permission denied → cage 必须在 tty1 的登录会话里启动(display-mode 正是这么做的)。epiphany -a/--application-mode 不吃 URL:它要的是 .desktop 文件(报 Invalid desktop file passed to --application-mode)→ 弃用 epiphany 的 app 模式。Wayland events: Connection reset by peer)→ 装 qtwayland5 并 QT_QPA_PLATFORM=wayland。c.messages.mouse → KeyError: 'command-history')。只写确定存在的项。/v3,但 v2.11 上 /v3 会 ChunkLoadError(chunk 路径不匹配);/old/ 经典仪表盘也因 base-path 全部报 Unexpected token < in JSON。最终解法:仍用根路径,用 qutebrowser 用户样式表把浮层容器 #splashMessageContainer.splash-message 永久隐藏(仪表盘就在它后面,已渲染)。pkill -f <模式串> 会自杀:命令串里含 cage -s 时,pkill -9 -f "cage -s" 把执行命令的 SSH shell 一起杀了(整条命令静默不执行)→ 一律用 pkill -x <进程名>。dd if=/dev/fb0 抓不到内容(KMS 客户端接管后 fbdev 被 detach)→ kiosk 内截图必须用 grim(本脚本的 --shot 模式)。~/.display-mode 分支没装上时 tty1 仍会起老面板——排查时先用 grep -n display-mode /usr/local/bin/sysmon.sh 确认脚本真的更新了。Kiosk 现在显示的是 Netdata 的欢迎/统计落地页(指标总数 5,132、分层存储表、底部 Database/System/Modules/Directories 标签),图表在底部标签里。可选下一步:
System 标签即可看图表;若要每次开机直达,需要定出该标签的深链参数(落地页用 data-tab="1..4" + location.hash 解析,键名未公开)。nvidia-smi 里现在只有 ComfyUI 的 CUDA 上下文,约 316 MiB)/var/cache/netdata)19999(Netdata)。如需限制只本机可见,可在 netdata.conf 里把 bind to 改成 127.0.0.1。scripts/)| 脚本 | 作用 |
|---|---|
install-netdata.sh | 官方 kickstart 安装 Netdata |
netdata-nvidia_smi.conf / netdata-portcheck.conf | 两个采集器配置 |
netdata-collectors.sh | 安装采集器配置并自检(注意其中的写法已修正 stdin 坑) |
install-kiosk.sh | 装 cage / epiphany / grim |
netdata-kiosk.sh | kiosk 启动器(含 --shot 截图验证模式) |
qutebrowser-kiosk-config.py + kiosk.css | 浏览器 kiosk 配置与浮层隐藏样式 |
display-mode.sh | 一键切换 kiosk / console |
igpu-check.sh | 核显启用状态检测 |
screenshots/kiosk-final.png —— 浮层已隐藏后的 kiosk 实际画面(2K 全屏)screenshots/kiosk-netdata2.png —— 隐藏前的样子(可见"Welcome to Netdata"浮层与背后的仪表盘)