Nvidia X server Settings not loading options to change gpu, upon plugging in external monitor

Hello,
I’m very new to Manjaro and Linux in general, and i’ve been suffering from weird driver problems. All the drivers for the hardware seems to be installed, but the Nvidia x server settings interface seems to be quite different on my laptop. It looks like this: [given below or in next post]

After running mhwd -la, to check out the installed drivers,
> All PCI configs:
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
network-slmodem 2013.12.07 true PCI
network-rt3562sta 2013.12.07 true PCI
network-broadcom-wl 2018.10.07 true PCI
network-r8168 2016.04.20 true PCI
video-nvidia-450xx 2019.10.25 false PCI
video-vesa 2017.03.12 true PCI
video-openchrome 2020.01.18 true PCI
video-hybrid-intel-nvidia-450xx-prime 2019.10.25 false PCI
video-hybrid-amd-nvidia-435xx-prime 2019.10.25 false PCI
video-hybrid-intel-nvidia-430xx-bumblebee 2019.10.25 false PCI
video-hybrid-intel-nvidia-440xx-prime 2019.10.25 false PCI
video-s3 2020.01.18 true PCI
video-sisusb 2020.01.18 true PCI
video-linux 2018.05.04 true PCI
video-nvidia-340xx 2019.10.25 false PCI
video-hybrid-intel-nvidia-418xx-bumblebee 2019.10.25 false PCI
video-hybrid-intel-nvidia-435xx-prime 2019.10.25 false PCI
video-nvidia-418xx 2019.10.25 false PCI
video-hybrid-amd-nvidia-440xx-prime 2019.10.25 false PCI
video-rendition 2020.01.18 true PCI
video-nvidia-435xx 2019.10.25 false PCI
video-hybrid-amd-nvidia-450xx-prime 2019.10.25 false PCI
video-voodoo 2017.03.12 true PCI
video-nvidia-440xx 2019.10.25 false PCI
video-hybrid-intel-nvidia-390xx-bumblebee 2019.10.25 false PCI
video-modesetting 2020.01.13 true PCI
video-virtualmachine 2020.03.26 true PCI
video-hybrid-intel-nvidia-340xx-bumblebee 2019.10.25 false PCI
video-nvidia-430xx 2019.10.25 false PCI
video-nvidia-390xx 2019.10.25 false PCI

And upon running inxi -G:

Graphics:  Device-1: NVIDIA TU117M [GeForce GTX 1650 Ti Mobile] driver: nvidia v: 450.66 
           Device-2: Advanced Micro Devices [AMD/ATI] Renoir driver: amdgpu v: kernel 
           Device-3: IMC Networks USB2.0 HD UVC WebCam type: USB driver: uvcvideo 
           Display: x11 server: X.Org 1.20.9 driver: amdgpu,nvidia FAILED: ati unloaded: modesetting,nouveau 
           resolution: 1920x1080~144Hz 
           OpenGL: renderer: AMD RENOIR (DRM 3.38.0 5.8.11-1-MANJARO LLVM 10.0.1) v: 4.6 Mesa 20.1.8 

I just want to set the Nvidia hybrid prime driver to automatically select the dedicated gpu to handle the monitor connections, just like the Nvidia control panel in windows.

I understand this question might be very open ended, but i feel lost. I hope you can help me out.
thank you.

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.66       Driver Version: 450.66       CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce GTX 165...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   41C    P8     2W /  N/A |      6MiB /  3911MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                           
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       943      G   /usr/lib/Xorg                       4MiB |
+-----------------------------------------------------------------------------+

Unfortunately, that is not as easy as on Windows, especially so because you have an amd+nvidia configuration. Most tools are made for intel+nvidia configuration. optimus-manager has experimental support for AMD GPUs, you might want to try that. Follow this guide, but ignore step one, and run pamac build optimus-manager-amd-git instead. After completing the necessary steps, try running optimus-manager --switch nvidia (say yes when prompted). And you should be able to use the outputs of the Nvidia GPU.

By AMD gpu’s you mean integrated graphics of the processor? Quite unfortunate that AMD drivers are not bothered about [I guess Ryzens have’nt got so popular yet] . I referred to your anwsers here but i wasn’t able to find any of the files mentioned in those links you had given. Also, the link (guide) you have mentioned here, does not work. Can you post it again.
mach thanks.

Fixed the link.

Did everything in the guide plus referred to an extra video for a more updated refrence, also commented out the
DisplayCommand & DisplayStopCommand
And ran the service.
After roobting i got this as the output to systemctl status optimus-manger.service :

