在Ubuntu 18.04上未检测到外部显示器。

升级到Ubuntu 18.04后,我的笔记本无法检测/使用通过HDMI连接的外部显示器。即使插入了外部显示器,系统默认设置应用程序中的“检测显示器”按钮也没有任何反应。
以下是xrandr的输出:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1920x1080     60.01*+  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1440x900      59.89  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1360x768      59.80    59.96  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      60.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   800x512       60.17  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   720x450       59.89  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   680x384       59.80    59.96  
   640x400       59.88    59.98  
   576x432       60.06  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
DP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-1 disconnected (normal left inverted right x axis y axis)

我的主要关注点是最后一行:HDMI-1-1已断开连接。我已经插上了一台准备好使用的显示器,但无论我做什么都无法检测到它。
我有一张Nvidia显卡,在更新之前我使用的是专有驱动程序。当外部显示问题首次出现时,我最初尝试切换回开源的Xorg驱动程序。然而,在重新启动后,Ubuntu显示我的驱动程序设置为"手动安装的驱动程序",并且不允许我更改它:

enter image description here

有什么推荐吗?

你如何称呼开源的Xorg驱动程序?是指nouveau驱动程序吗? - solsTiCe
是的。对不起,我没有说清楚。 - PullJosh
2这个问题似乎自己解决了。对于未来遇到相同问题的读者:我启动了一个i3会话(而不是gnome),然后重新启动,问题就解决了。我并不期望这两件事有关联,但如果你真的陷入困境,这个方法可能值得一试。 - PullJosh
18对我来说,在显示设置中没有“检测显示器”的按钮。:( - angelcervera
@PullJosh 你想要回答自己的问题还是删除它?如果你回答并接受了它,就可以避免那些完全不相关的新回答。谢谢。 - WinEunuuchs2Unix
@PullJosh 上面的评论对我有用。 - greenkode
2@angelcervera的回答解决了我的问题。供参考,这里有两个非常详细的帖子,介绍了其他可能的解决方案:https://devtalk.nvidia.com/default/topic/1035768/linux/ubuntu-18-04-can-t-see-second-monitor/,https://devtalk.nvidia.com/default/topic/1032482/optimus-on-ubuntu-18-04-is-a-step-backwards-but-i-found-the-first-good-solution/ - dskrvk
@dskrvk 很棒的链接。我可以把两个都加到我的回答里吗?当然,我会在致谢中提到你的。 :) - angelcervera
当然。只是分享我找到的东西 :) - dskrvk
重要提醒:首先检查是否已插好电源。这是所有IT问题的起因。 - Brandon Bertelsen
尝试了这里的所有方法,都对我无效。最后在这个链接中找到了解决办法:https://forums.linuxmint.com/viewtopic.php?f=59&t=154932&start=20#p847465,并且安装了最新的.run文件驱动程序。 - Myshko
我的戴尔笔记本电脑无法识别USB Type-C(Thunderbolt)外接显示器。通过在BIOS中调整Thunderbolt设置,我解决了这个问题。 - Anton3
此外,执行sudo apt-get install laptop-mode-tools && sudo lmt-config-gui并启用video-out可能会有所帮助。 - Anton3
30个回答

我通过清除然后重新安装NVIDIA驱动程序来解决了这个问题。
sudo apt-get purge 'nvidia*'
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update

然后使用“软件和更新”工具的“附加驱动程序”选项卡,并安装最新的NVIDIA驱动程序。

25我按照@Kasuyakema的建议执行了sudo ubuntu-drivers autoinstall命令,并且它成功了。 - jaycode
2按照这些步骤操作时,命令行出现了一些奇怪的回应,但在重新启动后最终成功了。 - ijuneja
这个问题,结合了@jaycode的指令和一次重启,解决了我的USB-C连接显示器的问题。 - Tschallacka
4我在Ubuntu 20.04和5.11.0-37-generic内核上尝试了这个,安装了NVIDIA 470驱动...结果把我的笔记本锁死了:( 黑屏死机。不得不进入恢复模式的root登录shell,切换驱动并改回nouveau驱动。NVIDIA在Linux上的驱动支持方面真是糟糕透顶。 - Yash Jakhotiya
1我尝试了上述步骤,然后执行了 sudo ubuntu-drivers autoinstall,重启后一切都正常。 - Mahadev Gouda

通过更新推荐的Nvidia显卡驱动程序how-to,问题已经解决。
安装所有推荐的驱动程序:
sudo ubuntu-drivers autoinstall

1是的,这也解决了我的问题。我尝试将我的 DELL Inspiron G3 i7 32GB 480+1TB GTXTi 连接到带有 Ubuntu 18.04 LTS 的 LED IIYAMA 28"。 - wawka
我按照@Attila Szeremi的建议执行了以下命令,并且成功解决了问题:sudo apt-get purge 'nvidia*' sudo add-apt-repository ppa:graphics-drivers sudo apt-get update - jaycode
这个搞砸了我的Linux Mint,直到我按照@Attila Szeremi提到的方法才能重新启动。 - TOPKAT
哎呀,我遇到了损坏的软件包(Ubuntu 20.04.3),安装失败了。我得按照Attila Szeremi的方法自己安装Nvidia软件包。 - Teddy van Jerry
这个解决方案适用于Ubuntu MATE 20.04,并且使用了Nvidia的性能模式。 - PoundXI
2这对我来说解决了问题。相当简单而优雅。运行在Ubuntu 22.04 LTS上。谢谢! - RawCode
确认此解决方案适用于Ubuntu 22.04.2 LTS与KDE Plasma,截至2023年6月。别忘了重新启动 :) - skytwosea

