How can I use a second monitor via HDMI port?

I am a total newbie but I am really enjoying Manjaro. For the past hour I have been trying to figure out how to enable my HDMI port & I am very confused. I think I am missing something very fundamental or basic…

I have a dell xps 5690, have been running Manjaro-KDE for a couple of month.

Today, I decided to purchase an hdmi cable to hook up my laptop to a second monitor.

However the monitor can’t detect any signal on that line.

I am using the prime driver:

  > INSTALLED:

   NAME:        video-hybrid-intel-nvidia-450xx-prime
   ATTACHED:    PCI
   VERSION:     2019.10.25
   INFO:        Hybrid prime solution for NVIDIA Optimus Technology - Closed source NVIDIA driver & open source intel driver.
   PRIORITY:    17
   FREEDRIVER:  false
   DEPENDS:     video-modesetting 
   CONFLICTS:   video*nvidia-* 
   CLASSIDS:    0300 0302 0300 
   VENDORIDS:   10de 8086 

And the graphic section of xini reports:

Graphics:  Device-1: Intel HD Graphics 630 vendor: Dell driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:591b 
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Mobile] vendor: Dell driver: nvidia v: 450.66 bus ID: 01:00.0 
           chip ID: 10de:1c8d 
           Device-3: Sunplus Innovation Integrated_Webcam_HD type: USB driver: uvcvideo bus ID: 1-12:5 chip ID: 1bcf:2b95 
           Display: x11 server: X.Org 1.20.8 compositor: kwin_x11 driver: modesetting,nvidia 
           alternate: fbdev,intel,nouveau,nv,vesa s-res: 3840x2160 s-dpi: 96 
           OpenGL: renderer: Mesa Intel HD Graphics 630 (KBL GT2) v: 4.6 Mesa 20.1.6 direct render: Yes 

Is there anyway, I can enable the hdmi port?

do you mean you want to mirror your laptop screen?

Oh good point - I did not clarify that…

I prefer to extend the laptop so that I have 2 displays, for example browse on display 1 and code on display 2.

However, if that is impossible then at the very least it would be nice to mirror the screen, since my external monitor is larger

Thanks!

did you try going to system setting, hardware and checking displays? if not you can try connect the other monitor and the then login out and then back in ( I had the same issue once).

From memory I think this is not supported with Prime, you should do a ‘reverse Prime’ so that Nvidia is the main card and you can fallback to the integrated GPU (Prime does the opposite, you use the integrated GPU and can fall back to the Nvidia GPU on demand).

I would search for more info about reverse Prime so it may shed more light on the topic.

EDIT:

Also searching this forum here can be a good start too :wink:

1 Like

You may have to make the NVidia card the default GPU as previous poster said. That’s what happened with my laptop setup since the HDMI and DP ports both are connected to the NVidia card so if you default to Intel, they remain disabled. Unfortunately, the feature for the offload sink, if my memory serves, is a recent feature in 450 drivers so it’s not yet been scripted to automatically work so you’ll have to use the Reverse PRIME option for now.

OK, interesting looks like I need to learn about

  • xorg.conf etc
  • Reverse_PRIME
  • Chapter 33 Offloading Graphics Displays

Before I get into all of that, what would happen if as a short term solution:

  • I uninstalled video-hybrid-intel-nvidia-450xx-prime
  • installed video-nvidia-450xx

would that do the job? Would that enable that hdmi port at the cost of having my laptop run hot and use a lot of power? Is that advisable even for a short term (let’s say few days of constant use)?

I don’t know but I don’t think it is that simple, as your hardware is not ‘normal’ in a laptop with dual GPU. There is probably a solution, that you would probably find by following the post I linked.

OK, got it. Thank you.

I will need to study a few things…I have found that if I just c/p I get deeper into trouble :sweat_smile:

Once I get started, I will follow up with questions.

Thx very much for setting me on the right path.

Whats the output of

glxinfo | grep “OpenGL version”

and

prime-run glxinfo | grep “OpenGL version”

The 450 drivers works connecting the HDMI port automatically,i don’t think you need to setup anything really,i have a 1050 ti and can output with the HDMI

It depends wether the port is connected to the Nvidia card or not I think.

The easy solution would be to go full nVidia:

  • Log off

  • Switch to TTY2 by pressing Ctrl+Alt+F2

  • Log in there

  • Execute:

    mhwd --listinstalled
    sudo mhwd --remove pci EveryLineThatCameUpAbove
    sudo mhwd --remove pci OneByOne
    sudo mhwd --install pci video-nvidia-440xx
    sudo reboot
    

Done!

:innocent:

Here is the info you requested

glxinfo | grep "OpenGL version"
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.1.6

prime-run glxinfo | grep "OpenGL version"
OpenGL version string: 4.6.0 NVIDIA 450.66

My laptop is Dell xps 9560

Thank you I will sometime study a few things, try the reverse prime, if that doesn’t work I will go full Nvidia.

Is that what you’ve done? have you found that your laptop is running hotter or uses more battery?

1 Like

Not hotter if I don’t game and if I do game, it’s the same before and after.¹

I didn’t collect specific data, so the only thing I can say is: It doesn’t feel any different compared to back when I moved over…

Note 1: if I use a game that actually uses the GPU. Pacman and Mahjongg don’t, so there’s no difference there! :stuck_out_tongue_winking_eye: :crazy_face:

The steps are detailed here in chapter 33 as you said, it should be a painless process. However, there are still some issues. I personally recommend the hybrid setup + optimus-manager.

Thanks for sharing your experience! I will update later.

