HDMI Not Working After Switching to Wayland on Nvidia+Intel GPU Laptop

Hello everyone,

Lately I switched to Wayland on my laptop following this guide.

https://forum.manjaro.org/t/howto-use-wayland-with-propietary-nvidia-drivers/36130/6

However I noticed that my HDMI port no longer works. Would someone help me to diagnose the issue?
inxi -G outputs:

Graphics:  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] driver: i915 v: kernel
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] driver: nvidia v: 495.44
           Device-3: IMC Networks USB2.0 VGA UVC WebCam type: USB driver: uvcvideo
           Display: wayland server: X.org 1.21.1.1 driver: loaded: modesetting unloaded: nvidia
           resolution: <missing: xdpyinfo>
           OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa 21.2.5

nvidia-smi output:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.44       Driver Version: 495.44       CUDA Version: 11.5     |
|-------------------------------+----------------------+----------------------+
| 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 Off |                  N/A |
| N/A   38C    P8    N/A /  N/A |      3MiB /  4040MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1359      G   /usr/bin/gnome-shell                1MiB |
+-----------------------------------------------------------------------------+

Hello @ahalol :wink:

  1. On laptops with hybrid cards the outputs are mostly hard wired to the dGPU and have no connection to the iGPU. Therefore (roughly saying) it is needed to create a sink which will passthrough the screen over the CPU, what does not seem to be implemented in xwayland for now.
  2. At the stage of my knowledge, xwayland does not support having 2 GPUs for displaying. So you have to use the iGPU or dGPU, while offloading should work.

So to be clear: If you need the HDMI output, then you have to use the Nvidia card alone and disable the Intel one. Also you need to be sure, that nvidia is set to modesetting.

Thank you for the reply.

However, could you shine some lights for me how I can disable the intel one? My laptop does not have a MUX switch and if the internal screen is connected to intel GPU, it seems there’s no way to do this?

If I am not wrong, then blacklisting the intel module should disable it…

Just for temporary testing, do this:

  1. Boot up to the grub menu and edit with E the entry.
  2. Add at line of linux at the end modprobe.blacklist=i915
  3. Type F10 to boot.

Now it will skip the intel driver on boot and the nvidia driver should take place.

For a permanent solution have a look at this section: https://wiki.archlinux.org/title/Kernel_module#Blacklisting

I tried your method and the “install” command in the link. Your method doesn’t seem to have an effect as the module is still loaded. I think this may due to the intel driver is required for the hybrid graphics to work. the install function will simply fail to boot to login screen.

Another way I thought maybe I can workaround is to login to a Xorg session. However, when I un-comment /etc/gdm/custom.conf

WaylandEnable=false

my gdm will not load properly. There will be only a flashing underscore on the top left of the screen. Would you have any idea why this took place?

Just an advice: Stay on hybrid gpus on xorg, since wayland is not fully ready for that. Undo every change and stay on default settings.

If the HDMI output does not work on xorg then have a look at this example:

20-reverse-prime.conf should use the nvidia primary and passthrough the screen to the iGPU.

This way, you should have access to the HDMI output.

:warning: You need to change radeon to intel and replace the BusID with yours.