Hello,
First of all i apologize for my incompetence in this matter, i have no real experience with double GPU and i had joy-ride for a long time with Ubuntu too, so as simple user im a bit rusty when it comes to troubleshooting.
I have following setup:
sudo lspci | grep -i --color 'vga\|3d\|2d'
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Picasso (rev c2)
Secure boot is also disabled:
zeke@ZekeTheSinner:~$ mokutil --sb-state
SecureBoot disabled
Platform is in Setup Mode
Simply put, trying to run nvidia-settings ended with blank widow and following communicat in terminal:
zeke@ZekeTheSinner:~$ nvidia-settings
ERROR: Unable to load info from any available system
(nvidia-settings:4027): GLib-GObject-CRITICAL **: 06:58:25.914: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 06:58:25.918: PRIME: No offloading required. Abort
** Message: 06:58:25.918: PRIME: is it supported? no
Firstly i ignored it, but then when i tried to connect secondary monitor, it was not detected at all (no results in xrandr, nor in the “Displays” section in settings).
xrandr:
zeke@ZekeTheSinner:~$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 59.93*+ 39.99
1680x1050 59.93
1280x1024 59.93
1440x900 59.93
1280x800 59.93
1280x720 59.93
1024x768 59.93
800x600 59.93
640x480 59.93
Im using current nvidia 440 driver:
zeke@ZekeTheSinner:~$ sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.7/0000:04:00.0 ==
modalias : pci:v000010ECd0000C821sv00001A3Bsd00003041bc02sc80i00
vendor : Realtek Semiconductor Co., Ltd.
model : RTL8821CE 802.11ac PCIe Wireless Network Adapter
driver : rtl8821ce-dkms - distro free
== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd00001F91sv00001043sd0000109Fbc03sc00i00
vendor : NVIDIA Corporation
model : TU117M [GeForce GTX 1650 Mobile / Max-Q]
driver : nvidia-driver-440 - distro non-free recommended
driver : nvidia-driver-435 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
prime seemed to be working too:
zeke@ZekeTheSinner:~$ sudo prime-select query
nvidia
but:
zeke@ZekeTheSinner:~$ glxinfo | egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: X.Org
OpenGL renderer string: AMD RAVEN (DRM 3.35.0, 5.4.0-40-generic, LLVM 10.0.0)
nvidia-smi results:
zeke@ZekeTheSinner:~$ nvidia-smi
Wed Jul 8 07:02:11 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100 Driver Version: 440.100 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1650 Off | 00000000:01:00.0 Off | N/A |
| N/A 44C P0 4W / N/A | 0MiB / 3911MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
So, after a bit of research, i have found that option:
Add Option “PrimaryGPU” “true” inside the outputclass of
/usr/share/X11/xorg.conf.d/10-nvidia.conf
Out of desperation is decided to test it… and it worked (should it even work? is it not for intel + nvidia?)
so, after changes my /usr/share/X11/xorg.conf.d/10-nvidia.conf looked like this:
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "true"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg" EndSection
And rebooted the laptop. Worked like a charm, both xrandr and “Displays” detected second monitor. Everything was configurable.
zeke@ZekeTheSinner:~$ xrandr
Screen 0: minimum 8 x 8, current 2560 x 2160, maximum 32767 x 32767
HDMI-0 connected 2560x1080+0+0 (normal left inverted right x axis y axis) 673mm x 284mm
2560x1080 60.00*+
1920x1080 60.00 59.94 50.00
1680x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 59.94
640x480 75.00 59.94 59.93
eDP-1-0 connected primary 1920x1080+255+1080 (normal left inverted right x axis y axis) 344mm x 194mm
1920x1080 59.93*+ 39.99
1680x1050 59.93
1280x1024 59.93
1440x900 59.93
1280x800 59.93
1280x720 59.93
1024x768 59.93
800x600 59.93
640x480 59.93
glxinfo | egrep "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1650/PCIe/SSE2
nvidia-smi:
zeke@ZekeTheSinner:~$ nvidia-smi
Wed Jul 8 06:48:55 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100 Driver Version: 440.100 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1650 Off | 00000000:01:00.0 On | N/A |
| N/A 40C P8 2W / N/A | 431MiB / 3911MiB | 20% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 969 G /usr/lib/xorg/Xorg 187MiB |
| 0 1301 G /usr/bin/gnome-shell 136MiB |
| 0 3420 G ...AAAAAAAAAAAACAAAAAAAAAA= --shared-files 102MiB |
| 0 5976 G gnome-control-center 1MiB |
+-----------------------------------------------------------------------------+
nvidia-settings also is working, tho is still get the same message:
zeke@ZekeTheSinner:~$ nvidia-settings
(nvidia-settings:7427): GLib-GObject-CRITICAL **: 06:52:09.339: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 06:52:09.530: PRIME: No offloading required. Abort
** Message: 06:52:09.530: PRIME: is it supported? no
But new problem occured.
It only works IF second monitor is detected. If its not connected, during system booting display for short period of time (up to 20sec) looks like it has taken phisical damage, then goes black and freezes.
Connecting back second monitor fixes it. Removing the line from 10.nvidia and rebooting also fixes it.
What i take from this is that, Nvidia is not working at all while driver is installed and says its running (i assume HDMI is connected directly to nvidia GPU, so thats why its not working without this setting)? And that setting simply brute-forces nvidia to work?
Please advise.
Following bug report file was generated wouthout setting added.
nvidia-bug-report.log (1.8 MB)