Linux纯软件Sunshine与Moonlight极低延迟安卓副屏幕解决方案

9次阅读
没有评论

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 commandundo 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 下实现一套极低延迟的安卓平板副屏方案。这种方案不仅延迟极低,且分辨率和刷新率完全可控,非常适合对流畅度和画质要求较高的用户。

[/md]

正文完
 0
116博客
版权声明:本篇文章由 116博客 于2024-12-28发表,共计3055字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码