我有一台新笔记本电脑联想 Ideapad l340。我安装了 ubuntu 19.04,但无法连接外部 HDMI 显示器。有人能帮我确定是笔记本电脑的问题还是 ubuntu 的问题吗?
我的 xrandr
eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 60.03*+ 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
串行通信
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device a368 (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Device a369 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Device a353 (rev 10)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port 9 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port (rev f0)
00:1d.5 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port (rev f0)
00:1e.0 Communication controller: Intel Corporation Device a328 (rev 10)
00:1f.0 ISA bridge: Intel Corporation Device a30d (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1f91 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10fa (rev a1)
06:00.0 Non-Volatile memory controller: Sandisk Corp Device 5005 (rev 01)
07:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
修改
rfcomm 77824 4
ccm 20480 6
cmac 16384 1
bnep 24576 2
snd_hda_codec_realtek 114688 1
snd_hda_codec_generic 77824 1 snd_hda_codec_realtek
ledtrig_audio 16384 2 snd_hda_codec_generic,snd_hda_codec_realtek
nvidia_uvm 831488 0
arc4 16384 2
snd_hda_codec_hdmi 53248 2
intel_rapl 24576 0
x86_pkg_temp_thermal 20480 0
intel_powerclamp 20480 0
coretemp 20480 0
nvidia_drm 45056 5
nvidia_modeset 1085440 1 nvidia_drm
nls_iso8859_1 16384 1
snd_soc_skl 106496 0
snd_soc_hdac_hda 24576 1 snd_soc_skl
snd_hda_ext_core 28672 2 snd_soc_hdac_hda,snd_soc_skl
snd_soc_skl_ipc 65536 1 snd_soc_skl
kvm_intel 241664 0
snd_soc_sst_ipc 20480 1 snd_soc_skl_ipc
snd_soc_sst_dsp 36864 1 snd_soc_skl_ipc
snd_soc_acpi_intel_match 28672 1 snd_soc_skl
snd_soc_acpi 16384 2 snd_soc_acpi_intel_match,snd_soc_skl
snd_soc_core 233472 2 snd_soc_hdac_hda,snd_soc_skl
snd_compress 24576 1 snd_soc_core
ac97_bus 16384 1 snd_soc_core
snd_pcm_dmaengine 16384 1 snd_soc_core
nvidia 17604608 260 nvidia_uvm,nvidia_modeset
snd_hda_intel 40960 4
snd_hda_codec 131072 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda
snd_hda_core 86016 8 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_soc_hdac_hda,snd_soc_skl
snd_hwdep 20480 1 snd_hda_codec
i915 1814528 3
snd_pcm 102400 8 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_soc_core,snd_soc_skl,snd_hda_core,snd_pcm_dmaengine
snd_seq_midi 20480 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 36864 1 snd_seq_midi
kvmgt 28672 0
vfio_mdev 16384 0
mdev 24576 2 kvmgt,vfio_mdev
vfio_iommu_type1 28672 0
ath10k_pci 40960 0
snd_seq 69632 2 snd_seq_midi,snd_seq_midi_event
vfio 32768 3 kvmgt,vfio_mdev,vfio_iommu_type1
ath10k_core 434176 1 ath10k_pci
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
kvm 626688 2 kvmgt,kvm_intel
btusb 49152 0
crct10dif_pclmul 16384 1
snd_timer 36864 2 snd_seq,snd_pcm
ath 36864 1 ath10k_core
btrtl 20480 1 btusb
crc32_pclmul 16384 0
btbcm 16384 1 btusb
mac80211 806912 1 ath10k_core
btintel 24576 1 btusb
ghash_clmulni_intel 16384 0
irqbypass 16384 1 kvm
drm_kms_helper 180224 2 nvidia_drm,i915
snd 81920 21 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_rawmidi
bluetooth 557056 31 btrtl,btintel,btbcm,bnep,btusb,rfcomm
aesni_intel 372736 6
drm 475136 8 drm_kms_helper,nvidia_drm,i915
ipmi_devintf 20480 0
input_leds 16384 0
ipmi_msghandler 102400 2 ipmi_devintf,nvidia
processor_thermal_device 16384 0
aes_x86_64 20480 1 aesni_intel
i2c_algo_bit 16384 1 i915
crypto_simd 16384 1 aesni_intel
cryptd 24576 3 crypto_simd,ghash_clmulni_intel,aesni_intel
fb_sys_fops 16384 1 drm_kms_helper
glue_helper 16384 1 aesni_intel
intel_cstate 20480 0
uvcvideo 98304 0
syscopyarea 16384 1 drm_kms_helper
mei_me 40960 0
joydev 24576 0
intel_rapl_perf 16384 0
idma64 20480 0
cfg80211 671744 3 ath,mac80211,ath10k_core
intel_wmi_thunderbolt 20480 0
wmi_bmof 16384 0
serio_raw 20480 0
sysfillrect 16384 1 drm_kms_helper
8250_dw 20480 0
ecdh_generic 28672 2 bluetooth
soundcore 16384 1 snd
mei 102400 1 mei_me
sysimgblt 16384 1 drm_kms_helper
virt_dma 20480 1 idma64
intel_soc_dts_iosf 20480 1 processor_thermal_device
intel_pch_thermal 16384 0
mac_hid 16384 0
ideapad_laptop 36864 0
sparse_keymap 16384 1 ideapad_laptop
int3403_thermal 16384 0
int340x_thermal_zone 16384 2 int3403_thermal,processor_thermal_device
int3400_thermal 20480 0
acpi_tad 16384 0
acpi_thermal_rel 16384 1 int3400_thermal
acpi_pad 184320 0
sch_fq_codel 20480 2
parport_pc 40960 0
ppdev 24576 0
lp 20480 0
parport 53248 3 parport_pc,lp,ppdev
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 45056 2
xfs 1232896 2
libcrc32c 16384 1 xfs
hid_rmi 24576 0
rmi_core 77824 1 hid_rmi
videobuf2_vmalloc 20480 2 rmi_core,uvcvideo
videobuf2_memops 20480 1 videobuf2_vmalloc
videobuf2_v4l2 24576 2 rmi_core,uvcvideo
videobuf2_common 49152 3 rmi_core,videobuf2_v4l2,uvcvideo
videodev 200704 4 rmi_core,videobuf2_v4l2,uvcvideo,videobuf2_common
media 53248 4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
hid_generic 16384 0
nvme 40960 3
r8169 81920 0
ahci 40960 0
realtek 20480 0
i2c_i801 32768 0
nvme_core 94208 5 nvme
intel_lpss_pci 20480 0
libahci 32768 1 ahci
i2c_hid 28672 0
intel_lpss 16384 1 intel_lpss_pci
hid 126976 3 i2c_hid,hid_generic,hid_rmi
wmi 28672 3 intel_wmi_thunderbolt,wmi_bmof,ideapad_laptop
pinctrl_cannonlake 36864 0
video 45056 2 ideapad_laptop,i915
pinctrl_intel 28672 1 pinctrl_cannonlake
编辑:第二台显示器可以正常工作,直到我设置options nvidia-drm modeset=1
nvidia-drm 内核模块选项。但是,直到选项为 0 时,我才会出现屏幕撕裂的情况
答案1
Lenovo Ideapad L340 具有多路复用图形配置,这意味着笔记本电脑屏幕输出(您的eDP-1-1
来自xrandr
)连接到集成 Intel 卡,而 HDMI 输出连接到 NVIDIA 卡。一切默认通过 Intel 运行。如果您运行xrandr --listproviders
,您可能只会获得一个提供商(Intel,而不是 NVIDIA)。因此您看不到 HDMI 端口,因为 xrandr 根本看不到 NVIDIA 显示提供商(尽管已加载 nvidia 模块)。
回答你的问题is it issue of the laptop or OS
:两者皆有,你的笔记本电脑的设计方式使得它不容易连接到 HDMI 端口。此外,L340 在 BIOS 中没有 GPU 开关,这可能是最快的解决方案。另一方面,Linux 也没有提供解决这个问题的简单方法。
可能的解决方案:
- 如果您使用 bumblebee,请查看此多显示器设置(部分
intel-video-output
可能有用。它应该创建一个发送给 NVIDIA 的虚拟显示器):https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup - 如果你不介意只使用 NVIDIA,你可以使用 PRIME / GPU 卸载 / Reverse Prime (https://wiki.archlinux.org/index.php/PRIME#Reverse_PRIME)。它基本上绕过了英特尔卡(取决于您选择的方法)
- 由于 BIOS 中没有禁用英特尔卡的选项,您可以尝试使用
vga_switcheroo
,它可以动态禁用英特尔卡并在所有功能上使用 NVIDIA,但我不确定您的型号是否支持它:https://help.ubuntu.com/community/HybridGraphics
如果您通过任何方法取得成功或者在其他地方找到解决方案,请告诉我。
编辑:选项 2 对我来说有效xorg.conf
我有同样的笔记本电脑,使用 NVIDIA 专有驱动程序并按照说明设置文件这里。为了使其工作,我必须在示例文件的第 3 行替换Screen 0
为。Screen 1
xorg.conf