> 技术文档 > 向日葵连接Ubuntu22.04黑屏_Ubuntu 22.04远程连接黑屏排查

向日葵连接Ubuntu22.04黑屏_Ubuntu 22.04远程连接黑屏排查

向日葵连接Ubuntu22.04黑屏
向日葵连接Ubuntu22.04黑屏_Ubuntu 22.04远程连接黑屏排查
向日葵连接Ubuntu22.04黑屏_Ubuntu 22.04远程连接黑屏排查

问题:这个工具在服务器或者工控机不连接显示器的时候向日葵无法正常显示桌面。

原因分析

1. Xorg 依赖物理显示器

Xorg 设计时通常依赖物理显示器来初始化和正常运行。没有连接显示器,Xorg 可能无法正确初始化图形输出,进而导致向日葵远程桌面无法获取有效的图形数据来进行远程显示。

解决办法

1. 使用虚拟显示设备

可以通过安装和配置虚拟显示设备,让 Xorg 以为有显示器连接。以 xrandrxserver-xorg-video-dummy 为例:

  • 安装 xserver-xorg-video-dummy
sudo apt-get install xserver-xorg-video-dummy
2. 使用 lspci 命令(查看真实显示器所连接的显卡具体信息)

lspci 命令可以列出系统中所有的 PCI 设备,包括显卡。打开终端,输入以下命令:

lspci | grep -i vga

输出示例

tyz@tyz-desktop:~$ lspci | grep -i vga00:02.0 VGA compatible controller: Intel Corporation CometLake-S GT2 [UHD Graphics 630] (rev 05)tyz@tyz-desktop:~$ # Intel UHD Graphics 630 显卡信息

基于显卡信息创建 Xorg 配置文件

请注意,在修改配置文件之前,建议备份原有的 xorg.conf 文件,以防出现问题可以恢复。

sudo cp /etc/X11/xorg.conf ~/xorg.conf.backup

以下是一个基于你提供的 Intel UHD Graphics 630 显卡信息,同时支持真实显示器和虚拟显示器的 /etc/X11/xorg.conf 文件示例:

# 真实显示器的配置Section \"Monitor\" Identifier \"RealMonitor\" # 根据你的显示器实际支持的分辨率和刷新率调整 Option \"PreferredMode\" \"1920x1080\" HorizSync 28.0 - 80.0 VertRefresh 48.0 - 75.0EndSectionSection \"Device\" Identifier \"RealDevice\" Driver \"intel\" # 可以根据需要添加其他选项,如加速选项等 Option \"AccelMethod\" \"sna\"EndSectionSection \"Screen\" Identifier \"RealScreen\" Device \"RealDevice\" Monitor \"RealMonitor\" DefaultDepth 24 SubSection \"Display\" Depth 24 Modes \"1920x1080\" EndSubSectionEndSection# 虚拟显示器的配置Section \"Monitor\" Identifier \"DummyMonitor\" HorizSync 28.0 - 80.0 VertRefresh 48.0 - 75.0 # 为虚拟显示器定义一个模式行 Modeline \"1920x1080_60.00\" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsyncEndSectionSection \"Device\" Identifier \"DummyDevice\" Driver \"dummy\" # 虚拟显存大小,可根据需要调整 VideoRam 256000EndSectionSection \"Screen\" Identifier \"DummyScreen\" Device \"DummyDevice\" Monitor \"DummyMonitor\" DefaultDepth 24 SubSection \"Display\" Depth 24 Modes \"1920x1080_60.00\" EndSubSectionEndSection# 组合屏幕配置Section \"ServerLayout\" Identifier \"MultiScreenLayout\" # 主屏幕为真实屏幕,位置在左上角 (0, 0) Screen 0 \"RealScreen\" 0 0 # 虚拟屏幕在真实屏幕右侧 Screen 1 \"DummyScreen\" RightOf \"RealScreen\" # 禁用 Xinerama,使用 RandR 进行多屏幕管理 Option \"Xinerama\" \"0\"EndSection

说明:

  1. 真实显示器部分

    • Monitor 部分定义了真实显示器的基本参数,PreferredMode 可根据你的显示器实际情况修改为合适的分辨率。
    • Device 部分指定了使用 intel 驱动,AccelMethod 为加速方法,sna 是较常用的一种。
    • Screen 部分将设备和显示器关联起来,并设置了默认的颜色深度和显示模式。
  2. 虚拟显示器部分

    • Monitor 部分为虚拟显示器定义了水平和垂直同步范围以及一个具体的模式行。
    • Device 部分使用 dummy 驱动,并设置了虚拟显存大小。
    • Screen 部分同样将设备和显示器关联,设置颜色深度和显示模式。
  3. 组合屏幕配置

    • ServerLayout 部分将真实屏幕和虚拟屏幕组合在一起,指定了它们的位置关系,这里将虚拟屏幕放在真实屏幕的右侧。

使用方法:

  1. 打开终端,使用以下命令编辑 /etc/X11/xorg.conf 文件:
sudo nano /etc/X11/xorg.conf
  1. 将上述内容复制粘贴到文件中。
  2. 按下 Ctrl + X,然后按 Y 确认保存,最后按 Enter 退出编辑器。
  3. 重启显示管理器,以 GDM 为例:
sudo systemctl restart gdm.service
  • 重启 Xorg
    重启系统或重新启动 X 服务器,使配置生效。
    通过图形界面注销用户