Post

Linux graphics driver setup

Linux graphics driver setup

Prerequesites

First, enable multilib (32-Bit). It is very important to run games through Proton (Steam) and other WINE-related applications like Lutris, Bottles and Heroic Game Launcher. To enable multilib repository, uncomment the [multilib] section in /etc/pacman.conf.

1
2
[multilib]
Include = /etc/pacman.d/mirrorlist

Then upgrade your system.

1
sudo pacman -Syu

Installation

To install support for Vulkan API (will be functional only if you have a Vulkan capable GPU) and 32-bit games, execute following commands.

Nvidia

1
sudo pacman -S --needed nvidia-dkms nvidia-utils lib32-nvidia-utils nvidia-settings vulkan-icd-loader lib32-vulkan-icd-loader

Warning: Installing nvidia-settings on Manjaro will fail as it isn’t in the repos and gets installed with the drivers themself. To make sure you’re running proprietary Nvidia drivers you should run sudo mhwd -i pci video-nvidia

I use nvidia-dkms package to let nvidia compile the driver against the actual kernel(s) I run. The other packages like nvidia or nvidia-lts are precompiled and may not suit to the kernel(s) running.

AMD

1
sudo pacman -S --needed lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader

Intel

1
sudo pacman -S --needed lib32-mesa vulkan-intel lib32-vulkan-intel vulkan-icd-loader lib32-vulkan-icd-loader

Note for Intel integrated graphics users: Only Skylake and newer Intel CPUs (processors) offer full Vulkan support. Broadwell, Haswell and Ivy Bridge only offer partial support, which will very likely not work with a lot of games properly. Sandy Bridge and older lack any Vulkan support whatsoever.

Preparing the kernel

It’s recommended to add all needed driver modules to initial ramdisk to include the modules (drivers) into the kernel when it’s booting. To achieve this add the modules to /etc/mkinitcpio.conf and recompile initramfs.

1
2
3
4
MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)
BINARIES=()
FILES=()
HOOKS=(base udev plymouth autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)

For me I have a laptop with switchable graphics and therefor I would load also i915 for the Intel card besides Nvidia modules. For AMD users it would be amdgpu. More of that in the “Hybrid Systems”-Section.

When you finished recompiling initramfs is executed like this:

1
sudo mkinitcpio -P linux

For linux you have to set your wanted kernel image, others could be linux-lts or linux-zen.

Hint: Missing firmware messages

If you may get missing firmware messages as shown below there’s the mkinitcpio-firmware AUR package to get rid of this.

1
2
3
4
==> WARNING: Possibly missing firmware for module: bfa
==> WARNING: Possibly missing firmware for module: qed
==> WARNING: Possibly missing firmware for module: qla1280
==> WARNING: Possibly missing firmware for module: qla2xxx

Install it with an AUR helper like yay:

1
yay -S mkinitcpio-firmware

For most users this messages are harmless and “Possibly” means that you might not actually need this firmware. Anyway if these message are annoying you you can workaround this way.


Further reading: Lutris docs > Installing Drivers

This post is licensed under CC BY 4.0 by the author.