前段时间网上冲浪时,发现有人已经成功解锁了 30/40 系显卡的 vGPU ,但是相关驱动和方案尚未公开,在搜索细节的时候又偶遇了 Steam Headless 这个容器项目,集成了 Xfce 、VNC 、Steam 客户端和 Sunshine ,简单折腾一番,搭了一个能够随时保存状态和恢复,方便自己玩独立游戏的专用游戏串流服务器。
我的软硬件环境:零刻 GTi 12 Ultra + 显卡坞( PCIe 直连,非雷电或者 Oculink ),4060 Ti 透传 Debian 12 VM 。
在 Debian VM 里面启动 Steam Headless 容器并配置好 Steam 与 Sunshine ,编写了一个脚本能够 使用 docker pause/unpause 快速冻结/恢复容器服务,接入到 Home Assistant 和 HomeKit ,最终实现效果如下面两个视频:
演示移动端串流以及快速暂停/恢复串流服务: https://www.bilibili.com/video/BV1j6gWzzEMn
演示脚本与暂停之后的功耗: https://www.bilibili.com/video/BV1GegLzrEke
这套方案的一些优点:
- 不依赖显卡支持 vGPU 特性,可以和 Linux Host 共享 GPU 。理论上你可以搭建多个串流服务器给不同人同时使用。暂停和启动很快,个人觉得比睡眠/唤醒 Windows VM 要快。暂停之后显卡坞与整机功耗基本与不开容器一致。不过插了欺骗器之后功耗还是比不插要高一点点。暂停期间 Steam 游戏时间不会被统计(关闭游戏后 Steam 会自动校准),暂停期间不会影响同一账号在其他设备上游玩别的游戏( Steam 同一账号同一时间只允许运行自己库内的一个游戏)。
一些缺点:
- Linux + Proton 天生的兼容性问题。理论上支持 DLSS 但是我没成功。暂时还不支持开启 HDR 。暂停期间显存/内存资源不会被释放。Linux 的游戏串流生态(花样繁多的虚拟屏、虚拟手柄、串流软件、RTX HDR 等)不如 Windows 那么完善。
踩的一些坑:
- 雷电显卡坞的直通显卡(我的另一张 3060 12G 是接的雷电显卡坞)跑 Steam Headless 会有很多问题(甚至会导致 PVE Host 挂掉)。Steam Headless 自带的虚拟显示器似乎有很多问题,所以我最后选择了欺骗器方案。
我编写的容器启动脚本(里面暂停之前会杀掉 Sunshine 释放资源): https://gist.github.com/ihainan/16f8089dcbe18061c5b22b38d975517c
我使用的容器 .env 文件: https://gist.github.com/ihainan/791bdf1980c2d89fba7156e81c80bb04
我使用的 Home Assistant 配置:
command_line: - switch: name: 串流开关 command_on: >- ssh -i /config/.ssh/id_ed25519 -o UserKnownHostsFile=/config/.ssh/known_hosts -o StrictHostKeyChecking=yes ihainan@192.168.100.129 'bash /home/ihainan/extend/docker/Steam/docker-compose-manager.sh unpause' command_off: >- ssh -i /config/.ssh/id_ed25519 -o UserKnownHostsFile=/config/.ssh/known_hosts -o StrictHostKeyChecking=yes ihainan@192.168.100.129 'bash /home/ihainan/extend/docker/Steam/docker-compose-manager.sh pause' command_state: >- ssh -i /config/.ssh/id_ed25519 -o UserKnownHostsFile=/config/.ssh/known_hosts -o StrictHostKeyChecking=yes ihainan@192.168.100.129 'bash /home/ihainan/extend/docker/Steam/docker-compose-manager.sh check' value_template: "{{ value.strip() == 'No' }}"
最后再推荐我正在用的一个拉伸手柄,小鸡 X5Lite ,虽然相比中高端拉伸手柄(同品牌的 G8/G8+,雷蛇骑仕系列等),它的做工很一般,但是抖音常年 60 不到的价格(天天裸手柄扔背包里面不心疼),极其极其轻的重量,以及最重要的,闲鱼有人卖 3D 打印握把( 20 元左右),能够极大程度提升手柄的握持体验,让它反倒成为诸多使用过的拉伸手柄里面,我最喜欢的一个。
唯一不能忍的缺点,连接 iOS 并进行串流,Home 按钮不能映射为 Guide Button ( Xbox/PS Button ),很多 Steam 手柄快捷键无法使用。Android 则没有这个问题。