我有一台华硕 NT7000 笔记本电脑,它只有 HDMI 输出。去年,我费了好大劲才安装了 Ubuntu 16.10,因为我的显卡是 NVIDIA GeForce 950 M。我曾几次使用 HDMI 转 VGA 适配器插入外接显示器,它总是工作正常(与使用 HDMI 显示器和 HDMI-HDMI 电缆相同)。
然后我更新到 17.04,麻烦就开始了。使用 HDMI 端口连接标准 HDMI 显示器仍然可以正常工作,但如果我尝试使用 HDMI 转 VGA 适配器,则什么都不起作用了。我尝试使用不同的显示器、不同的电缆和不同的适配器,但似乎都不起作用。无法检测到显示器。
我尝试更改和更新 NVIDIA 驱动程序,也尝试使用nouveau
和nomodeset
,但仍然没有成功。我尝试删除 X10 和类似程序,但情况却变得更糟。出于绝望,我甚至在格式化 SSD 后完全重新安装了 Ubuntu!
难道我尝试的两个适配器都不兼容 Ubuntu?有可能吗?
答案1
- 编辑 - -
我刚刚意识到我发了这篇文章却没有注意到你已经尝试了大部分步骤。把它留在这里以防对任何人有用。- Matt
我最近在使用新显示器时也遇到了这种情况,我能够体会到这种令人沮丧的情况。
虽然我无法提供解决方案,但我可以建议诊断步骤。
要尝试的诊断步骤:
- 检查 Ubuntu 显示设置.(主菜单 -> 设置 -> 显示)
看看您的显示器是否能被识别。
检查监视器是否被识别
xrandr
: 首先,您可以使用以下命令检查您的显示器是否被检测到:xrandr -q——详细
您将获得类似这样的输出:
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
eDP-1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 293mm x 165mm
1920x1080 60.00 + 59.93*
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
[...]
在其中的某个地方,你应该会看到一个 HDMI 连接部分:
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.00*+ 59.94
1680x1050 59.88
1280x1024 60.02
如果没有,则可能是电缆连接问题
查看你的显示器是否可以被检测到连接到另一台非 Ubuntu 机器使用您已有的电缆适配器。如果可以识别,则表明适配器不是问题所在。
检查您的显卡类型:
lspci | grep VGA
我发现几个论坛帖子都说 Nvidia 驱动程序存在某种问题,有时您的系统无法获取特定显示器的正确分辨率信息。那里的解决方案似乎与更新 Nvidia 图形驱动程序有关。
答案2
我的解决方案是
单独插入适配器。然后将 VGA 电缆插入适配器。
答案3
我遇到了和你一样的问题,在读了几篇帖子后我解决了这个问题,所以我将一步一步解释我是如何解决的。我不得不说,我是 Linux 世界的菜鸟,所以我也将为菜鸟解释这些步骤。
- 进入 BIOS 并禁用安全启动。为此,请重新启动 PC,按几次 F1、F2 或 F10(具体取决于 PC),查找启动选项或类似选项并禁用安全启动。安全启动是 Windows 从 Windows 8 引入的 UEFI 模式,可防止执行任何未签名或认证的软件,从而防止 nvidia 开源驱动程序与 GPU 通信。
- 之后,运行
xrandr --listproviders
。如果你有两个 GPU,即处理器集成 GPU 和 NVIDIA GPU,你应该会看到类似这样的内容
Providers: number : 2
Provider 0: id: 0x23b cap: 0x1, Source Output crtcs: 4 outputs: 3 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x45 cap: 0x6, Sink Output, Source Offload crtcs: 3 outputs: 3 associated providers: 1 name:modesetting
如果您看到这个,那就太好了。一些物理外部输出(如 HDMI 端口)仅由一个 GPU 控制,因此您可以尝试运行xrandr --setprovideroutputsource 1 0
或xrandr --setprovideroutputsource 0 1
,希望它能解决您的问题。如果您看到类似这样的内容:
Providers: number : 1
Provider 0: id: 0x45 cap: 0x6, Sink Output, Source Offload crtcs: 3 outputs: 3 associated providers: 1 name:modesetting
您必须安装 NVIDIA GPU 的驱动程序,这将引导我们进入步骤 3。
- 运行
ubuntu-drivers devices
你就会看见类似的东西。
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C8Dsv0000103Csd0000838Fbc03sc00i00
vendor : NVIDIA Corporation
model : GP107M [GeForce GTX 1050 Mobile]
driver : nvidia-driver-435 - distro non-free recommended
driver : nvidia-driver-430 - distro non-free
driver : nvidia-driver-390 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
== /sys/devices/pci0000:00/0000:00:1c.5/0000:04:00.0 ==
modalias : pci:v00008086d0000095Asv00008086sd00005010bc02sc80i00
vendor : Intel Corporation
model : Wireless 7265 (Dual Band Wireless-AC 7265)
manual_install: True
driver : backport-iwlwifi-dkms - distro free
在我的 GPU 上安装推荐的驱动程序sudo apt install nvidia-driver-435
,然后重启。在我的情况下,在安装推荐的驱动程序之前,我卸载了所有 nvidia 驱动程序。要执行此操作,请转到此帖子我如何才能彻底卸载 nvidia 驱动程序?并按照步骤操作。
- 如果问题仍然存在,请尝试在运行此程序的 Intel GPU 和 NVIDIA GPU 之间切换
sudo prime-select nvidia
。如果您看到类似以下内容:
Info: the nvidia profile is already set
尝试运行sudo prime-select intel
,然后sudo prime-select nvidia
。我在一篇文章中读到(外接显示器不工作。Ubuntu,nvidia) 那精选编写一个会导致问题的配置文件,因此运行sudo nano /lib/modprobe.d/nvidia-kms.conf
并注释掉 nvidia-drm 模式集选项。
# This file was generated by nvidia-prime
# Set value to 0 to disable modesetting
# options nvidia-drm modeset=1
重新启动您的电脑。
这记录了我在网上花了 3 个小时来解决这个问题,我真的希望这对其他像我一样的新手有所帮助。