Hello everyone,
I’m trying to get my Lenovo ThinkPad P52 (with NVIDIA QUADRO P1000 Mobile and Intel UHD Graphics 630) working using modesetting and the nvidia driver.
I’m currently using my Lenovo ThinkPad P52 with a Lenovo Thunderbolt Dock Gen 2 in combination with 2 external displays connected to DisplayPort and the xf86-video-intel driver (git version from a few weeks ago) using the intel-virtual-output utility, which was working fine.
I’m trying to migrate to the xf86-video-modesetting driver as the other xf86-video-intel is buggy and deprecated (I’m currently constantly switching between the 2 as I can only use the xf86-video-intel driver with external displays and the modesetting with the internal laptop screen, as the xf86-video-intel is giving me the regular graphical glitches and display corruption, as where the modesetting driver isn’t.
Unfortunately I’m having trouble getting this configuration to work with the modesetting driver.
I’m currently running kernel 5.3.11,xorg-server-1.20.6 (which contains all the commits for PRIME Render Offload functionality) and nvidia-drivers-440.31 with the latest firmware available for the laptop (I believe it’s 1.31). The Intel GPU is enabled as primary GPU (I can change the setting in the BIOS, but would like to use the iGPU due to power savings).
One other thing to note s that the external display outputs, are hardwired to the NVIDIA Graphics Card.
I’ve tried following the instructions according to Chapter 33. Offloading Graphics Display with RandR 1.4 and Chapter 34. PRIME Render Offload and the iGPU is working fine, but am unable to either use the nvidia graphics card or use the external displays attached to the Thunderbolt docking station when using modesetting.
I’ve tried adding nvidia-drm.modeset=1 to /etc/default/grub and regenerating my grub config file, but it doesn’t change anything, aside from a slight delay during boot and a few messages in dmesg regarding atomic mode failed to set. I’ve tried blacklisting bbswitch too, but that doesn’t resolve anything either and adding IgnoreABI didn’t either.
Could there be some other / additional configuration that I need?
My .conf xorg-server configuration file:
Section “ServerFlags”
Option “IgnoreABI” “1”
EndSection
Section “ServerLayout”
Identifier “layout”
Screen 0 “iGPU”
Option “AllowNVIDIAGPUScreens”
EndSection
Section “Device”
Identifier “iGPU”
Driver “modesetting”
BusID “PCI:00:02:00”
EndSection
Section “Screen”
Identifier “iGPU”
Device “iGPU”
EndSection
Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID "PCI:01:00:00
Endsection