diff --git a/NVIDIA.md b/NVIDIA.md new file mode 100644 index 0000000..130091f --- /dev/null +++ b/NVIDIA.md @@ -0,0 +1,68 @@ +## 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'