● optimus-manager.service - Optimus Manager Commands Daemon
     Loaded: loaded (/usr/lib/systemd/system/optimus-manager.service; enabled; vendor preset: disabled)
     Active: active (running) since Wed 2020-10-07 15:59:09 IST; 1min 17s ago
    Process: 852 ExecStartPre=/usr/bin/python3 -u -m optimus_manager.hooks.pre_daemon_start (code=exited, status=0/SUCCESS)
    Process: 907 ExecStartPre=/usr/bin/python3 -u -m optimus_manager.hooks.pre_xorg_start (code=exited, status=1/FAILURE)
   Main PID: 998 (python3)
      Tasks: 1 (limit: 8829)
     Memory: 33.4M
     CGroup: /system.slice/optimus-manager.service
             └─998 /usr/bin/python3 -u -m optimus_manager.daemon

Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[907]:     text = _make_intel_device_section(config, bus_ids, xorg_ext>
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[907]:   File "/usr/lib/python3.8/site-packages/optimus_manager/xorg.p>
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[907]:     text += "\tBusID \"%s\"\n" % bus_ids["intel"]
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[907]: KeyError: 'intel'
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[907]: [414] INFO: Removing /etc/X11/xorg.conf.d/10-optimus-manager.co>
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[907]: [414] INFO: Writing state {'type': 'pre_xorg_start_failed', 'sw>
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[998]: [2] INFO: # Commands daemon
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[998]: [2] INFO: Opening UNIX socket
Oct 07 15:59:10 faiz-tufgamingfa506iifa506ii python3[998]: [2] INFO: Awaiting commands
Oct 07 15:59:09 faiz-tufgamingfa506iifa506ii systemd[1]: Started Optimus Manager Commands Daemon.

Plus after running optimus-manager --switch nvidia

ERROR: the latest GPU setup attempt failed at Xorg pre-start hook.
Log at /var/log/optimus-manager/switch/switch-20201007T155909.log

Cannot execute command because of previous errors.

Plus i did build the optimus-manager-amd-git repo from pamac GUI , Also i did install optimus-manager-qt from the AUR, Did that cause those problems?

Thanks

Upon inspecting the contents of the log,

[22] INFO: # Xorg pre-start hook
[22] INFO: Previous state was: {'type': 'pending_pre_xorg_start', 'requested_mode': 'intel', 'current_mode': None}
[22] INFO: Requested mode is: intel
[22] INFO: Checking for GDM display servers
[377] INFO: Available modules: ['nouveau', 'nvidia', 'nvidia_drm', 'nvidia_modeset', 'nvidia_uvm']
[377] INFO: Unloading modules ['nvidia_drm', 'nvidia_modeset', 'nvidia_uvm', 'nvidia'] (if loaded)
[412] INFO: Loaded extra Intel Xorg options (0 lines)
[413] INFO: Loaded extra Intel Xorg options (0 lines)
[413] ERROR: Xorg pre-start setup error
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/optimus_manager/hooks/pre_xorg_start.py", line 46, in main
    configure_xorg(config, requested_mode)
  File "/usr/lib/python3.8/site-packages/optimus_manager/xorg.py", line 23, in configure_xorg
    xorg_conf_text = _generate_intel(config, bus_ids, xorg_extra)
  File "/usr/lib/python3.8/site-packages/optimus_manager/xorg.py", line 150, in _generate_intel
    text = _make_intel_device_section(config, bus_ids, xorg_extra)
  File "/usr/lib/python3.8/site-packages/optimus_manager/xorg.py", line 218, in _make_intel_device_section
    text += "\tBusID \"%s\"\n" % bus_ids["intel"]
KeyError: 'intel'
[414] INFO: Removing /etc/X11/xorg.conf.d/10-optimus-manager.conf (if present)
[414] INFO: Writing state {'type': 'pre_xorg_start_failed', 'switch_id': '20201007T155909', 'requested_mode': 'intel'}

is that key error ‘intel’ because of installation of optimus-manager-qt ? Does it override the amd optimus manger config?

Maybe, optimus-manager-qt does not support the AMD version, yet. Please remove it for the time being. Then open /etc/optimus-manager/optimus-manager.conf and set

startup_mode=hybrid

adn reboot.

Yeah I did uninstall optimus-manager-qt and reinstall the optimus-manager-amd-git package and did all the necessary configurations. But what i found out after successfully running the service is that there is no driver SEPARATELY installed for the nvidia card. That’s why its not able to separately funnel the frames from gpu. When i ran
optimus-manager --switch nvidia
and checked if it had restarted the Xorg session with nvidia by entering
glxinfo | grep -i vendor
I still found it to be running off of SGI .

So logically i went ahead and tried to install the driver separately for the discrete graphics gpu i.e. video-nvidia-45xx, [not the hybrid one doing PRIME offloading video-hybrid-amd-nvidia-45xx] , so that i can do the switching from optimus manager. Then i found out that it cannot be done, since it conflicts with the hybrid driver.
At this point it’s just been too much time wasted behind this, So i’m kinda giving up, until nvidia does something.

Thank you so much @pobrn

Screenshot_20201007_201827

No. video-hybrid-amd-nvidia-45xx is what you want, not video-nvidia-450xx. Please run pacman -Qqs nvidia-450xx. Furthermore, what happens if you run optimus-manager --switch integrated?

1 Like