向日葵连接Ubuntu22.04黑屏

向日葵连接Ubuntu22.04黑屏

向日葵连接Ubuntu22.04黑屏

在这里插入图片描述


在这里插入图片描述

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

原因分析

1. Xorg 依赖物理显示器

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

解决办法

1. 使用虚拟显示设备

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

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

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

lspci |grep -i vga 

输出示例

tyz@tyz-desktop:~$ lspci |grep -i vga 00: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 文件,以防出现问题可以恢复。

sudocp /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.0 EndSection Section "Device" Identifier "RealDevice" Driver "intel" # 可以根据需要添加其他选项,如加速选项等 Option "AccelMethod" "sna" EndSection Section "Screen" Identifier "RealScreen" Device "RealDevice" Monitor "RealMonitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1920x1080" EndSubSection EndSection # 虚拟显示器的配置 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 +vsync EndSection Section "Device" Identifier "DummyDevice" Driver "dummy" # 虚拟显存大小,可根据需要调整 VideoRam 256000 EndSection Section "Screen" Identifier "DummyScreen" Device "DummyDevice" Monitor "DummyMonitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1920x1080_60.00" EndSubSection EndSection # 组合屏幕配置 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 文件:
sudonano /etc/X11/xorg.conf 
  1. 将上述内容复制粘贴到文件中。
  2. 按下 Ctrl + X,然后按 Y 确认保存,最后按 Enter 退出编辑器。
  3. 重启显示管理器,以 GDM 为例:
sudo systemctl restart gdm.service 
  • 重启 Xorg
    重启系统或重新启动 X 服务器,使配置生效。
    通过图形界面注销用户

Read more

Webots R2023b 完整安装配置教程

Webots R2023b 完整安装配置教程 声明:本教程由豆包、ChatGPT等AI工具协助完成。 本教程讲解如何安装 Python3、包管理器 Micromamba、必要依赖包(如 opencv-python),以及 Webots 仿真软件,并完成 Micromamba Python 环境与 MATLAB 地址的配置,适用于 Windows、macOS 双系统。 一、前置说明 1. 适用场景:需要使用 Webots 进行仿真开发,同时依赖 Python 进行脚本编写、OpenCV 进行图像处理,通过 Micromamba 管理 Python 环境,并关联 MATLAB 路径用于联合开发。 2. 版本约定(兼容性最优): * Python:

By Ne0inhk
35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

来源 | https://segmentfault.com/a/1190000021936876 今天这篇文章给大家分享一些常见的前端vue面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 对于前端来说,尽管css、html、js是主要的基础知识,但是随着技术的不断发展,出现了很多优秀的mv*框架以及小程序框架。因此,对于前端开发者而言,需要对一些前端框架进行熟练掌握。这篇文章我们一起来聊一聊VUE及全家桶的常见面试问题。 1、请讲述下VUE的MVVM的理解? MVVM 是 Model-View-ViewModel的缩写,即将数据模型与数据表现层通过数据驱动进行分离,从而只需要关系数据模型的开发,而不需要考虑页面的表现,具体说来如下: Model代表数据模型:主要用于定义数据和操作的业务逻辑。 View代表页面展示组件(即dom展现形式):负责将数据模型转化成UI 展现出来。 ViewModel为model和view之间的桥梁:监听模型数据的改变和控制视图行为、处理用户交互。通过双向数据绑定把 View 层和 Model 层连接了起来,而View

By Ne0inhk
【前端实战】从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案

【前端实战】从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案

目录 【前端实战】从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案 一、问题背景:async/await 真的解决了一切麻烦吗? 二、真实业务场景下的痛点 1、错误需要“分阶段处理” 2、try-catch 的引入打破了 async/await 的链式范式 三、借鉴 Go、Rust 语言特性,错误也是一种结果 1、错误优先风格替代 try-catch 2、封装一个 safeAsync 工具函数 四、进阶版 safeAsync 函数设计 五、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“

By Ne0inhk
Clawdbot(Moltbot)源码部署全实测:从环境搭建到 WebChat 验证,避坑指南收好

Clawdbot(Moltbot)源码部署全实测:从环境搭建到 WebChat 验证,避坑指南收好

一、为啥折腾 Clawdbot? 最近刷技术圈总刷到 Clawdbot(后来也叫 Moltbot),说是能搭私人 AI 助手,支持 WhatsApp、Telegram 这些常用通道,还能跑在自己设备上,不用依赖第三方服务 —— 想着拉下来测试一下功能,顺便研究一下其源码的实现。 于是拉上 GitHub 仓库https://github.com/openclaw/openclaw,打算从源码部署试试,过程里踩了不少坑,干脆整理成记录,给同样想折腾的朋友避避坑。 二、源码部署前的准备:Windows 环境优先选 WSL2 一开始想直接用 Windows CMD 部署,结果装依赖时各种报错,查仓库文档才发现 Windows 推荐用 WSL2(Ubuntu/Debian 镜像就行),后续操作全在 WSL2 里完成: 1.

By Ne0inhk