我有一台配备 NVIDIA Optimus 的笔记本电脑,它有一个独立的 NVIDIA GPU(GTX 1060)和集成的 Intel 显卡(Kaby Lake)。
如果我切换到英特尔显卡,我的外接显示器就无法识别。使用 NVIDIA GPU 时,它可以正常工作。我猜 HDMI 端口直接连接到 NVIDIA GPU。显然,这一切在 Windows 中都运行良好,所以我猜这是一个驱动程序问题。我尝试过 Nouveau 和 NVIDIA prop。378。
这是我使用 NVIDIA(插入外接显示器)时 xrandr 的输出:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
HDMI-0 connected (normal left inverted right x axis y axis)
2560x1080 60.00 +
1920x1080 60.00 59.94 50.00 60.05 60.00 50.04
1680x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 59.94
640x480 75.00 59.94 59.93
eDP-1-1 connected primary 1920x1080+0+0 309mm x 173mm
1920x1080 60.05*+ 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1360x768 59.80 59.96
1152x864 60.00
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
960x600 60.00
960x540 59.99
800x600 60.00 60.32 56.25
840x525 60.01 59.88
800x512 60.17
700x525 59.98
640x512 60.02
720x450 59.89
640x480 60.00 59.94
680x384 59.80 59.96
576x432 60.06
512x384 60.00
400x300 60.32 56.34
320x240 60.05
DP-1-1 disconnected
HDMI-1-1 disconnected
1680x1050 (0x48) 146.250MHz -HSync +VSync
h: width 1680 start 1784 end 1960 total 2240 skew 0 clock 65.29KHz
v: height 1050 start 1053 end 1059 total 1089 clock 59.95Hz
1280x1024 (0x4c) 108.000MHz +HSync +VSync
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 63.98KHz
v: height 1024 start 1025 end 1028 total 1066 clock 60.02Hz
1024x768 (0x53) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x5a) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
640x480 (0x63) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
这是我使用英特尔显卡(外部显示器仍连接)时的输出:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
1920x1080 60.05*+ 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1360x768 59.80 59.96
1152x864 60.00
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
960x600 60.00
960x540 59.99
800x600 60.00 60.32 56.25
840x525 60.01 59.88
800x512 60.17
700x525 59.98
640x512 60.02
720x450 59.89
640x480 60.00 59.94
680x384 59.80 59.96
576x432 60.06
512x384 60.00
400x300 60.32 56.34
320x240 60.05
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
答案1
经过几个月的大量研究,我得出以下结论:HDMI 端口直接连接到 NVIDIA GPU(正如怀疑的那样),并且无法使用当前驱动程序将该端口转发到 Intel GPU(并且驱动程序不会很快获得支持)。如果您使用的是 NVIDIA 专有驱动程序,则可以使用 NVIDIA PRIME 切换到 NVIDIA GPU。如果这样做,HDMI 端口就可以工作。在 Windows 中(据我所知)发生的情况是,当您插入 HDMI 电缆时,它会自动将操作系统切换到 NVIDIA GPU。
我解决此限制的方法是通过 USB-C -> HDMI 适配器利用笔记本电脑上的 USB-C/Thunderbolt 端口。这样,显示器就会连接到 Intel DisplayPort,这在您使用 NVIDIA GPU 和使用 Intel GPU(例如 Bumblebee)时都可以工作。