Changing GPU to Nvidia

@Valexius As @soundofthunder stated, we need that info to help you.

Generally speaking, I have found that on laptops with nvidia cards the following seems to work for me every time, mileage will vary.

  • Install the Nvidia Drivers using Manjaro-Settings-Manager … reboot
  • Install optimus-manager & bbswitch … reboot
  • Install switcheroo-control
  • Enable switcheroo-control by running sudo systemctl enable --now switcheroo-control
  • Edit /etc/mkinitcpio.conf and add nvidia to the modules array:
    sudo nano /etc/mkinitcpio.conf

edit the MODULES=() array and add nvidia, nvidia_modeset, nvidia_uvm and nvidia_drm should look like this:

MODULES=(intel nvidia nvidia_modeset nvidia_uvm nvidia_drm)

plus any other modules that may be there. This should not be needed, but it will ensure that these modules are loaded and at the correct time.

Then you must run : sudo mkinitcpio -P to rebuild the initial ram file system then reboot

For laptops, I really recommend using the hybrid method, switch to hybrid by using the optimus-manager --switch hybrid command.

Now, with switcheroo installed, you should be able to right click on an application and select “Run with discrete GPU” option and only that application will be running on the Nvidia GPU. When the application is closed, the Nvidia GPU goes back to sleep mode, will save alot on battery.

If you want to run solely on the Nvidia, use the optimus-manager --switch nvidia command.

You can of course also use the optimus-manager-pt to graphically control things.
But I would not recomment setting it to “integrated” at all. For some reason, which I have not looked into much as to why, some systems get stuck in a loop, will not log in etc.

Hope this helps,

-John

1 Like

optimus-manager is hacky and requires hacky things (such as edits to your display manager)

bbswitch is bumblebee and bumblebee conflicts with prime, and no bbswitch package exists as written.

(unless you are stuck using an old 300-series nvidia driver you should not be using bumblebee)

No idea about switcheroo-control, but if its for bumblebee then it would be considered deprecated.

Looks like it may be deprecated one way or another. Because this is a 404:
https://developer.gnome.org/switcheroo-control/

If you must have a switching utility like optimus manager then at least use a reasonable one;

2 Likes

Well, these are a little dated… 2019(ish):

Both upstream links seem largely unattended; however, this one seems potentially more relevant:

Even so, that package has still not been updated since Jan 2023.

Hi @cscs

bbswitch is a kernel module which automatically detects the required ACPI calls for two kinds of Optimus laptops

It may have started out as a Bumblebee project, but it absolutely works with Prime. In fact, if you use Optimus-manager-qt, it is one of 3 or 4 ACPI call switches you can choose from, so this is not correct. bbswitch’s github page even specifically states that it has been tested with Prime.

As for switcheroo-control, I was not aware of envycontrol for Gnome users or Optimus GPU Switcher for KDE, good to know! :+1:

Regardless, the above tutorial does work, and has a for a couple of years.

The only way I could find to get my dGPU to sleep, was with bbswitch (It was taking over 3W of power sitting there idle!) It is also an official Manjaro package, with corresponding kernel module. pacman -Si linux###-bbswitch

I expected my laptop to blow up when I installed that on top of prime. I did have multiple fallback plans, but still!

But again, I was only using it, to not use it. (That, and you have to fire up the dCPU before you put it back to sleep. Or the whole thing will not wake up again!)

If bbswitch works outside bumblebee great.

But it still does not work on PCI-E cards with modern kernels.

And is only one option to ‘fully power down dGPU’.

https://wiki.archlinux.org/title/Hybrid_graphics#Fully_power_down_discrete_GPU