Ahegao Asked: 2024-06-28 22:45:47 +0800 CST2024-06-28 22:45:47 +0800 CST 2024-06-28 22:45:47 +0800 CST 如何在 Debian 12 上启用/启动监视器 772 我使用的是 Debian 12,带有原始 Nvidia 驱动程序。现在,我有三个“显示器”,其中一个是我正在使用的笔记本电脑的内置显示器。中间的一个可以工作,其他的则不行。它们在系统设置和 Nvidia 设置中无法识别。xandr 的输出如下, 我尝试使用 xrandr --output DP-0 --auto 逐个激活它们,但没有任何效果。 debian 2 个回答 Voted groaking 2024-06-29T05:01:48+08:002024-06-29T05:01:48+08:00 如果xrandr命令没有显示您要使用的外接显示器,我的经验告诉我,外接显示器插孔/端口连接有问题。我通常必须用橡皮筋绑住显示器电缆或用书压住它,直到针脚可以正确连接。我使用的笔记本电脑已有 5 年多历史,其 VGA 和 HDMI 端口日渐生锈。 Best Answer telcoM 2024-06-30T02:22:41+08:002024-06-30T02:22:41+08:00 在评论中,你说lspci -d ::0300输出是: 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1) 表示你的系统有两个 GPU:CPU 集成的 Intel GPU(简称 iGPU)和 NVIDIA 独立 GPU(简称 dGPU),输出xrandr --listproviders为: Providers: number : 1 Provider 0: id: 0x1b7 cap: 0x1, Source Output crtcs: 4 outputs: 3 associated providers: 0 name:NVIDIA-0 表示当前仅使用 NVIDIA GPU。 问题 您有一台双 GPU 笔记本电脑:NVIDIA 将此称为 Optimus 技术。遗憾的是,该技术最常见的实现不包括多路复用器开关,该开关允许任一 GPU 物理连接到每个显示输出连接器。这被称为“无多路复用 Optimus”。当使用未直接连接到活动 GPU 的显示连接组合时,必须通过将渲染的输出数据从一个 GPU 传递到另一个 GPU 来替换缺失的连接,然后后者可以将数据输出到它物理连接的显示器。 在笔记本电脑中,常见的无多路复用器 Optimus 解决方案如下: 笔记本电脑自己的显示器和 VGA 输出连接到 iGPU(当没有外部显示器可用时,或使用 VGA 输出在视频投影仪上进行演示时,可以实现节能运行) 任何数字显示输出(例如 HDMI 和/或 DisplayPort)通常都连接到 dGPU,以便在连接到外部桌面显示器时获得最佳性能(并且大概外部电源随时可用,因此节省电池电量不是问题)。 在您的具体情况下,似乎只有 NVIDIA GPU 芯片的 HDMI 输出实际上连接到了物理输出连接器。 解决方案 首先,您应该确保已xserver-xorg-video-intel安装该软件包。它包含适用于您的 Intel iGPU 的 X11 驱动程序,即使只是通过它传递显示数据,它也是必需的。反过来,该驱动程序要求加载内核模块“i915”,并且它所需的任何固件文件都存在,即firmware-misc-nonfree安装了该软件包。 然后,您应该备份当前/etc/X11/xorg.conf文件(如果存在),然后将其更改为包含以下内容(如果不存在则创建该文件): Section "ServerLayout" Identifier "layout" Screen 0 "nvidia" Inactive "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" BusID "PCI:1:0:0" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" Option "AllowEmptyInitialConfiguration" EndSection Section "Device" Identifier "intel" Driver "modesetting" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection (此配置代码片段直接来自NVIDIA GPU 驱动程序 README 文件,其中已写明您硬件的 BusID。) 这将告诉 X 服务器启动两个驱动程序(即使似乎没有连接显示器),并告诉它使用 NVIDIA GPU 作为主 GPU。 有了足够现代的 Xorg X 服务器版本,仅此一点就足以让您的额外显示器可供使用。 但如果没有,您可能需要两个命令来将显示数据从 NVIDIA GPU 明确提供给 Intel GPU: xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto 第一个命令告诉 Intel GPU 基础驱动程序(modesetting)作为来自 NVIDIA GPU 的显示数据的额外输出。 第二条命令使 X 服务器激活任何可能由于上一条命令而变得可用的显示器。 xrandr如果您发现需要这两个命令,您可以通过将它们写入例如来自动化该过程/etc/X11/Xsession.d/92custom_xrandr。
如果
xrandr
命令没有显示您要使用的外接显示器,我的经验告诉我,外接显示器插孔/端口连接有问题。我通常必须用橡皮筋绑住显示器电缆或用书压住它,直到针脚可以正确连接。我使用的笔记本电脑已有 5 年多历史,其 VGA 和 HDMI 端口日渐生锈。在评论中,你说
lspci -d ::0300
输出是:表示你的系统有两个 GPU:CPU 集成的 Intel GPU(简称 iGPU)和 NVIDIA 独立 GPU(简称 dGPU),输出
xrandr --listproviders
为:表示当前仅使用 NVIDIA GPU。
问题
您有一台双 GPU 笔记本电脑:NVIDIA 将此称为 Optimus 技术。遗憾的是,该技术最常见的实现不包括多路复用器开关,该开关允许任一 GPU 物理连接到每个显示输出连接器。这被称为“无多路复用 Optimus”。当使用未直接连接到活动 GPU 的显示连接组合时,必须通过将渲染的输出数据从一个 GPU 传递到另一个 GPU 来替换缺失的连接,然后后者可以将数据输出到它物理连接的显示器。
在笔记本电脑中,常见的无多路复用器 Optimus 解决方案如下:
在您的具体情况下,似乎只有 NVIDIA GPU 芯片的 HDMI 输出实际上连接到了物理输出连接器。
解决方案
首先,您应该确保已
xserver-xorg-video-intel
安装该软件包。它包含适用于您的 Intel iGPU 的 X11 驱动程序,即使只是通过它传递显示数据,它也是必需的。反过来,该驱动程序要求加载内核模块“i915”,并且它所需的任何固件文件都存在,即firmware-misc-nonfree
安装了该软件包。然后,您应该备份当前
/etc/X11/xorg.conf
文件(如果存在),然后将其更改为包含以下内容(如果不存在则创建该文件):(此配置代码片段直接来自NVIDIA GPU 驱动程序 README 文件,其中已写明您硬件的 BusID。)
这将告诉 X 服务器启动两个驱动程序(即使似乎没有连接显示器),并告诉它使用 NVIDIA GPU 作为主 GPU。
有了足够现代的 Xorg X 服务器版本,仅此一点就足以让您的额外显示器可供使用。
但如果没有,您可能需要两个命令来将显示数据从 NVIDIA GPU 明确提供给 Intel GPU:
第一个命令告诉 Intel GPU 基础驱动程序(
modesetting
)作为来自 NVIDIA GPU 的显示数据的额外输出。第二条命令使 X 服务器激活任何可能由于上一条命令而变得可用的显示器。
xrandr
如果您发现需要这两个命令,您可以通过将它们写入例如来自动化该过程/etc/X11/Xsession.d/92custom_xrandr
。