Arch Linux Wayland Aktifleştirme
Herhangi bir sorun yaşanmadığı sürece GNOME paketini Nvidia ekran kartlı Arch Linux sistemimize kurduğumuzda varsayılan olarak GNOME, Wayland kullanmaktadır. Sistemi Wayland'ı kullanmaya zorlamadan tavsiye edilen yol ile aktif edebilmek adına uygulanacak çözümleri bu yazımda anlatmak istedim.
Bu bağlantıdan, GDM'in hangi koşullarda Wayland'ı kullanım dışı bıraktığına kuş bakışı göz atabiliriz.
WAYLAND KONTROLÜ
Wayland'ın hali hazırda aktif olup olmadığını kontrol edebilmenin iki yöntemi var.
Yöntem 1 :
Geçerli oturum ID'sini öğrenelim.
$ loginctl
Aşağıdakine benzer bir çıktı üretecektir.
SESSION UID SEAT TTY
c2 1000 seat0 tty2
Bu örnek çıktıda "c2" oturum ID'nizdir ve sizde farklı bir ID görünebilir.
"c2" yazan yeri kendi ID'mizle değiştirelim.
$ loginctl show-session c2 -p Type
Eğer aldığımız çıktı "Type=wayland" değil ise çözüm yoluna devam edebiliriz.
Yöntem 2 :
Aşağıdaki komutu çalıştıralım.
$ echo $XDG_SESSION_TYPE
veya
$ printenv | grep XDG_SESSION_TYPE= | cut -c 18-
Eğer aldığımız çıktı "wayland" değil ise çözüm yoluna devam edebiliriz.
DRM KONTROLÜ
İlk olarak DRM'in aktif olması gerekiyor. Aktif olup olmadığını kontrol edebilmenin iki yöntemi var.
Yöntem 1 :
Bu yöntem için mesa-demos paketini kurmanız gerekiyor.
$ glxinfo | grep direct
Eğer çıktı "direct rendering: Yes" ise DRM aktif demektir.
Yöntem 2 :
Aşağıdaki komutu çalıştıralım.
$ cat /sys/module/nvidia_drm/parameters/modeset
Eğer çıktı "Y" ise DRM aktif demektir.
DRM AKTİFLEŞTİRME
DRM'i aktif etmek için izlenmesi gereken adımlar.
Adım 1 :
"/etc/modprobe.d/" dizinine "nvidia.conf" adlı yeni bir yapılandırma dosyası ekleyelim.
Dosya ismi farklı yazılabilir fakat uzantı adı "*.conf" değiştirilmemeli.
Dosyanın içeriğini aşağıdaki gibi düzenleyelim.
options nvidia-drm modeset=1
options nvidia-drm NVreg_UsePageAttributeTable=1
İkinci satırdaki isteğe bağlı ayar DRM'i aktif etmek için gerekli değildir. Pentium III ve üzeri işlemcilerde desteklenmekte olan, performans artımı sağlayan PAT özelliğini aktif etmektedir.
Adım 2 :
"/etc/default/grub" dosyası içeriğindeki "GRUB_CMDLINE_LINUX_DEFAULT="..."" yazılı satırın tırnak işareti içeriğine "nvidia_drm.mode=1" yapılandırmasını ekleyelim.
Örneğin:
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=DeviceUUID:VGName:allow-discards nvidia_drm.modeset=1 vt.global_cursor_default=0 loglevel=3 quiet"
Adım 3 :
Yapılandırmalarımızı tamamladıktan sonra geçerli olabilmeleri adına aşağıdaki komutu seçili kernel'imize göre veya "-P" öneki kullanarak kurulu olan her kernel için çalıştıralım.
$ mkinitcpio -p linux*
"linux*" olarak belirtilen kısım hangi kernel için bu özelliği aktif etmek istiyor isek "linux", "linux-lts", "linux-hardened" vb. şeklinde değiştirilmeli.
Veya alternatif olarak daha basit haliyle aşağıdaki komutu tüm kurulu kernel'lerimiz için çalıştırabiliriz.
$ mkinitcpio -P
Adım 4 :
Aşağıdaki komutu çalıştıralım.
$ grub-mkconfig -o /boot/grub/grub.cfg
Ardından sistemi yeniden başlatabiliriz. Yeniden başlattıktan sonra yukarıdaki "DRM Kullanımını Kontrol Etme" başlığı altında gösterildiği üzere DRM'in aktif olup olmadığını tekrar kontrol edelim. Eğer aktif değilse izlediğimiz adımları gözden geçirelim.
ERKEN YÜKLENME
Nvidia modüllerinin GDM'den önce yüklenmesini sağlamak adına izlenecek adımlar.
Adım 1 :
Kernel parametrelerini düzenleyelim.
"/etc/mkinitcpio.conf" dosyası içeriğindeki "MODULES=(...)" yazılı satırın parantez içeriğine "nvidia", "nvidia_modeset", "nvidia_uvm" ve "nvidia_drm" modüllerini ekledikten sonra kaydedip kapatalım.
Örneğin:
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
Adım 2 :
Aşağıdaki komutu seçili kernel'imize göre veya "-P" öneki kullanarak kurulu olan her kernel için çalıştıralım.
$ mkinitcpio -p linux* veya $ mkinitcpio -P
UYKU MODU
Cihazımız uyku moduna girdiği zaman Nvidia sürücüsünün sistemden alan tahsis etmesine yönelik Wayland'ın düzgün çalışması için gereken yapılandırmaları gerçekleştirelim.
Adım 1 :
"/etc/modprobe.d/" dizinine "nvidia-power-management.conf" adlı yeni bir dosya ekleyelim.
Dosyanın içeriğini aşağıdaki gibi düzenledikten sonra kaydedip kapatalım.
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/var/tmp
İkinci satırdaki isteğe bağlı ayar varsayılan "/var" dizinini daha büyük boyuttaki geçici dosyaları tutabilmeye elverişli olan "/var/tmp" dizini ile değiştirmektedir.
Bu isteğe bağlı ayar hakkında Nvidia'nın önerileri için bağlantı.
Adım 2 :
Aşağıdaki komutu seçili kernel'imize göre veya "-P" öneki kullanarak kurulu olan her kernel için çalıştıralım.
$ mkinitcpio -p linux* veya $ mkinitcpio -P
Şimdi bizim için gerekli hizmetleri GBM desteğine göre aktif etmemiz gerekiyor.
Versiyonu NVIDIA ≥ 495 olan bütün sürücüler GBM'i desteklemektedir.
Ayrıntılı bilgi için bağlantı.
Adım 3 :
Kurulu Nvidia sürücü versiyonunu öğrenelim.
$ nvidia-smi
Çıktıda "Driver Version: "XXX"" yazılı satır sürücü versiyonunu göstermektedir.
Adım 4 :
Eğer sürücü versiyonu NVIDIA ≥ 495 ise aşağıdaki komutları sırasıyla çalıştıralım.
$ systemctl enable nvidia-suspend.service
$ systemctl enable nvidia-hibernate.service
$ systemctl enable nvidia-resume.service
Eğer sürücü versiyonu NVIDIA < 495 ise aşağıdaki komutları sırasıyla çalıştıralım.
$ systemctl enable nvidia-suspend.service
$ systemctl enable nvidia-hibernate.service
Sistemimizi yeniden başlatabiliriz.
Yukarıdaki "Wayland Kullanımını Kontrol Etme" başlığı altında gösterildiği üzere tekrar kontrol ettiğimizde artık Wayland'ın aktif olduğunu gözlemleyebiliriz. Eğer aktif değilse izlediğimiz adımları gözden geçirelim.
Kaynaklar
https://unix.stackexchange.com/a/325972
https://unix.stackexchange.com/a/355476
Yorumlar