AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 559918
Accepted
B-LechCode
B-LechCode
Asked: 2020-01-03 02:59:59 +0800 CST2020-01-03 02:59:59 +0800 CST 2020-01-03 02:59:59 +0800 CST

如何使用 Nvidia 专有驱动程序添加虚拟显示器

  • 772

如何使用 Nvidia 专有驱动程序添加虚拟显示器?以前我在这个解决方案中使用了一张 Intel 卡,效果很好:Add VIRTUAL output to Xorg。

现在我想切换到没有英特尔卡的新硬件。VNC-Server中提到的作为扩展屏幕的虚拟 X11 监视器的解决方案在我的情况下不起作用。当我想将模式添加到输出时,xrandr会引发错误。

xrandr --newmode test 173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode "DP-1" test
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  41
  Current serial number in output stream:  42

基本数据:

  • 硬件:HP ZBook 15 G3,配置独立显卡(Optimus 不工作!)
  • 软件:Debian 10.0.2;内核:4.19.0,Nvidia-Driver-Module:xser​​ver-xorg-video-nvidia-legacy-390xx

如果你问,我为什么要这样做:我使用一个软件通过以太网将虚拟屏幕传输到另一台机器,以实现两个笔记本的双显示器。( https://github.com/B-LechCode/sooScreenShare )

更新:现在有一个建议的解决方案适用于我的机器,但它无法添加像 1920x1200 这样的新模式。也许有人有想法?

debian x11
  • 3 3 个回答
  • 5570 Views

3 个回答

  • Voted
  1. Best Answer
    asciiphil
    2021-03-21T11:14:24+08:002021-03-21T11:14:24+08:00

    我有一个适合我的解决方案,尽管它缺少选择完全任意分辨率的能力。需要明确的是,这仅适用于专有的 nvidia 驱动程序;开源 nouveau 驱动程序的工作方式与其他显卡驱动程序不同。

    简短的版本是:使用ConnectedMonitornvidia xorg.conf Screen 选项来激活除主监视器之外的额外输出。

    这是长版本:

    运行xrandr --query以获取您的主要输出的名称以及您计划用于虚拟屏幕的未连接输出的名称。例如,我得到以下输出:

    LVDS-0 连接初级 1440x900+0+0(正常左倒右x轴y轴)331mm x 207mm
       [省略了各种监视器模式]
    DP-0断开(正常左倒右x轴y轴)
    DP-1断开(正常左倒右x轴y轴)
    DP-2断开(正常左倒右x轴y轴)
    DP-3断开(正常左倒右x轴y轴)
    DP-4断开(正常左倒右x轴y轴)
    DP-5断开(正常左倒右x轴y轴)
    

    所以就我而言,笔记本电脑的屏幕是LVDS-0可用DP-0的DP-5。和你一样,我会选择DP-1虚拟屏幕。

    您将需要添加一个 xorg.conf 屏幕配置,以及一个供屏幕使用的设备部分。这可以是 xorg 可以找到的任何地方。我把我的放进去/etc/X11/xorg.conf.d/30-virtscreen.conf。在该文件中,最小设置是:

    “设备”部分
        标识符“nvidiagpu”
        驱动程序“英伟达”
    端部
    
    “屏幕”部分
        标识符“nvidiascreen”
        设备“nvidiagpu”
        选项“ConnectedMonitor”“LVDS-0,DP-1”
    端部
    

    这告诉驱动程序使用DP-1输出,即使它没有检测到连接到它的监视器。请注意,如果您想使用它,您还必须列出您的笔记本电脑显示器(或真实的物理显示器)!如果您只列出虚拟输出,驱动程序将不会激活任何其他输出,即使它检测到连接到它们的监视器。

    现在重新启动 X。您应该会看到两个活动监视器xrandr以及其他显示查询程序。

    在我的系统上,新激活的虚拟输出有多种可用的分辨率。我可以选择其中任何一个(例如 via xrandr --output DP-1 --mode 1600x900),虚拟输出将自行调整大小。但是,我不能添加新模式(例如,如果我想要 1920x1080 分辨率)。那仍然给我“无效的参数属性”错误。幸运的是,我可以接受可用的模式。运气好的话,你也会有一些有用的预设。

    • 4
  2. Dariusz Gardyński
    2022-02-07T08:31:14+08:002022-02-07T08:31:14+08:00

    https://askubuntu.com/a/803053/1568608解决asciiphil问题,但您无法将分辨率更改为例如 1920x1080(asciiphil 答案中的参数属性无效问题)。要解决此问题,只需在“屏幕”部分添加第二个选项:

    Section "Screen"
        Identifier  "nvidiascreen"
        Device      "nvidiagpu"
        Option      "ConnectedMonitor" "LVDS-0,DP-1"
        Option      "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"
    EndSection
    
    • 0
  3. Aevum Kairos
    2022-05-26T18:06:18+08:002022-05-26T18:06:18+08:00

    如果您想附加虚拟显示器,只需使用

    Option         "ConnectedMonitor" "HDMI-0"
    

    将 HDMI-0 替换为您希望显卡用于虚拟显示到 xorg.conf 的“屏幕”部分的任何显示端口。添加以下行将禁用所有必要的检查,以允许您在较新的 NVIDIA 显卡上设置任何不受支持的分辨率。在“屏幕”部分下:

    Option         "UseEDIDFreqs" "False"
    Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck AllowNonEdidModes"
    

    然后使用 cvt 的结果添加模式,你就可以开始了!如果您仍然无法设置分辨率,您可以将 ModeLine 添加到 Monitor 部分并将模式添加到 Display 部分以加载它。更完整的例子:

    Section "Monitor"
    Modeline "2560x1440_120.00" <cvt output stuff>
    EndSection
    

    和

    Section "Screen"
        SubSection     "Display"
            Depth       24
            Modes      "2560x1440_120.00"
        EndSubSection
        Option         "ConnectedMonitor" "HDMI-0"
        Option         "UseEDIDFreqs" "False"
        Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeCheck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck AllowNonEdidModes"
    EndSection
    

    这些选项应该添加到您通过运行生成的配置文件中,nvidia-xconfig并且不代表完整或功能xorg.conf。

    • 0

相关问题

  • GRUB 配置以识别同一 Linux 发行版的不同桌面环境(安装)

  • astyle 不会更改源文件格式

  • 接收有关全新 Debian 的电子邮件

  • Debian Stretch:libgs_plugin_systemd-updates.so 中的 gnome-software 段错误

  • 如何在拼音输入法中输入ü?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve