How to properly install NVIDIA driver on Garuda (hybrid AMD + NVIDIA laptop)

I’ve been using Garuda Hyprland for a while, but since I’m still a beginner I eventually broke my system. Recently I noticed that new ISOs have been released quite often, so I decided to do a clean reinstall with the latest version.

On my previous installation, the NVIDIA settings panel was available by default (I didn’t install it manually — I just updated the system after installation and it showed up automatically).

On this fresh install, after updating, I can’t find the panel anymore. When I run:

garuda-hardware-tool --nonfree
Detecting hardware...
Detected GPU: Product: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne Radeon Vega Series / Radeon Vega Mobile Series, PCI ID: 04:00.0, Vendor ID: 1002
All required packages are already installed: garuda-hardware-profile-standard-x11

So it only detects my AMD GPU.

:backhand_index_pointing_right: What’s the correct way to install the proprietary NVIDIA driver on this version of Garuda?

Thanks in advance! :folded_hands:

System:
  Kernel: 6.16.5-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.2.1 clocksource: tsc
    avail: hpet,acpi_pm parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=44ece7a3-0fa0-42b9-98ab-ae4206049949 rw rootflags=subvol=@ quiet loglevel=3
  Desktop: Hyprland v: 0.50.1 with: waybar tools: avail: hypridle,hyprlock vt: 1 dm: SDDM
    Distro: Garuda base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: Vivobook_ASUSLaptop M7600QE_M7600QE v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: M7600QE v: 1.0 serial: <superuser required> uuid: <superuser required>
    UEFI: American Megatrends LLC. v: M7600QE.312 date: 05/29/2023
Battery:
  ID-1: BAT0 charge: 71.2 Wh (100%) condition: 71.2/96 Wh (74.2%) volts: 11.66 min: 11.66
    model: ASUSTeK ASUS Battery type: Li-ion serial: N/A charging: status: not charging control:
    start: N/A end: 100% cycles: 171
CPU:
  Info: model: AMD Ryzen 9 5900HX with Radeon Graphics bits: 64 type: MT MCP arch: Zen 3 gen: 3
    level: v3 note: check built: 2021-22 process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x50 (80)
    stepping: 0 microcode: 0xA500012
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2 smt: enabled cache:
    L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 4 MiB desc: 8x512 KiB L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 1100 min/max: 423/4683 boost: enabled scaling: driver: amd-pstate-epp
    governor: powersave cores: 1: 1100 2: 1100 3: 1100 4: 1100 5: 1100 6: 1100 7: 1100 8: 1100
    9: 1100 10: 1100 11: 1100 12: 1100 13: 1100 14: 1100 15: 1100 16: 1100 bogomips: 105407
  Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
