You are not logged in.
I have a laptop with both an intel and a Nvidia graphics card. The Nvidia does have some ports connected to it which are only accessable through the Nvidia card.
I use the https://wiki.archlinux.org/index.php/PRIME setup with closed-source drivers.
When I connect a TV to the displayport output, the following shows up in /var/log/Xorg.0.log:
[ 286.478] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[ 286.478] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[ 286.478] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[ 286.478] (--) NVIDIA(GPU-0):
[ 306.949] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[ 306.949] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[ 306.949] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[ 306.949] (--) NVIDIA(GPU-0):
[ 307.059] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[ 307.059] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[ 307.059] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[ 307.059] (--) NVIDIA(GPU-0):
[ 307.511] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[ 307.511] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[ 307.511] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[ 307.511] (--) NVIDIA(GPU-0):
[ 307.621] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[ 307.621] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[ 307.621] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[ 307.621] (--) NVIDIA(GPU-0):
[ 455.355] (--) NVIDIA(GPU-0): DFP-0: disconnected
[ 455.355] (--) NVIDIA(GPU-0): DFP-0: Internal TMDS
[ 455.355] (--) NVIDIA(GPU-0): DFP-0: 340.0 MHz maximum pixel clock
[ 455.355] (--) NVIDIA(GPU-0):
[ 458.352] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): connected
[ 458.352] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): Internal TMDS
[ 458.352] (--) NVIDIA(GPU-0): SAMSUNG (DFP-0): 340.0 MHz maximum pixel clock
[ 458.352] (--) NVIDIA(GPU-0): So, it seems to work. But xrandr does not seem to want to find it:
$ xrandr --listmonitors
Monitors: 1
0: +*eDP1 1920/340x1080/190+0+0 eDP1Moreover, xrandr seems to think that there are no outputs on the Nvidia GPU at all:
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x46 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 3 associated providers: 0 name:Intel
Provider 1: id: 0x321 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0The Reverse PRIME trick also does not work:
$ xrandr --setprovideroutputsource NVIDIA-G0 Intel
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 35 (RRSetProviderOutputSource)
Value in failed request: 0x321
Serial number of failed request: 16
Current serial number in output stream: 17So, what is going on here? And how can I fix it?
Offline
The Nvidia driver can't share its outputs. You will have to turn your setup around and run your desktop on your Nvidia GPU instead of the Intel GPU. This is the only way to get access to the output that's wired to the Nvidia GPU. You then make the Intel GPU share its eDP1 connector instead of the Nvidia GPU share its monitor connector.
From what I could see, the easiest way to get things working is a tool "optimus-manager":
Offline