我安装了LightDM并将其设置为默认显示管理器,解决了问题。
在此过程中,有些变化发生了,因为即使您返回到GDM3,它也会开始检测外部显示器
您可以按照这里的说明进行更改:
  • sudo dpkg-reconfigure gdm
  • 选择您想要默认使用的显示管理器(LightDM,MDM,KDM,Slim,GDM)并按Enter键
  • 重新启动您的计算机

2这对我的MSI GS65在Ubuntu 18.04上有效。我还需要执行sudo prime-select nvidia命令并重新启动电脑 - 似乎只有在使用nvidia驱动程序时才能正常工作。 - Russell Richie
尽管与angelcervera的帖子相反,但如果我切换回gdm3,问题似乎会再次出现... - Russell Richie
除了这个答案外,我还重命名了我的xorg.conf,虽然不知道这是否最终产生了任何效果。 - dskrvk
在Ubuntu 18.04上,选择lightdm而不是gdm3对我来说解决了最新更新引入的问题... - nspo
哇!好棒的发现。当我切换到LightDM时,它起作用了。我使用的是Ubuntu 18.04。 - Lupus
1请注意,是gdm3和modesetting的组合导致了这个问题。Ubuntu 18.10默认切换到了modesetting,后来这一改动被回溯到了18.04版本。Nvidia的modesetting可以在笔记本面板上防止撕裂,因为它启用了“prime同步”,这是一种针对nvidia prime的垂直同步方式。但由于某种原因,gdm3变得非常困惑。lightdm则是两全其美:可以工作的外部显示器和在笔记本显示屏上无撕裂的nvidia图形。 - Tim Richardson
1这对我来说并没有解决问题。GS65和Ubuntu 18.04。 - Thierry J.
我在我的Acer Predator上遇到了完全相同的问题,配备了GTX 1060。这是否也“解锁”了您的驱动程序设置? - Fabio Silva
嗨@FabioSilva,对不起,我不明白你所说的"解除封锁你的驱动设置"是什么意思。 - angelcervera
@angelcervera 谈到您无法更改“手动安装驱动程序”选项的事实。总之,谈论图像。更换显示器后,您能否更改此选项? - Fabio Silva
@FabioSilva 是的,我可以。但我认为这个问题与显示器检测无关。要管理驱动程序,我总是在控制台上使用 "ubuntu-drivers"。 - angelcervera
对我来说不起作用。 - Mukul M.
@FactualHarmony 我儿子现在面临着同样的问题。我认为这个问题过于普遍,与许多因素有关,所以不同版本的Ubuntu包意味着不同的问题。:( 搜索更多关于相同问题的最新问答。 - angelcervera
安装lightdm时,它为我检测到了显示器,但是我却陷入了登录循环中。切换回gdm3后,显示器不再被检测到。对我来说,真正的解决方案是对/lib/systemd/system/gdm3.service进行一行修改。请参考我在这个帖子中的主要答案,或者在这里找到的错误报告: https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1716857 - nhorning
可以确认这适用于Dell G5 5587 (PRIME)(Nvidia GTX 1050,Intel i7)Ubuntu 18.04使用nvidia 440驱动程序。LightDM是我唯一需要的东西。 - Jordan Mackie
2这对我的MSI GS65 Stealth Thin 8RE笔记本电脑在Ubuntu 19.10上起作用。然而,我还有一个额外的信息要补充。如果你没有安装lightdm,那么使用dpkg-reconfigure切换到lightdm是不可能的。如果你遇到这个问题,你可能需要通过运行sudo apt-get install lightdm来安装它。 - xarlymg89
1运行sudo dpkg-reconfigure gdm3,然后选择gdm3确实解决了我的问题(我想gdm3之前已经是我的显示管理器)。 - talz

有一种解决方案,无需安装 lightdm

更新:

显然以 root 用户身份运行 X11 是更好的解决方案。只需在 /etc/X11/Xwrapper.config 中添加以下内容即可:

needs_root_rights = yes


这是一个在/lib/systemd/system/gdm3.service中的一行修复。

替换:

[Service]

ExecStartPre=/usr/share/gdm/generate-config

为:

[Service]

ExecStartPre=/usr/bin/xinit /usr/share/gdm/generate-config

查找位置:

https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1716857

我的所有外部显示器现在在gdm3上都可以被检测到并工作

我的系统:

Ubuntu 18.04.3 LTS

Lenovo T480

Intel® Core™ i7-8650U CPU @ 1.90GHz × 8

通过Thunderbolt 3连接的Razer Core X上的GeForce GTX 1070 Ti/PCIe/SSE2

GNOME 3.28.2


3这应该是被接受的答案。得到最多赞同票的那个建议回到旧的lightdm,并且需要更多步骤。而这个简单的一行命令对我来说解决了问题。 - user92240
Xwrapper的root权限对我也起作用了,但我不需要更改gdm3.service的设置。 - Zoltán Süle
@nhorning 我在文件/etc/X11/Xwrapper.config中添加了needs_root_rights = yes,现在设备的启动在硬盘解密和Ubuntu登录界面之间卡住了。 - jrenk
这个答案的第一部分就是答案。不确定下面的内容是什么,但那些部分很令人困惑。你只需要在/etc/X11/Xwrapper.config中添加needs_root_right = yes就可以了。 - Mr_Spock
1我进入了我的/etc/X11/Xwrapper.config文件,发现那一行"needs_root_right = yes"已经在那里了。我使用的是联想Extreme Gen2,并且正在使用Pop_OS操作系统。 - Eren Mehmet Kiral
1这对我来说不起作用。可能是@user92240的点赞差异的原因。 - Yash Jakhotiya
1没有运气 - ThinkPad P1 Gen3 上的 Ubuntu 20.04 - Chris Hayes
这个回答的更新部分就是我所需要的。谢谢! - PoJam
对我来说,即使使用英特尔图形处理器也能正常工作。 - Peter Chung

我尝试了重新配置为lightdm的解决方案,但似乎没有起作用。

我从以下网站上阅读了一些内容:https://devtalk.nvidia.com/default/topic/1035768/linux/ubuntu-18-04-can-t-see-second-monitor/ 我发现至少在联想Legion Y530上,解决方案是将NVIDIA prime配置文件从intel更改为nvidia,然后重新启动计算机。

您可以通过进入“NVIDIA X Server”设置,转到“PRIME profiles”选项卡,然后选择“NVIDIA(性能模式)”来切换配置文件。之后,请重新启动计算机。

您还可以通过在终端中运行以下命令来重新配置PRIME profiles选项卡。

 sudo prime-select nvidia

然后重新启动您的计算机。

1在我的情况下,nvidia 已经被选中了,但当我选择“intel”时它开始工作。然后我毫无问题地重新选择了“nvidia”。 - dvlcube
在我的Legion Y7000上運作良好。 - Ritesh

我的外接显示器插入到我联想 L380 笔记本的 HDMI 接口后,在 Ubuntu 18.04 上突然无法工作。我成功解决了这个问题,方法是通过进入 BIOS 设置,将显示优先级选项从 USB Type-C 改为 HDMI。

我的联想E14没有显示优先级,只是显示出选项来选择笔记本电脑显示器、HDMI或USB。该怎么办? - Sandeep Balagopal
1@SandeepBalagopal 在我看来,尝试选择HDMI,但记住按下按钮的顺序以恢复此更改)如果您的笔记本电脑无法在找不到HDMI显示器时返回到笔记本电脑显示器,请注意。 - Sergii Golubev

