dotfiles/NVIDIA.md

69 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2024-05-25 20:20:21 +00:00
## Step 1: Installing required packages and enabling multilib
1. Update the system:
`sudo pacman -Syu`
2. Install required packages:
`sudo pacman -S base-devel linux-headers git nano --needed`
3. Install the AUR helper, yay
- `cd ~`
- `git clone https://aur.archlinux.org/yay.git`
- `cd yay`
- `makepkg -si`
4. Enable multilib repository
- `sudo nano /etc/pacman.conf`
- Uncomment the following lines by removing the # -character at the start them
- **[multilib]**
- **Include = /etc/pacman.d/mirrorlist**
- Save the file with _CTRL+S_ and close nano with _CTRL+X_
5. Run `yay -Syu`, to update the system package database
## Step 2: Installing the driver packages
`yay -S nvidia nvidia-utils lib32-nvidia-utils nvidia-settings`
## Step 3: Enabling DRM kernel mode setting
1. Edit the GRUB configuration file:
- `sudo nano /etc/default/grub`
- Find the line with **GRUB_CMDLINE_LINUX_DEFAULT**
- Append the words inside the quotes with **nvidia-drm.modeset=1**
- Example: **GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"**
- Save the file with _CTRL+S_ and close nano with _CTRL+X_
2. Update the GRUB configuration: `sudo grub-mkconfig -o /boot/grub/grub.cfg`
### Add Early Loading of NVIDIA Modules:
1. Edit the **mkinitcpio** configuration file:
- `sudo nano /etc/mkinitcpio.conf`
- Find the line that says **MODULES=()**
- Update the line to: **MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)**
- Find the line that says **HOOKS=()**
- On the **HOOKS=()** line, find the word **kms** inside the parenthesis and remove it
- Save the file with _CTRL+S_ and close nano with _CTRL+X_
2. Regenerate the initramfs with `sudo mkinitcpio -P`
### Adding the Pacman Hook:
1. Get the **nvidia.hook** -file from this repository
- `cd ~`
- `wget https://raw.githubusercontent.com/korvahannu/arch-nvidia-drivers-installation-guide/main/nvidia.hook`
2. Move the file to **/etc/pacman.d/hooks/** with: `sudo mv ./nvidia.hook /etc/pacman.d/hooks/`
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia
Target=linux
# Adjust line(6) above to match your driver, e.g. Target=nvidia-470xx-dkms
# Change line(7) above, if you are not using the regular kernel For example, Target=linux-lts
[Action]
Description=Update Nvidia module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'