I did try the reverse-prime approach, after reading a few things about xorg, etc. I didn’t have much luck as I will explain bellow. But before I even get started, I find it strange that I don’t even have xrandr installed (I am using Manjaro KDE).

Anyway…after deploying the config and rebooting I got a blank screen on my laptop, and had to use a secondary session to remove the config file and reboot.

Here is the config I used:

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Checking the xorg.logs i see something interesting. I see 2 log files (xorg.0.log.old, xorg.0.log), the old file is short and ends with an exception, the newer log file seems to complete successfully.

The exception in xorg.0.log.old is as follows

[     8.038] (II) Unloading modesetting
[     8.038] (II) Failed to load module "modesetting" (already loaded, 0)
[     8.054] (II) modeset(G0): using drv /dev/dri/card1
[     8.055] (==) modeset(G0): Depth 24, (==) framebuffer bpp 32
[     8.055] (==) modeset(G0): RGB weight 888
[     8.055] (==) modeset(G0): Default visual is TrueColor
[     8.055] (II) Loading sub module "glamoregl"
[     8.055] (II) LoadModule: "glamoregl"
[     8.055] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[     8.073] (II) Module glamoregl: vendor="X.Org Foundation"
[     8.073] 	compiled for 1.20.8, module version = 1.0.1
[     8.073] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     8.368] (II) modeset(G0): glamor X acceleration enabled on Mesa Intel(R) HD Graphics 630 (KBL GT2)
[     8.368] (II) modeset(G0): glamor initialized
[     8.370] (II) modeset(G0): Output eDP-1-1 has no monitor section
[     8.370] (II) modeset(G0): Output DP-1-1 has no monitor section
[     8.373] (II) modeset(G0): Output HDMI-1-1 has no monitor section
[     8.373] (II) modeset(G0): Output DP-1-2 has no monitor section
[     8.377] (II) modeset(G0): Output HDMI-1-2 has no monitor section
[     8.385] (==) modeset(G0): Using gamma correction (1.0, 1.0, 1.0)
[     8.385] (==) modeset(G0): DPI set to (96, 96)
[     8.385] (II) Loading sub module "fb"
[     8.386] (II) LoadModule: "fb"
[     8.386] (II) Loading /usr/lib/xorg/modules/libfb.so
[     8.386] (II) Module fb: vendor="X.Org Foundation"
[     8.386] 	compiled for 1.20.8, module version = 1.0.0
[     8.386] 	ABI class: X.Org ANSI C Emulation, version 0.4
[     8.386] (EE) 
[     8.386] (EE) Backtrace:
[     8.386] (EE) 0: /usr/lib/Xorg (xorg_backtrace+0x53) [0x5599237ffac3]
[     8.386] (EE) 1: /usr/lib/Xorg (0x5599236b9000+0x151905) [0x55992380a905]
[     8.386] (EE) 2: /usr/lib/libc.so.6 (0x7fa9e9412000+0x3d6a0) [0x7fa9e944f6a0]
[     8.386] (EE) 3: /usr/lib/libc.so.6 (gsignal+0x145) [0x7fa9e944f615]
[     8.386] (EE) 4: /usr/lib/libc.so.6 (abort+0x116) [0x7fa9e9438862]
[     8.386] (EE) 5: /usr/lib/libc.so.6 (0x7fa9e9412000+0x26747) [0x7fa9e9438747]
[     8.386] (EE) 6: /usr/lib/libc.so.6 (0x7fa9e9412000+0x35bf6) [0x7fa9e9447bf6]
[     8.386] (EE) 7: /usr/lib/Xorg (dixRegisterPrivateKey+0x0) [0x55992374e960]
[     8.386] (EE) 8: /usr/lib/xorg/modules/libglamoregl.so (glamor_init+0xc9) [0x7fa9e4072fb9]
[     8.386] (EE) 9: /usr/lib/xorg/modules/drivers/modesetting_drv.so (0x7fa9e95ed000+0x1403d) [0x7fa9e960103d]
[     8.386] (EE) 10: /usr/lib/Xorg (AddGPUScreen+0x10e) [0x55992373243e]
[     8.386] (EE) 11: /usr/lib/Xorg (0x5599236b9000+0x185749) [0x55992383e749]
[     8.386] (EE) 12: /usr/lib/Xorg (0x5599236b9000+0x1baa68) [0x559923873a68]
[     8.386] (EE) 13: /usr/lib/Xorg (0x5599236b9000+0x1bad0b) [0x559923873d0b]
[     8.386] (EE) 14: /usr/lib/Xorg (InitInput+0xf5) [0x559923823f75]
[     8.386] (EE) 15: /usr/lib/Xorg (0x5599236b9000+0x39798) [0x5599236f2798]
[     8.386] (EE) 16: /usr/lib/libc.so.6 (__libc_start_main+0xf2) [0x7fa9e943a152]
[     8.386] (EE) 17: /usr/lib/Xorg (_start+0x2e) [0x5599236f35de]
[     8.386] (EE) 
[     8.386] (EE) 
Fatal server error:
[     8.386] (EE) Caught signal 6 (Aborted). Server aborting
[     8.386] (EE) 
[     8.386] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[     8.386] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[     8.386] (EE) 
[     8.441] (EE) Server terminated with error (1). Closing log file.

Not sure if any of this is helpful information…

What you did is not the reverse PRIME approach. You should’ve copied the config that has “AllowNVIDIAGPUScreens” in it. I recommend you specify “BusID” for both “Device” sections. Use lspci to find the PCI bus IDs.

I also tried full nvidia option, i did not get any signal on the monitor.

mhwd --listinstalled
> Installed PCI configs:
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-nvidia-450xx 2019.10.25 false PCI

Warning: No installed USB configs!