Linux纯软件Sunshine与Moonlight极低延迟安卓副屏幕解决方案
Linux纯软件Sunshine与Moonlight极低延迟安卓副屏幕解决方案
发布本文的原因是,网上其他类似的配置方法都具有一定的局限性,比如需要显卡欺骗器、或者极其复杂需要其他开源软件,而本方案直接快捷,希望能直接帮助到大家(可能是因为自己比较懒惰🧐)。
本文将介绍如何通过 Sunshine + Moonlight 在 Linux 下将安卓平板设置为一块极低延迟的扩展屏幕。基于我个人的实际配置,以下是详细步骤和优化方案。
硬件环境
以下是我的设备配置(仅供参考):
OS: Arch Linux x86_64 Host: ThinkBook 16 G4+ ARA Kernel: Linux 6.12.6-zen1-1-zen WM: bspwm (X11) CPU: AMD Ryzen 7 6800H GPU: AMD Radeon 680M (Integrated) Display (Internal): 2560x1600 @ 120 Hz Display (External-1): 3840x2160 @ 50 Hz Display (External-2): 2880x1800 @ 144 Hz (Android tablet as second screen)
第一步:安装 Sunshine
在电脑上安装 Sunshine
在 Arch Linux 下可以直接安装 Sunshine:
yay -S sunshine
安装完成后,启动 Sunshine:
systemctl start sunshine
打开浏览器访问 https://localhost:47990/ 进入 Sunshine 的管理页面,首次使用需要设置登录密码。
在 Applications 页面配置 do command
和 undo command
,如下所示:
- do command 和 undo command:
xrandr --output DisplayPort-1 --mode 2880x1800_144.00 --rate 144.00
以上命令将在后续部分详细介绍。
第二步:平板安装 Moonlight
在安卓平板上,通过 Google Play 或其他渠道安装 Moonlight。安装完成后,你可以直接在设置中调整分辨率和刷新率,以达到最佳显示效果。
第三步:Linux 配置屏幕
在 Linux 中,我们通过 xrandr
工具来管理显示器。
1. 查看当前显示器信息
执行以下命令查看所有连接的显示器及分辨率信息:
xrandr
我的设备输出如下:
Screen 0: minimum 320 x 200, current 9280 x 2160, maximum 16384 x 16384 eDP connected primary 2560x1600+0+0 (normal left inverted right x axis y axis) 344mm x 215mm 2560x1600 120.02*+ 60.03 HDMI-A-0 connected 3840x2160+2560+0 (normal left inverted right x axis y axis) 600mm x 340mm 3840x2160 60.00 + 50.00 DisplayPort-0 disconnected (normal left inverted right x axis y axis) DisplayPort-1 disconnected 2880x1800+6400+41 (normal left inverted right x axis y axis) 0mm x 0mm 2880x1800_144.00 95.03* DisplayPort-2 disconnected (normal left inverted right x axis y axis) DisplayPort-3 disconnected (normal left inverted right x axis y axis) DisplayPort-4 disconnected (normal left inverted right x axis y axis) DisplayPort-5 disconnected (normal left inverted right x axis y axis) DisplayPort-6 disconnected (normal left inverted right x axis y axis)
通过 xrandr
确定平板所使用的 DisplayPort-1 接口。平板的分辨率为 2880x1800,支持 144Hz。
2. 添加新的分辨率模式
运行以下命令为平板显示器添加自定义分辨率模式:
cvt 2880 1800 144
输出类似以下内容:
# 2880x1800 144.00 Hz (CVT 2.60M9) hsync: 188.47 kHz; pclk: 711.00 MHz Modeline "2880x1800_144.00" 711.00 2880 3128 3448 4016 1800 1803 1811 1863 -hsync +vsync
然后执行以下命令:
xrandr --newmode "2880x1800_144.00" 711.00 2880 3128 3448 4016 1800 1803 1811 1863 -hsync +vsync xrandr --addmode DisplayPort-1 2880x1800_144.00
配置完成后,可以通过 xrandr
启用该模式:
xrandr --output DisplayPort-1 --mode 2880x1800_144.00 --rate 144.00
3. 配置 Sunshine 的命令
将上述 xrandr
命令填入 Sunshine 的 do command 和 undo command 中:
-
do command:
xrandr --output DisplayPort-1 --mode 2880x1800_144.00 --rate 144.00 -
undo command:
xrandr --output DisplayPort-1 --off
4. 桌面管理器重启 (可选)
如果像我一样使用 bspwm 桌面管理器,可以通过以下命令快速重启管理器,刷新屏幕布局:
bspc wm -r
第四步:使用 ARandR 快速调整屏幕位置
ARandR 是一个图形化工具,可以方便地调整屏幕布局。
安装 ARandR
在 Arch Linux 下安装 ARandR:
sudo pacman -S arandr
打开 ARandR 后,可以通过拖拽的方式调整屏幕的位置和排列。例如,将平板拖动到主显示器的右侧或其他位置。
点击右上角保存按钮:
保存到相应位置,例如 ~/.screenlayout/myscreen.sh
:
将生成的脚本添加到系统启动项中,以便每次启动自动应用。
我的屏幕启动脚本
以下是我的屏幕启动脚本内容:
cvt 2880 1800 144 xrandr --newmode "2880x1800_144.00" 711.00 2880 3128 3448 4016 1800 1803 1811 1863 -hsync +vsync xrandr --addmode DisplayPort-1 2880x1800_144.00 sh ~/.screenlayout/myscreen.sh
第五步:平板与电脑连接
完成上述配置后,打开 Moonlight,搜索 Sunshine 提供的设备(你的电脑)。按照提示输入 PIN 码完成配对。
连接成功后,平板即可作为一块独立的扩展屏幕使用,分辨率、刷新率根据你的设置进行应用。
连接后的效果如下图所示:
总结
通过 Sunshine 和 Moonlight,结合 xrandr 和 ARandR 工具,我们就可以直接在 Linux 下实现一套极低延迟的安卓平板副屏方案。这种方案不仅延迟极低,且分辨率和刷新率完全可控,非常适合对流畅度和画质要求较高的用户。
本文作者:.N1nEmAn
本文链接:https://www.cnblogs.com/9man/p/18635994
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步