我在执行之前可以连接到外部显示器。
sudo apt install gnome

我尝试了上面的建议,但是都没有起作用。最后我通过这种方法恢复了连接。
sudo service gdm3 restart
sudo reboot

有线。

重新启动gdm3解决了问题。 - Vignesh_A
在尝试了许多其他方法后,这个方法对我起了作用。然而,它完全改变了我的登录界面的外观。 - Santiago
试了好多个,最后这一个终于完成了任务 - 非常感谢 - Display name
我连接了两个屏幕,现在按照描述安装了gnome,问题已经解决,谢谢。 - vidur punj

尝试一下这个(如果1920x1080不是你的分辨率,请更改分辨率):
    xrandr --addmode HDMI-1-1 1920x1080
    xrandr --output HDMI-1-1 --mode 1920x1080

还在努力在Ubuntu 18.04上设置外接显示器的人们, 只需在BIOS设置中禁用安全启动,然后试一试。这对我起作用了。(ASUS ROG G531GV)

在我的华硕ROG笔记本电脑上(运行Ubuntu 19.04 / Windows 10双启动),在BIOS更新后,我遇到了同样的问题。

首先,我需要在BIOS中禁用安全启动。

然后,我需要在/lib/modprobe.d/nvidia-kms.conf中设置options nvidia-drm modeset=0并运行sudo update-initramfs -u