69 lines
2.5 KiB
Markdown
69 lines
2.5 KiB
Markdown
|
## 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'
|