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ıdanGDM'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.confadlı 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/grubdosyası içeriğindeki "GRUB_CMDLINE_LINUX_DEFAULT="..."yazılı satırın tırnak işareti içeriğine "nvidia_drm.mode=1yapı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-hardenedvb. ş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.confdosyası içeriğindeki "MODULES=(...)yazılı satırın parantez içeriğine "nvidia""nvidia_modeset""nvidia_uvmve "nvidia_drmmodü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.confadlı 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 "/vardizinini daha büyük boyuttaki geçici dosyaları tutabilmeye elverişli olan "/var/tmpdizini 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