Changing GPU to Nvidia

I recently have been trying Manjaro on my laptop because I want to migrate using Linux after so long. I’m currently trying to make sure that my NVIDIA RTX 3050 is being used as the main GPU, but I’ve followed steps on various threads to no avail, and what I see on those threads seem to be slightly different from what I’m seeing (to my limited understanding anyway).

Here’s an example of the installation log that I don’t seem to see on other threads:

(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating Kernel initcpios for Nvidia-DRM...
==> Building image from preset: /etc/mkinitcpio.d/linux66.preset: 'default'
==> Using default configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-6.6-x86_64 -g /boot/initramfs-6.6-x86_64.img
==> Starting build: '6.6.46-1-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [kms]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'xhci_pci'
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-6.6-x86_64.img'
  -> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux66.preset: 'fallback'
==> Using default configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-6.6-x86_64 -g /boot/initramfs-6.6-x86_64-fallback.img -S autodetect
==> Starting build: '6.6.46-1-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [kms]
==> WARNING: Possibly missing firmware for module: 'ast'
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'aic94xx'
==> WARNING: Possibly missing firmware for module: 'qla1280'
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'qed'
==> WARNING: Possibly missing firmware for module: 'bfa'
==> WARNING: Possibly missing firmware for module: 'qla2xxx'
==> WARNING: Possibly missing firmware for module: 'xhci_pci'
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-6.6-x86_64-fallback.img'
  -> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux69.preset: 'default'
==> Using default configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-6.9-x86_64 -g /boot/initramfs-6.9-x86_64.img
==> Starting build: '6.9.12-3-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [kms]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'xhci_pci'
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-6.9-x86_64.img'
  -> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux69.preset: 'fallback'
==> Using default configuration file: '/etc/mkinitcpio.conf'
  -> -k /boot/vmlinuz-6.9-x86_64 -g /boot/initramfs-6.9-x86_64-fallback.img -S autodetect
==> Starting build: '6.9.12-3-MANJARO'
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [kms]
==> WARNING: Possibly missing firmware for module: 'ast'
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: 'aic94xx'
==> WARNING: Possibly missing firmware for module: 'qla1280'
==> WARNING: Possibly missing firmware for module: 'wd719x'
==> WARNING: Possibly missing firmware for module: 'qed'
==> WARNING: Possibly missing firmware for module: 'bfa'
==> WARNING: Possibly missing firmware for module: 'qla2xxx'
==> WARNING: Possibly missing firmware for module: 'xhci_pci'
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [consolefont]
==> WARNING: consolefont: no font found in configuration
  -> Running build hook: [plymouth]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: '/boot/initramfs-6.9-x86_64-fallback.img'
  -> Early uncompressed CPIO image generation successful
==> Initcpio image generation successful
(4/4) Refreshing PackageKit...

Am I correct in thinking that the problem lies somewhere within this log?

What problem …
are you having / do you have?

Like I’ve stated, I’m trying to have my NVIDIA RTX 3050 GPU being used as the main GPU instead of the integrated Intel one, but following the steps I’ve seen on other threads didn’t help me.

in that case, I’m afraid that there is not nearly enough (system) information here to go on for anyone.

Can you see how that is not conveying any actionable information?

What I wanted to know for starter is that whether the log I provided contains the problem that prevented me from switching the graphics to NVIDIA and that I’m not sure what else to provide to really let anyone know as I’m still new to Linux overall.

It doesn’t - looks totally normal and fine.
It doesn’t contain anything about your system hardware or configuration.

When you registered, you got a supply of some recommended reading.
Read it.

We (people who want and can help here) need information about your system.

In that case, I don’t know if all of these will help, but this is what I’ve seen in other threads as well as from the reading I’ve been doing for the past few hours.

I’ve tried both optimus-manager optimus-manager-qt and used the latter and picked the option to switch to NVIDIA. Checking its status before rebooting shows the following:

A GPU switch from integrated to nvidia is pending.
Log out and log back in to apply.
Optimus Manager (Client) version 1.5
Current GPU mode : integrated
GPU mode requested for next login : nvidia
GPU at startup : integrated
Temporary config path: no

After rebooting it shows this:

Optimus Manager (Client) version 1.5
Current GPU mode : integrated
GPU mode requested for next login : no change
GPU at startup : integrated
Temporary config path: no

Running just sudo optimus-manager afterwards results in this:

Invalid arguments

I then tried sudo optimus-manager --switch nvidia and it results in the following:

which: no sv in (/usr/local/sbin:/usr/local/bin:/usr/bin)
which: no rc-status in (/usr/local/sbin:/usr/local/bin:/usr/bin)
which: no s6-svstat in (/usr/local/sbin:/usr/local/bin:/usr/bin)
/usr/bin/systemctl
WARNING : no power management option is currently enabled (this is the default since v1.2). Switching between GPUs will work but you will likely experience poor battery life.
Follow instructions at https://github.com/Askannz/optimus-manager/wiki/A-guide--to-power-management-options to enable power management.
which: no sv in (/usr/local/sbin:/usr/local/bin:/usr/bin)
which: no rc-status in (/usr/local/sbin:/usr/local/bin:/usr/bin)
which: no s6-svstat in (/usr/local/sbin:/usr/local/bin:/usr/bin)
/usr/bin/systemctl
You are about to switch GPUs. This will forcibly close all graphical sessions and all your applications WILL CLOSE.
(you can pass the --no-confirm option to disable this warning)
Continue ? (y/N)
y
Switching to mode : nvidia
/bin/sh: line 1: i3-msg: command not found
/bin/sh: line 1: openbox: command not found
/bin/sh: line 1: awesome-client: command not found
/bin/sh: line 1: bspc: command not found
/bin/sh: line 1: qtile: command not found
/bin/sh: line 1: herbstclient: command not found

I also want to note that I don’t see the option in changing resolution and refresh rate as mentioned in this: Configure NVIDIA (non-free) settings and load them on Startup - Manjaro as well as the nvidia.conf seems to be an empty text file.

Running sudo nvidia-settings also showed this log:

(nvidia-settings:18046): GLib-GObject-CRITICAL **: 00:38:09.930: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

I hope that you can be patient with me as I’m rather confused even after doing some reading

Manjaro is somewhat special - it has it’s own dedicated tools for setting up graphics and kernels.
Use those.

In essence:
learn about the system that you are wanting to use

of course I can and will - but I can’t and won’t serve as a wiki or a search engine.

It is all here.

Not generic - Manjaro specific.

I have been trying the Manjaro Settings Manager as well and have been looing at specifically the Hardware Configuration menu, but I can’t seem to do anything on it. I can’t click on the checkboxes and clicking both “Auto Install Proprietary Driver” and “Auto Install Open-Source Driver” shows the following log:

Skipping already installed config 'video-hybrid-intel-nvidia-prime' for device: 0000:01:00.0 (0300:10de:25a2) Display controller nVidia Corporation GA107M [GeForce RTX 3050 Mobile]
Skipping already installed config 'video-hybrid-intel-nvidia-prime' for device: 0000:00:02.0 (0300:8086:46a6) Display controller Intel Corporation

Skipping already installed config 'video-linux' for device: 0000:01:00.0 (0300:10de:25a2) Display controller nVidia Corporation GA107M [GeForce RTX 3050 Mobile]
Skipping already installed config 'video-linux' for device: 0000:00:02.0 (0300:8086:46a6) Display controller Intel Corporation

For extra information, in case this helps, this is my inxi -G result:

Graphics:
  Device-1: Intel Alder Lake-P GT2 [Iris Xe Graphics] driver: i915 v: kernel
  Device-2: NVIDIA GA107M [GeForce RTX 3050 Mobile] driver: nvidia
    v: 550.107.02
  Device-3: Chicony ACER HD User Facing driver: uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 24.1.2 driver: X:
    loaded: modesetting dri: iris gpu: i915 resolution: 1920x1080~144Hz
  API: EGL v: 1.5 drivers: iris,nvidia,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.1.6-arch1.1
    renderer: Mesa Intel Graphics (ADL GT2)
  API: Vulkan v: 1.3.279 drivers: nvidia,intel surfaces: xcb,xlib

When it comes to Nvidia, I’m pretty much out.
I have zero experience with it, never owned hardware with it.
My only knowledge about it is from reading about people having problems with it.

We (the people that could potentially assist you) need system information.

inxi -Fazy
is one command I have memorized.

I will not be able to help here.
Sorry.

Have you tried:

  1. set dGPU as 1st boot display in BIOS setting, or,
  2. turn off iGPU in BIOS?

You should install Manjaro after the change has been performed.

1 Like

Sadly, there’s no such option in my BIOS, all there were was the options to enable/disable Intel VTD and VTX.

I also had to reinstall due to GRUB having the parameter nvidia_drm.modeset=1 and keep reverting back to it despite me deleting it through the boot menu.

Then, you can consider either of these:
https://wiki.archlinux.org/title/PRIME
https://wiki.archlinux.org/title/NVIDIA_Optimus

Unfortunately, I do not use NVidia, and I do not have experience on these 2 apps, so I cannot advise further from here.

… that’s no reason to reinstall
not a relatively good one anyway

after changing … anything in that file
and wanting to have it applied:

recreate /boot/grub/grub.cfg

which is done by

grub-mkconfig -o /boot/grub/grub.cfg
or
update-grub

sudo for both commands is needed if you where not root already

I have only experienced an Manjaro on one latptop with another dGPU, so I don’t know a lot. But I was able to disable the Nvidia chipset, and keep it in S3 sleep mode, and only use the Intel iGPU.

You want to do the opposite.

So what did the Manjaro install start with? And what are your options?

Which is in the output of:

mhwd -l
mhwd -li

I assume Manjaro installed video-hybrid-intel-nvidia-*-prime ? (I only have a sample size of 1.)

This will load your desktop and everything on your iGPU, and only use the dGPU only with prime-run firefox for example.

Have you tried just installing: video-nvidia or video-nvidia-4XXX?

1 Like

Here’s the result of mhwd -l:

0000:01:00.0 (0300:10de:25a2) Display controller nVidia Corporation:
--------------------------------------------------------------------------------
                 NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
    video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
    video-hybrid-intel-nvidia-470xx-prime            2023.03.23               false            PCI
    video-nvidia                  2024.05.03               false            PCI
    video-nvidia-470xx            2023.03.23               false            PCI
    video-linux                   2024.05.06                true            PCI
    video-modesetting             2020.01.13                true            PCI
    video-vesa                    2017.03.12                true            PCI

0000:00:02.0 (0300:8086:46a6) Display controller Intel Corporation:
--------------------------------------------------------------------------------
                 NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
    video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
    video-hybrid-intel-nvidia-470xx-prime            2023.03.23               false            PCI
    video-linux                    2024.05.06           true            PCI
    video-modesetting              2020.01.13           true            PCI
    video-vesa                     2017.03.12           true            PCI

And here’s the result from mhwd -li:

Installed PCI configs:
--------------------------------------------------------------------------------
                 NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
    video-modesetting            2020.01.13                true            PCI
    video-hybrid-intel-nvidia-prime            2023.03.23               false            PCI
    video-linux            2024.05.06                true            PCI


Warning: No installed USB configs!

I also tried installing both video-nvidia and video-hybrid-intel-nvidia-470xx-prime but both resulted in this:

Error: config 'video-nvidia' conflicts with config(s): video-hybrid-intel-nvidia-prime
Error: config 'video-hybrid-intel-nvidia-470xx-prime' conflicts with config(s): video-hybrid-intel-nvidia-prime

Will you please use code fence or codetag instead of quoting The # has a header meaning in markdown and the - has as well - which is the basic formatting used on the forum.

```text
your console output
```

I edited your comment - see the difference ?

You should use the latest nvidia driver - let mhwd decide

sudo mhwd -a pci nonfree 0300

And that is the driver you have installed - so you don’t need to make any changes.

Assuming your system is a dual-gpu laptop - this is the correct driver and you use the following command to use the Nvidia GPU for the given task

prime-run <app>

It may not be possible to force the Nvidia GPU to be always used.

I have no Nvidia based systems anymore - too much hazzle - but I remember a few steps from my time using Nvidia - I think it was a Quadro P2000 on a workstation.

I had a ThinkPad with a GeForce 9xx card - I did test Nvidia proprietary driver using - it was years ago so it is as I remember.

  1. Be sure you have an USB device with a live ISO for rescue - troubleshooting - should it be necessary.

  2. Edit your /etc/default/grub and change to GRUB_TIMEOUT_STYLE=menu and GRUB_TIMEOUT=30

  3. Remember - in case of blackscreen - you can edit the grub command line to bypass the GUI login by addin the number 3 to the end of the kernel command line - then continue the boot.

When you have the above in place remove the mentioned driver packages

sudo mhwd -r pci modesetting
sudo mhwd -r pci video-linux

Verify that you have a valid Xorg configuration for your Nvidia GPU in

/etc/X11/xorg.conf.d

See → NVIDIA - ArchWiki for reference.
See → Configure NVIDIA (non-free) settings and load them on Startup - Manjaro

Nvidia and Wayland is a work-in-progress.

So to be able to get a running system, it is recommended to start with Xorg - the Manjaro installations dating after June, 1. 2024 default to X11 on Plasma.

So after you reboot - if you get to the display manager - be sure to login into X11 not Wayland.

I cannot offer any more than the above - I am no longer using Nvidia - and I probably never will.

Hey @Valexius this article should explain the type of system you have, Sounds like you have a dedicated and an integrated GPU laptop setup, It does however mention that the dedicated card in most cases cant be used on it own and the software decides when to switch to the dedicated
https://wiki.archlinux.org/title/Hybrid_graphics
Hope this helps

i also found this that looks like it could help that has a duel gpu section unless you have read it

Hi @Valexius and welcome to the Manjaro community.

As a new user, please take some time to familiarise yourself with Forum requirements; in particular, the many ways to use the forum to your benefit. To that end, some or all these links will be invaluable:

In the meantime, some in depth system information might be beneficial for those attempting to help. Please provide the full command output of:

inxi --admin --verbosity=8 --filter --no-host --width

And if you need to provide logs for any reason, the following command should be useful:

journalctl --boot=-1 --priority=3 --catalog --no-pager

Cheers.