RTX 3060 laptop + Ubuntu 20.04: unable to detect internal monitor

I have a new MSI GE76 Raider laptop with fresh installed Ubuntu 18.04 and upgraded to Ubuntu 20.04.

After installed Nvidia drivers v470.86 on Ubuntu 18.04, the system can’t detect the internal display. The GUI only worked on the external monitor. The internal display can only be switched on with CTRL + ALT + F5 hot-key(the external display is OFF, when the internal display on console)

The following post suggested the kernel is too old to support the Intel iGPU, so I upgraded it to Ubuntu 20.04

So far, it only detect the external monitor, not the internal display.

lcpci shows 2 VGA devices

$ lspci |grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Device 9a60 (rev 01)
01:00.0 VGA compatible controller: NVIDIA Corporation Device 2520 (rev a1)

xrandr only show one provider

$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x1b8 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 0 name:NVIDIA-0

output of nvidia-smi

$ sudo nvidia-smi

Mon Dec 20 10:32:33 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.86       Driver Version: 470.86       CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
| N/A   38C    P8     9W /  N/A |    433MiB /  5946MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1110      G   /usr/lib/xorg/Xorg                 35MiB |
|    0   N/A  N/A      1751      G   /usr/lib/xorg/Xorg                149MiB |
|    0   N/A  N/A      1918      G   /usr/bin/gnome-shell               30MiB |
|    0   N/A  N/A      2926      G   /usr/lib/firefox/firefox          195MiB |
|    0   N/A  N/A      3181      G   /usr/lib/firefox/firefox            2MiB |
|    0   N/A  N/A      3605      G   gnome-control-center                2MiB |
|    0   N/A  N/A      3739      G   /usr/lib/firefox/firefox            2MiB |
|    0   N/A  N/A      4077      G   /usr/bin/nvidia-settings            0MiB |
+-----------------------------------------------------------------------------+

And the bug report is here:
nvidia-bug-report.log.gz (361.9 KB)

If I switch back to original “xserver-xorg-video-nouveau” driver, it detect the internal display, not the external display.

Problem solved by installing Intel driver.

Both monitors are working now

$ inxi -G
Graphics:
  Device-1: Intel driver: i915 v: kernel 
  Device-2: NVIDIA driver: nvidia v: 470.86 
  Display: x11 server: X.Org 1.20.13 driver: modesetting,nvidia 
  resolution: 1920x1080~60Hz, 1920x1080~144Hz 
  OpenGL: renderer: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2 
  v: 4.6.0 NVIDIA 470.86 

$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x1b8 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x200 cap: 0x6, Sink Output, Source Offload crtcs: 4 outputs: 3 associated providers: 1 name:modesetting

Huh. If you followed that post then you updated the kernel to a newer version rather than installing a driver (which makes sense as newer Intel GPUs work fine with modesetting).

The OEM kernel probably isn’t the correct choice there - it should likely be the HWE kernel. :thinking: