使用 nvidia 驱动程序时可以识别内置显示器,但使用 i915 时不能识别?

使用 nvidia 驱动程序时可以识别内置显示器,但使用 i915 时不能识别?

TL;DR:我正在使用 Pop 20.10。我使用的是配备 RTX 2070mq(运行良好)的 Dell G5 5590 和 i7-9750H。我有一个 144hz 内置屏幕。它在使用 nvidia 专有驱动程序时工作,但xrandr在禁用 nvidia 卡(即使用 i915/集成 intel gpu 代替)时不起作用(甚至不出现在 中)。

在 Windows 中,使用 nvidia 时我看到屏幕为 144hz,如果需要,可以手动设置为 64hz。如果我禁用了 nvidia 卡,我会看到屏幕自动以 64hz 运行。

在 Pop 中,它自动默认为我的机器使用 nvidia 驱动程序。这工作完美,但电池寿命特性较差。

在此模式下,xrandr仅显示内置屏幕的 144hz 设置,这与我在 nvidia 控制面板中的窗口中看到的内容相匹配:

当使用 nvidia 启动时

当我尝试切换到“集成”并重新启动时,我只能通过 USB-C 连接的外部显示器获取视频。 DP-0(在使用 nvidia 时 xrandr 显示为内部屏幕)在禁用 nvidia 时甚至不会显示在 xrandr 中。

xrandr禁用英伟达:

当使用集成启动时

我有提交了 i915 的问题,但没有看到任何回应。

我尝试过很多事情,全部记录在案,包括对文件1915.modeset=0的尝试xorg.conf,但似乎没有什么成功——不过,对我来说,这一切都是在黑暗中进行的,因为这不是我非常了解的领域。

我的猜测是 EDID(或者可能是 DisplayPort 配置数据/DPCD?)“不正确”,类似于引用的问题这里。但我自己尝试调试这个有点不知所措,而且我有点不知道下一步该去哪里。

我也曾猜测过,iGPU 无法处理 144hz。但:

  1. 如果是这样的话,我在 xrandr 中不是还能看到它吗?
  2. 理论上,1080p 的 144hz 应该完全在 iGPU 的能力范围内,但如果它在 Windows 中不能做到这一点,也许这是一个错误的假设

无论如何,我可以尝试如何让我的内部显示器与我的英特尔 UHD 630 iGPU 一起工作(最好在 60~hz,我想最大限度地延长电池寿命)?

我想我可以添加/usr/share/X11/xorg.conf.d/20-intel.conf60hz modeline,但这似乎对我不起作用。我尝试了很多变体,但我就是看不到我的显示器。 (你可以看到我举了一个我尝试过的conf文件的例子这里)。

我应该在这里查看哪些日志?这是我的“集成”启动的启动日志,已查找modesethttps://pastebin.ubuntu.com/p/zXsjcpMdMY/。根本没有提到DP-0...

然而,当我 grep 一个 nvidia 启动时,我也看到 modeset 也没有提到 DP-0;相反,仅在 nvidia 启动中,我看到这一行:

Apr 07 16:29:28 pop-os /usr/libexec/gdm-x-session[2327]: (II) NVIDIA(0): Setting mode "DP-0: nvidia-auto-select @1920x1080 +2160+0 {ViewPortIn=1920x1080, ViewPortOut=1920x1080+0+0}"

根据我正在阅读的内容这里当我查找时nvidia-auto-select,似乎 nvidia 驱动程序被告知要管理 DP-0,然后成功了。但是,由于当不使用 nvidia 启动时,我在 xrandr 中根本没有看到 DP-0 提及,因此我无法在不弄清楚的情况下进一步调试该问题在哪里的知识DP-0来自于系统,如何它被告知使用nvidia-auto-select等,这样我就可以开始告诉 DP-0 在 nvidia 卡/驱动程序不活动时使用。

我认为运行的父进程是这段代码,但我无法从中获得太多价值,因为我不是 C 开发人员,并且不太了解此类项目是如何组织的。

如果其他一些日志有帮助,请告诉我。

答案1

好吧,我在我的 Dell G5 5590 上也花了几天时间研究这个问题,并得出结论,BIOS 本身没有提到英特尔 UHD 630 作为显卡。当尝试仅使用模式设置(英特尔)的 xorg.conf 时,似乎正确上传了 i915 驱动程序,一切正常,但屏幕上没有任何反应。然后我想我们尝试了一些未预见到的事情......用Linux,我们只能使用nvidia卡。

答案2

我不知道这是否有帮助,但我遇到了类似的问题。

我有一台 MSI GS66,我正在双重启动 pop 和 windows。有一天,我正在尝试一些东西,并将我的图形从流行模式切换为离散图形,当我将其改回集成图形时,我在启动时出现了一个空白屏幕。

所以我进入 Windows 看看我的电脑是否以某种方式变砖了,但它运行良好并且可以很好地切换卡。我能够使用独立卡启动到 pop,但是当我在 Windows 中将其更改为 mshybrid 时,只是出现灰屏。

我的修复方法是进入 BIOS,将显卡从独立显卡更改为 mshybrid,然后启动时按空格键,我认为它会启动 systemd。无论如何,它给了我三个选择,第一个是继续使用当前内核,第二个是启动到旧内核,第三个是固件。我选择了旧的内核,它启动得很好,我的所有应用程序和东西都已加载并运行。

答案3

好吧,我也花了几天时间研究我的 DELL G5 5590 的这个问题,并得出结论,BIOS 本身没有提到英特尔 UHD 630 作为显卡。当尝试仅使用模式设置(英特尔)的 xorg.conf 时,似乎正确上传了 i915 驱动程序,一切正常,但屏幕上没有任何反应。然后我想我们尝试了一些未预见到的事情......用Linux,我们只能使用nvidia卡。

相关内容