Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Установить пакет: `nvidia-open` (он подтянет зависимости: `egl-gbm` `egl-wayland2` `egl-x11` `nvidia-utils`).
- 2. Разблеклистить модули открытого драйвера, мы будем контролировать их через параметры загрузки.
- ```
- ln -s /dev/null /etc/modprobe.d/nvidia-utils.conf
- ```
- 3. Создать файл `/etc/mkinitcpio-nvidia.conf`:
- ```
- # vim:set ft=sh:
- # MODULES
- # The following modules are loaded before any boot hooks are run.
- MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
- # BINARIES
- # This setting includes any additional binaries a given user may wish into the CPIO image.
- BINARIES=()
- # FILES
- # This setting is similar to BINARIES above, however, files are added as-is and are not parsed in any way.
- FILES=()
- # HOOKS
- # This is the most important setting control the modules and scripts added to the image, and what happens at boot time.
- HOOKS=(systemd plymouth autodetect microcode keyboard sd-vconsole modconf block filesystems fsck)
- # COMPRESSION
- # Use this to compress the initramfs image. Options: cat, zstd, gzip, bzip2, lzma, xz, lzop, lz4
- #COMPRESSION="zstd"
- # COMPRESSION_OPTIONS
- # Additional options for the compressor.
- #COMPRESSION_OPTIONS=()
- # MODULES_DECOMPRESS
- # Decompress loadable kernel modules and their firmware during initramfs creation. Switch (yes/no).
- #MODULES_DECOMPRESS="no"
- ```
- 4. Создать файл `/etc/systemd/system-environment-generators/10-gpu-driver-check.sh`:
- ```
- #!/bin/sh
- # Set env vars depending on the loaded gpu module
- if lsmod | grep -q "^nvidia"; then
- echo "VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json"
- echo "__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json"
- # Video acceleration
- echo "LIBVA_DRIVER_NAME=nvidia"
- echo "VDPAU_DRIVER=nvidia"
- elif lsmod | grep -q "^nouveau"; then
- echo "VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nouveau_icd.json"
- echo "__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json"
- # Video acceleration
- echo "LIBVA_DRIVER_NAME=zink"
- echo "VDPAU_DRIVER=zink"
- # OpenCL
- echo "RUSTICL_ENABLE=zink"
- fi
- ```
- 5. Отредактировать `/etc/mkinitcpio.d/linux.preset`:
- ```
- # mkinitcpio preset file for the 'linux' package
- #ALL_config="/etc/mkinitcpio.conf"
- ALL_kver="/boot/vmlinuz-linux"
- #ALL_kerneldest="/boot/vmlinuz-linux"
- PRESETS=('default' 'nvidia') #'fallback')
- #default_config="/etc/mkinitcpio.conf"
- #default_image="/boot/initramfs-linux.img"
- default_uki="/boot/EFI/Linux/arch-linux.efi"
- default_options="modprobe.blacklist=nvidia,nvidia_drm,nvidia_modeset,nvidia_uvm" # blacklist proprietary driver modules
- nvidia_config="/etc/mkinitcpio-nvidia.conf"
- #nvidia_image="/boot/initramfs-linux-nvidia.img"
- nvidia_uki="/boot/EFI/Linux/arch-linux-nvidia.efi"
- nvidia_options="modprobe.blacklist=nouveau,nova_core,nova_drm" # blacklist open driver modules
- #fallback_config="/etc/mkinitcpio.conf"
- #fallback_image="/boot/initramfs-linux-fallback.img"
- fallback_uki="/boot/EFI/Linux/arch-linux-fallback.efi"
- fallback_options="-S autodetect"
- ```
Add Comment
Please, Sign In to add comment