Garuda hardware profiles
The Garuda hardware profiles are meta packages that pull in the graphics drivers and the driver settings for a system. They are built from one split package, garuda-hardware-profiles (pkgbuilds/garuda-hardware-profiles, version 2.0.1 release 3). Together with Garuda Hardware Tool, they replace MHWD. The changelog 260819 marks the change with Remove garuda-settings-manager, mhwd. Replace with garuda-hardware-tool and garuda-hardware-profiles.
Garuda Hardware Tool picks the profiles that fit your hardware and installs them. Its page covers the detection rules and the options. This page covers the packages themselves.
Profiles at a glance
Section titled “Profiles at a glance”| Package | Description in the PKGBUILD | Builds on |
|---|---|---|
garuda-hardware-profile-standard | Garuda Linux hardware profile with opensource drivers | Nothing. It is the base of all others. |
garuda-hardware-profile-standard-x11 | Garuda Linux hardware profile with opensource x11 drivers | garuda-hardware-profile-standard |
garuda-hardware-profile-vm | Garuda Linux hardware profile for virtual machines | garuda-hardware-profile-standard |
garuda-hardware-profile-nvidia | Garuda Linux hardware profile with nvidia drivers | garuda-hardware-profile-standard |
garuda-hardware-profile-nvidia-580xx | Garuda Linux hardware profile with nvidia 580xx drivers | garuda-hardware-profile-standard |
Standard
Section titled “Standard”garuda-hardware-profile-standard installs the open source Mesa, Intel and AMD user space drivers with their 32-bit versions.
| Field | Packages |
|---|---|
| Depends | vulkan-intel, vulkan-radeon, intel-media-driver, libva-intel-driver, libva-mesa-driver, vulkan-mesa-layers, vulkan-swrast, lib32-vulkan-intel, lib32-vulkan-radeon, lib32-libva-intel-driver, lib32-libva-mesa-driver, lib32-vulkan-mesa-layers |
| Optional | opencl-mesa, lib32-opencl-mesa, intel-compute-runtime |
| Provides | vulkan-driver, lib32-vulkan-driver |
| Replaces | zdummy-vlkdrv |
It installs no config files.
Standard X11
Section titled “Standard X11”garuda-hardware-profile-standard-x11 adds the Xorg drivers for AMD and NVIDIA cards on top of the standard profile.
| Field | Packages |
|---|---|
| Depends | garuda-hardware-profile-standard, xf86-video-ati, xf86-video-amdgpu, xf86-video-nouveau |
| Provides | garuda-video-linux-config |
| Replaces | garuda-video-linux-config |
The PKGBUILD comment says it replaces the MHWD package since we can not be sure what the user has installed.
Virtual machine
Section titled “Virtual machine”garuda-hardware-profile-vm installs the guest tools for VirtualBox, VMware, SPICE and QEMU.
| Field | Packages |
|---|---|
| Depends | garuda-hardware-profile-standard, xf86-video-fbdev, virtualbox-guest-utils, open-vm-tools, xf86-input-vmmouse, spice-vdagent, qemu-guest-agent, gtkmm3 |
| Replaces | garuda-virtualmachine-guest-config |
| File | Content |
|---|---|
/usr/lib/systemd/system/garuda-virtualmachine-guest-config.target | Wants vboxservice.service, vboxclient.service, vmtoolsd.service, spice-vdagentd.socket and qemu-guest-agent.service. Wanted by multi-user.target. |
/usr/lib/systemd/system/garuda-virtualbox-live.service | Runs chmod 666 /dev/vboxuser so that the user side guest additions work (clipboard, drag and drop). Runs only when /dev/vboxuser exists. |
The install script enables garuda-virtualmachine-guest-config.target on install and disables it on removal. Upgrades from versions older than 1.1.1-3 enable it too. Both units are also linked into ght-live.target.wants. See Live session.
NVIDIA
Section titled “NVIDIA”The two NVIDIA profiles install the same config files and differ only in the driver branch.
| Field | garuda-hardware-profile-nvidia | garuda-hardware-profile-nvidia-580xx |
|---|---|---|
| Driver | nvidia-open-dkms>=590 | nvidia-580xx-dkms |
| Depends | garuda-hardware-profile-standard, egl-wayland, nvidia-utils>=590, opencl-nvidia>=590, lib32-nvidia-utils>=590, lib32-opencl-nvidia>=590, nvidia-prime | garuda-hardware-profile-standard, egl-wayland, nvidia-580xx-utils, opencl-nvidia-580xx, lib32-nvidia-580xx-utils, lib32-opencl-nvidia-580xx, nvidia-prime |
| Provides | garuda-nvidia-config, GARUDA-HARDWARE-PROFILE-NVIDIA | GARUDA-HARDWARE-PROFILE-NVIDIA |
| Conflicts | GARUDA-HARDWARE-PROFILE-NVIDIA | GARUDA-HARDWARE-PROFILE-NVIDIA |
| Replaces | garuda-nvidia-config, garuda-nvidia-prime-config, garuda-hardware-profile-nvidia-prime | garuda-hardware-profile-nvidia-closed, garuda-hardware-profile-nvidia-prime-closed |
Both profiles provide and conflict with GARUDA-HARDWARE-PROFILE-NVIDIA. Only one of them can be installed at a time. nvidia-settings is not part of either profile. The changelog lists Remove nvidia-settings from requirements.
NVIDIA config files
Section titled “NVIDIA config files”| Installed path | Source file | Content |
|---|---|---|
/usr/lib/modules-load.d/garuda-nvidia.conf | nvidia-modules-load.conf | Loads the nvidia-drm module at boot. |
/usr/lib/modprobe.d/garuda-nvidia.conf | nvidia-modprobe.conf | options nvidia-drm modeset=1 and options nvidia-drm fbdev=1 |
/usr/lib/modprobe.d/garuda-nvidia-prime-powersaving.conf | garuda-nvidia-prime-powersaving.conf | options nvidia "NVreg_DynamicPowerManagement=0x02" |
/usr/lib/udev/rules.d/90-nvidia-prime-powermanagement.rules | 90-nvidia-prime-powermanagement.rules | Runtime power management for NVIDIA cards. See below. |
/usr/lib/systemd/system/garuda-nvidia-live.service | garuda-nvidia-live.service | Runs modprobe nvidia_drm && modprobe nvidia-uvm. Linked into ght-live.target.wants. |
The udev rules match PCI devices with vendor 0x10de (NVIDIA) and class 0x030000 (VGA) or 0x030200 (3D controller).
| Event | power/control set to | Comment in the rules file |
|---|---|---|
bind or add | auto | Enable runtime PM for NVIDIA VGA/3D controller devices |
unbind | on | Disable runtime PM for NVIDIA VGA/3D controller devices |
See Switching between integrated and dedicated graphics for running programs on the NVIDIA card.
Live session
Section titled “Live session”On the live ISO, ght-live.service runs Garuda Hardware Tool before the user session starts. It then starts ght-live.target. The profiles link their live units into ght-live.target.wants, so the target starts them.
| Profile | Units started by ght-live.target |
|---|---|
| NVIDIA profiles | garuda-nvidia-live.service |
| VM profile | garuda-virtualmachine-guest-config.target, garuda-virtualbox-live.service |
The changelog entry for this reads Load nvidia modules and virtualmachine services automatically when in live session. The live script logs to /var/log/ght-live.log.
Legacy package mapping
Section titled “Legacy package mapping”The replaces arrays above define how pacman moves an older system to the new profiles.
| Old package | New package |
|---|---|
zdummy-vlkdrv | garuda-hardware-profile-standard |
garuda-video-linux-config | garuda-hardware-profile-standard-x11 |
garuda-virtualmachine-guest-config | garuda-hardware-profile-vm |
garuda-nvidia-config, garuda-nvidia-prime-config, garuda-hardware-profile-nvidia-prime | garuda-hardware-profile-nvidia |
garuda-hardware-profile-nvidia-closed, garuda-hardware-profile-nvidia-prime-closed | garuda-hardware-profile-nvidia-580xx |
The -closed profiles map to the 580xx profile, not to the current NVIDIA profile. garuda-update also removes garuda-hardware-profile-nvidia-prime-closed on its own and marks garuda-hardware-profile-nvidia-closed as explicitly installed first. The changelog entry reads Remove garuda-hardware-profile-nvidia-prime-closed automatically to allow for smooth update.
No profile replaces the old 470xx NVIDIA packages. The MHWD packages themselves are replaced by garuda-hardware-tool. Its page lists them.
Related pages
Section titled “Related pages”- Garuda Hardware Tool detects the hardware and installs these profiles.
- Garuda Health reports a missing NVIDIA profile.
- Switching between integrated and dedicated graphics covers PRIME render offload on laptops.
- NVIDIA drivers on Garuda Sway covers the NVIDIA driver with Sway.
- The Arch Wiki pages NVIDIA, PRIME, Kernel module, Udev and Vulkan explain the pieces these profiles configure.