[470.63.01] xorg.conf issue on Kali with multiple monitors and laptop display

Hey,
I have the following setup:

Kali: 2021.2
Nvidia driver: x86_64-470.63.01
GPU: GeForce RTX 2060 Mobile (rev a1)
Laptop: Legion 7 15IMH05

The issue is that I’m using a 4-monitor configuration (3 external monitors and the laptop’s display), but only the external ones are displaying anything, while the laptop display is black.

From what I’ve read it seems that using both laptop and external displays is something considered Optimus system and I should configure something called PRIME.

I tried replacing my xorg.conf with this one Official driver 384.59 with GeForce 1050m doesn't work on openSUSE Tumbleweed KDE - #2 by generix but X just crashes

The only thing that did something was removing xorg.conf at all and create a file called `/etc/X11/xorg.conf.d/20-nvidia-myoptions.conf, containing

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia"
    Driver "nvidia"
EndSection

as explained here PRIME display is not detected after generating xorg.conf file .
This did activate my laptop display, but however it disabled all of the 3 external monitors turning them black.

The following commands outputs as follows:

lspci | grep -i vga

00:02.0 VGA compatible controller: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05)
01:00.0 VGA compatible controller: NVIDIA Corporation TU106BM [GeForce RTX 2060 Mobile] (rev a1)

lspci -s 01:00.0

01:00.0 VGA compatible controller: NVIDIA Corporation TU106BM [GeForce RTX 2060 Mobile] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Lenovo TU106BM [GeForce RTX 2060 Mobile]
	Flags: bus master, fast devsel, latency 0, IRQ 190, IOMMU group 1
	Memory at a3000000 (32-bit, non-prefetchable) [size=16M]
	Memory at 6000000000 (64-bit, prefetchable) [size=256M]
	Memory at 6010000000 (64-bit, prefetchable) [size=32M]
	I/O ports at 4000 [size=128]
	Expansion ROM at a4080000 [virtual] [disabled] [size=512K]
	Capabilities: <access denied>
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia

xrandr --listproviders

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

xrandr --setprovideroutputsource NVIDIA-0
or (both outputs the same thing)
xrandr --setprovideroutputsource 0 0

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:  0x1b8
Serial number of failed request:  15
Current serial number in output stream:  16

/etc/X11/xorg.conf

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 470.63.01

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Any advice ?
Thank you

The same thing here :(

Basically, it should suffice to

  • delete any xorg.conf
  • set kernel parameter nvidia-drm.modeset=1
  • run xrandr --setprovideroutputsource NVIDIA-G0 modesetting && xrandr --auto after login