Nomachine远程黑屏通用处理方法
文章目录
前言正文方法一 关闭屏幕管理器方法二 手动建立一个虚拟屏幕
总结
前言
NoMachine是一种远程桌面软件,它允许用户通过互联网或局域网连接到远程计算机,并在本地计算机上使用远程计算机的桌面环境和应用程序。它提供了高性能的图形渲染和低延迟的响应,使用户可以像在本地计算机上一样操作远程计算机。
NoMachine支持跨平台,可以在Windows、Mac、Linux和移动设备上使用。它提供了安全的连接,支持加密和身份验证,确保数据传输的安全性。用户可以远程访问自己的文件、应用程序和桌面环境,方便进行远程办公、远程教育、技术支持等工作。
NoMachine还具有其他功能,如文件传输、会话共享和多用户支持。用户可以方便地在不同的计算机之间传输文件,多个用户可以同时连接到同一台远程计算机并进行协作(付费版)。
大家可能在实际使用Nomachine远程时会出现黑屏的情况,一般解决方案有两种:
接真实显示器或者HDMI诱骗器建立虚拟屏幕
本文对于这两种方式均有介绍,分辨率、帧率等各种参数均可以自己定制,根据需要选择方式。
正文
在Linux上导致黑屏的一个特定情况是当X server正在运行,但由于视频卡关闭而没有渲染。在这种情况下,NoMachine不使用自己的虚拟显示器,因为它检测到X server正在运行1。
方法一 关闭屏幕管理器
根据您的screen manager,使用正确的命令停止X server:
sudo systemctl stop lightdm
or: sudo systemctl stop gdm # debian用这个或gdm3
or: sudo systemctl stop gdm3
or: sudo systemctl stop sddm etc ...
或者用通用方案,关闭screen manager:
sudo systemctl stop display-manager
之后重启nxserver,注意: 如果Linux系统没有systemd (例如RHEL 6和更早版本),请在运行级别3重新启动计算机:
sudo /etc/NX/nxserver --restart
# 并同时初步化 3,实测运行这一句无其它影响
sudo init 3
这时重新用nomachine连接远程桌面时就会提醒是否创建新的虚拟屏幕,点击确定即可。
方法二 手动建立一个虚拟屏幕
首先安装xserver-xorg-video-dummy
sudo apt install xserver-xorg-video-dummy
然后编辑虚拟显示器的配置文件:sudo vim /usr/share/X11/xorg.conf.d/xorg.conf
Section "Device"
Identifier "DummyDevice"
Driver "dummy"
VideoRam 256000
EndSection
Section "Monitor"
Identifier "DummyMonitor"
HorizSync 30.0-1000.0
VertRefresh 30.0-1000.0
Modeline "1920x1080_30.00" 80.18 1920 1984 2176 2432 1080 1081 1084 1099 -HSync +Vsync
EndSection
Section "Screen"
Identifier "DummyScreen"
Device "DummyDevice"
Monitor "DummyMonitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080_50.00"
EndSubSection
EndSection
modeline是通过软件计算出来的,计算方式如下:
$ gtf 1920 1080 50
# 1920x1080 @ 50.00 Hz (GTF) hsync: 55.60 kHz; pclk: 141.45 MHz
Modeline "1920x1080_50.00" 141.45 1920 2032 2232 2544 1080 1081 1084 1112 -HSync +Vsync
复制修改保存即可,重启生效,这样虚拟桌面就不会再变黑了,有个小问题是接实体屏幕时不会显示,需要屏蔽上边这个配置。
总结
之前有一篇文章2简单介绍了如何安装使用nomachine此文讲解如何解决在实际使用中的黑屏问题如何解决。
NoMachine - Connecting to Linux headless machines with NoMachine – Knowledge Base ↩︎
[CyberDog工程探索版众测] CyberDog个人环境配置_通过ros如何控制cyberdog-CSDN博客 ↩︎