Graphics:
  Device-1: NVIDIA GA107M [GeForce RTX 3050 Ti Mobile] vendor: ASUSTeK driver: nouveau v: kernel
    non-free: 550-580.xx+ status: current (as of 2025-08; EOL~2026-12-xx) arch: Ampere code: GAxxx
    process: TSMC n7 (7nm) built: 2020-2023 pcie: gen: 3 speed: 8 GT/s lanes: 8 link-max: gen: 4
    speed: 16 GT/s lanes: 16 bus-ID: 01:00.0 chip-ID: 10de:25a0 class-ID: 0302
  Device-2: Advanced Micro Devices [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Mobile Series]
    vendor: ASUSTeK driver: amdgpu v: kernel arch: GCN-5 code: Vega process: GF 14nm built: 2017-20
    pcie: gen: 3 speed: 8 GT/s lanes: 16 ports: active: eDP-1 empty: HDMI-A-1 bus-ID: 04:00.0
    chip-ID: 1002:1638 class-ID: 0300 temp: 73.0 C
  Device-3: IMC Networks USB2.0 HD UVC WebCam driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 3-3:4 chip-ID: 13d3:5458 class-ID: fe01 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8 compositor: Hyprland
    v: 0.50.1 driver: X: loaded: amdgpu,modesetting,nouveau alternate: fbdev,nv,vesa dri: radeonsi
    gpu: amdgpu display-ID: 1
  Monitor-1: eDP-1 model: Samsung 0x415d built: 2021 res: mode: 3840x2400 hz: 60
    scale: 240% (2.4) to: 1601x1000 dpi: 284 gamma: 1.2 size: 344x215mm (13.54x8.46")
    diag: 406mm (16") ratio: 16:10 modes: max: 3840x2400 min: 640x480
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
  Info: Tools: wl: kanshi, wdisplays, wlr-randr x11: xprop
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Renoir/Cezanne HDMI/DP Audio driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 04:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] Audio Coprocessor vendor: ASUSTeK driver: N/A
    alternate: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci,
    snd_rpl_pci_acp6x, snd_pci_ps, snd_sof_amd_renoir, snd_sof_amd_rembrandt, snd_sof_amd_vangogh,
    snd_sof_amd_acp63, snd_sof_amd_acp70 pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 04:00.5
    chip-ID: 1022:15e2 class-ID: 0480
  Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 04:00.6
    chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.16.5-zen1-1-zen status: kernel-api tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.4.7 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: MEDIATEK MT7921 802.11ax PCI Express Wireless Network Adapter vendor: AzureWave
    driver: mt7921e v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 14c3:7961
    class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
  IF-ID-1: dae0 state: up speed: 10000 Mbps duplex: full mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: IMC Networks Wireless_Device driver: btusb v: 0.8 type: USB rev: 2.1 speed: 480 Mb/s
    lanes: 1 mode: 2.0 bus-ID: 3-2:3 chip-ID: 13d3:3563 class-ID: e001 serial: <filter>
  Report: btmgmt ID: hci0 rfk-id: 2 state: up address: N/A
Drives:
  Local Storage: total: 476.94 GiB used: 103.6 GiB (21.7%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: HFM512GD3JX013N size: 476.94 GiB
    block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 41000C20 temp: 39.9 C scheme: GPT
Partition:
  ID-1: / raw-size: 90 GiB size: 90 GiB (100.00%) used: 9.73 GiB (10.8%) fs: btrfs
    dev: /dev/nvme0n1p5 maj-min: 259:5
  ID-2: /boot/efi raw-size: 100 MiB size: 99.2 MiB (99.21%) used: 31.2 MiB (31.4%) fs: vfat
    dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 90 GiB size: 90 GiB (100.00%) used: 9.73 GiB (10.8%) fs: btrfs
    dev: /dev/nvme0n1p5 maj-min: 259:5
  ID-4: /var/log raw-size: 90 GiB size: 90 GiB (100.00%) used: 9.73 GiB (10.8%) fs: btrfs
    dev: /dev/nvme0n1p5 maj-min: 259:5
  ID-5: /var/tmp raw-size: 90 GiB size: 90 GiB (100.00%) used: 9.73 GiB (10.8%) fs: btrfs
    dev: /dev/nvme0n1p5 maj-min: 259:5
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 15.02 GiB used: 1.24 GiB (8.2%) priority: 100 comp: zstd
    avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 78.2 C mobo: 46.0 C gpu: amdgpu temp: 73.0 C
  Fan Speeds (rpm): cpu: 4500
Info:
  Memory: total: 16 GiB note: est. available: 15.02 GiB used: 8.44 GiB (56.2%)
  Processes: 423 Power: uptime: 4h 52m states: freeze,mem,disk suspend: s2idle wakeups: 1
    hibernate: platform avail: shutdown, reboot, suspend, test_resume image: 5.98 GiB
    services: upowerd Init: systemd v: 257 default: graphical tool: systemctl
  Packages: pm: pacman pkgs: 1251 libs: 351 tools: pacseek,paru Compilers: gcc: 15.2.1
    Client: Unknown Client: electron inxi: 3.3.39
Garuda (2.8.2-2):
  System install date:     2025-09-07
  Last full system update: 2025-09-08
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       Probably (Run as root to verify)
  Failed units:            
--- System Health Check Report ---
22/23 checks run in 0.93 seconds ⌛
Powered by garuda-health 🦅

✅ System health check passed. No issues found.

You have used the option open source driver install, that’s why current nouveau modul and not nvidia modul is active. With 2 options over konsole you can “handle” this.

  1. use garuda-hardware-tool to do this (default)
    or
  2. with pacman

For this gpu you need the nvidia-open-dkms driver
1.
Konsole: pacman -Qs nvidia → if you read garuda-hardware-profile-nvidia
garuda-hardware-tool --nonfree → no errors → reboot and post again your garuda-inxi
If not → sudo pacman -S garuda-hardware-profile-nvidia
that should install all the stuff for the gpu.
or 2.
Konsole: sudo pacman -S nvidia-open-dkms egl-wayland lib32-nvidia-utils lib32-opencl-nvidia nvidia-settings opencl-nvidia nvidia-utils nvidia-prime
No errors → reboot → post garuda-inxi

3 Likes

Thanks for your reply.

I’m pretty sure I selected the NVIDIA proprietary driver. After installation, the panel didn’t appear. I thought I might have chosen the wrong option, so I reinstalled the system, but it’s still the same. I’ll give your suggested solution a try and hope it works smoothly.

Pls run garuda-update / garuda-update -a or upd / upd -a before your manual intervention, sorry forgotten to write.

2 Likes

The installation is complete, and the NVIDIA GPU is now detected and working. Are there any additional settings I should configure after switching to the NVIDIA card? Do you have any recommendations?

 ╭─tdx@tdx in ~ as 🧙 took 3s
 ╰─λ sudo lspci -k | grep -A 2 -i "NVIDIA"
01:00.0 3D controller: NVIDIA Corporation GA107M [GeForce RTX 3050 Ti Mobile] (rev a1)
	Subsystem: ASUSTeK Computer Inc. Device 18ec
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
02:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter
	Subsystem: AzureWave Device 4680

 ╭─tdx@tdx in ~ as 🧙 took 0s
 ╰─λ sudo garuda-hardware-tool --nonfree
Detecting hardware...
Detected GPU: Product: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne Radeon Vega Series / Radeon Vega Mobile Series, PCI ID: 04:00.0, Vendor ID: 1002
All required packages are already installed: garuda-hardware-profile-standard-x11

By the way, I tested the installation twice using garuda-hyprland-linux-zen-250907.iso. Even when selecting the NVIDIA proprietary driver in the installer, it still installed the open-source driver.

To handle / to use your nvidia dgpu you use nvidia-prime.

Well, report this issue there

or open a new topic for this.

You don’t have “switched”. You can now use with the prop. driver the full potential of the GPU. Default, your system works with igpu amd/vega. (DE, browser,etc)
With Prime you can use selected apps via the dgpu (nvidia)

1 Like

May I see the output of lspci -nn -d "*:*:0300"

 ╰─λ lspci -nn -d "*:*:0300"
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c4)

I see what the issue is. Sorry for the trouble, will be fixed ASAP.

(Not for you, your issue is already fixed after all!)

1 Like

Please update and run garuda-hardware-tool --nonfree and see if it detects your GPU now! Thanks!

1 Like
 ╰─λ sudo paru -Ss garuda-hardware-tool 
[sudo] tdx 的密码:    
garuda/garuda-hardware-tool 1.0.2-1 [0 B 6.11 KiB] [已安装]
    A tool to manage hardware drivers and configurations in
    Garuda Linux.

 ╭─tdx@tdx in ~ as 🧙 took 4s
 ╰─λ sudo garuda-hardware-tool --nonfree
Detecting hardware...
Detected GPU: Product: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne Radeon Vega Series / Radeon Vega Mobile Series, PCI ID: 04:00.0, Vendor ID: 1002
All required packages are already installed: garuda-hardware-profile-standard-x11

This is already after the update and reboot.

Oh uhh, did you update to garuda-hardware-tool 1.0.2?

I’m on version 1.0.2 now, just updated and rebooted.*

What’s the output of garuda-hardware-tool --nonfree now?

I edited my previous message, I thought you saw it.

 ╰─λ sudo paru -Ss garuda-hardware-tool
[sudo] tdx 的密码:    
garuda/garuda-hardware-tool 1.0.2-1 [0 B 6.11 KiB] [已安装]
    A tool to manage hardware drivers and configurations in Garuda Linux.

 ╭─tdx@tdx in ~ as 🧙 took 3s
 ╰─λ sudo garuda-hardware-tool --nonfree
Detecting hardware...
Detected GPU: Product: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne Radeon Vega Series / Radeon Vega Mobile Series, PCI ID: 04:00.0, Vendor ID: 1002
All required packages are already installed: garuda-hardware-profile-standard-x11

Seems like we’re not quite there yet…

Let’s see, what’s the output of lspci -nn -d '*:*:03xx'

(Thanks for helping by the way!)

1 Like

 ╭─tdx@tdx in ~ 
 ╰─λ lspci -nn -d '*:*:03xx'
01:00.0 3D controller [0302]: NVIDIA Corporation GA107M [GeForce RTX 3050 Ti Mobile] [10de:25a0] (rev a1)
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c4)

 ╭
1 Like

Second uhh- third times the charm?

Can you test if garuda-hardware-tool 1.0.3 detects it now?

garuda-hardware-tool --nonfree

Cheers! (I think I finally got it this time, haha)

3 Likes

It’s working perfectly now.

 ╭─tdx@tdx in ~ as 🧙 took 14s
 ╰─λ sudo garuda-hardware-tool --nonfree
Detecting hardware...
Detected GPU: Product: NVIDIA Corporation GA107M GeForce RTX 3050 Ti Mobile, PCI ID: 01:00.0, Vendor ID: 10de
Detected GPU: Product: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne Radeon Vega Series / Radeon Vega Mobile Series, PCI ID: 04:00.0, Vendor ID: 1002
NVIDIA GPU detected, added: garuda-hardware-profile-nvidia.
All required packages are already installed: garuda-hardware-profile-nvidia garuda-hardware-profile-standard-x11

By the way, will this update also come with a new ISO release? My system got a bit messy again today, so I’ll probably reinstall once the new version is out.

Yes it will, but I’m not entirely sure when a new version will come out.

Regardless, you have nothing to worry about. The setup-assistant will recognize the updated version of garuda-hardware-tool and install the driver for you.

Oh? What happened?