Pemecahan Masalah Wayland
|
Halaman ini dikonversi secara otomatis dari Wiki. Dokumen ini telah diedit untuk dipublikasikan di Portal Dokumentasi Fedora, tetapi belum direview untuk keakuratan teknisnya. Mungkin saja
Ulasan mengenai akurasi teknis sangat dihargai. Jika Anda ingin membantu, lihat berkas README di repositori sumber untuk petunjuk. Permintaan pull diterima di https://pagure.io/fedora-docs/quick-docs Setelah Anda memperbaiki halaman ini, hapus pemberitahuan ini. |
Wayland dimaksudkan sebagai pengganti yang lebih sederhana untuk X11. Wayland mengubah rancangan arsitektur desktop Linux secara signifikan. Berbeda dengan X11, Wayland tidak memiliki server mandiri khusus. Apa yang sebelumnya dilakukan antara aplikasi, toolkit, Xserver, dan window manager kini dibagi antara aplikasi, toolkit, dan Wayland compositor yang mengelola komposisi, input, manajemen jendela, dan sebagainya. Aplikasi dan toolkit kini bertanggung jawab atas rendering dan dekorasi mereka sendiri (client side decorations), sehingga masalah biasanya terjadi antara toolkit (misalnya GTK+) dan Wayland compositor (misalnya mutter).
Anda dapat membaca lebih lanjut tentang Wayland di halaman wiki Inisiatif Wayland GNOME. Anda juga dapat membaca lebih lanjut tentang status fitur Wayland saat ini di halaman Fitur Wayland.
Mengidentifikasi masalah Wayland
Apakah Anda menjalankan sesi Wayland?
Di GNOME, terdapat tombol roda gigi pada layar login yang dapat digunakan untuk masuk ke sesi Wayland (disebut GNOME, yang merupakan opsi bawaan), atau sesi X11 lama (disebut GNOME on Xorg). Jika Anda memiliki akun pengguna tanpa kata sandi, ikon roda gigi tersebut tidak akan muncul; ikon tersebut hanya ditampilkan saat prompt kata sandi muncul. Gunakan tombol roda gigi untuk menentukan jenis sesi yang sedang Anda gunakan. Jika Anda ingin memulai sesi dengan cara lain, baca teknik lanjutan untuk mencoba Wayland.

Di KDE, terdapat dukungan untuk menjalankan sesi Wayland yang tertanam di dalam sesi X11 Anda. Anda perlu menginstal paket kwin-wayland dan kemudian mengikuti panduan di howto ini. Saat ini belum ada dukungan bawaan untuk menjalankan sesi Wayland penuh.
Lingkungan desktop lainnya saat ini belum mendukung untuk menjalankan sesi Wayland.
Mengidentifikasi jenis sesi saat runtime
Jika Anda ingin mengetahui jenis sesi yang sedang dijalankan saat ini tanpa keluar dan masuk kembali, ada beberapa cara untuk mengetahuinya:
-
Sesi Wayland seharusnya memiliki variabel
WAYLAND_DISPLAYyang disetel, sedangkan sesi X11 tidak memilikinya:$ echo $WAYLAND_DISPLAY wayland-0
-
loginctldapat memberikan informasi ini. Jalankan terlebih dahululoginctldan temukan nomor sesi Anda (biasanya berupa angka, dengan nama pengguna dan seat yang terkait). Kemudian lihat jenis sesi (x11atauwayland):$ loginctl show-session <YOUR_NUMBER> -p Type Type=x11
Jika Anda menjalankan sesi X11, bukan sesi Wayland, maka masalah Anda tidak terkait dengan Wayland. Itu merupakan bug baik pada aplikasi tertentu tersebut, atau pada X11 itu sendiri. Lihat Cara memecahkan masalah Xorg.
Apakah aplikasi Anda berjalan secara native di Wayland, atau menggunakan XWayland (lapisan kompatibilitas X11)?
Penting untuk mengetahui apakah aplikasi bermasalah adalah aplikasi Wayland native, atau berjalan melalui XWayland, yang memungkinkan aplikasi lama tetap berjalan di atas server Xorg tetapi ditampilkan dalam sesi Wayland.
Ada beberapa cara untuk mengidentifikasi apakah suatu aplikasi menggunakan Wayland atau XWayland:
-
Pilih jendela menggunakan
xwininfoatauxprop. Jalankan:$ xwininfo
Kursor mouse Anda akan berubah menjadi tanda silang di bawah X11, namun biasanya tidak berubah di Wayland. Klik di mana saja dalam jendela aplikasi yang ingin Anda uji. Jika perintah
xwininfoselesai (seharusnya menampilkan properti jendela di terminal), aplikasi yang diuji berjalan di bawah XWayland. Jika tidak ada respons (perintahxwininfomasih menunggu Anda memilih jendela), aplikasi tersebut berjalan di bawah Wayland (Anda dapat menutup perintah denganCtrl+C). Anda juga dapat menggunakan perintahxpropdengan langkah yang sama. -
Aplikasi XWayland tercantum dalam output
xlsclients. Jalankan:$ xlsclients
Namun, daftar ini tidak selalu sepenuhnya dapat diandalkan; beberapa aplikasi mungkin tidak tercantum.
-
Anda dapat mencoba menjalankan aplikasi dengan menghapus variabel lingkungan
DISPLAY:$ DISPLAY='' command
Jika aplikasi berjalan dengan baik, berarti aplikasi tersebut menggunakan Wayland secara native.
-
Anda dapat menjalankan aplikasi dengan variabel lingkungan
WAYLAND_DEBUG=1:$ WAYLAND_DEBUG=1 command
Jika Anda melihat banyak keluaran (dibandingkan dengan jalankan standar), aplikasi tersebut menggunakan Wayland secara native.
-
Di bawah GNOME, Anda dapat mengetahui hal ini menggunakan alat Looking Glass terintegrasi. Tekan
Alt+F2, lalu jalankan:lg
klik pada Windows di pojok kanan atas alat tersebut dan pilih jendela yang diinginkan dengan mengklik namanya. Jika Anda melihat
MetaWindowWaylandpada baris pertama, aplikasi tersebut berjalan di bawah Wayland. Jika Anda melihatMetaWindowX11pada baris pertama, aplikasi tersebut berjalan di bawah X11.
Jika Anda telah mengidentifikasi bahwa masalah berada pada aplikasi XWayland, coba reproduksi masalah tersebut di sesi X11 standar. Jika masalah juga muncul di sana, berarti masalah tersebut tidak terkait dengan Wayland, melainkan bug pada aplikasi tertentu tersebut atau pada server Xorg. Lihat Cara memecahkan masalah Xorg. Jika masalah hanya terjadi di bawah XWayland tetapi tidak di sesi X11, masalah tetap harus dilaporkan terhadap server Xorg karena XWayland disertakan di dalamnya (sebagai subpaket xorg-x11-server-Xwayland).
Mengidentifikasi komponen masalah
Wayland sendiri adalah sebuah protokol, dan jarang sekali masalah terletak pada protokol itu sendiri. Masalah biasanya ada pada aplikasi atau toolkit-nya, atau pada compositor.
Toolkit yang paling dikenal mendukung Wayland adalah:
-
GTK+ 3 - aplikasi bawaan di lingkungan GNOME hampir seluruhnya menggunakan toolkit ini. Perlu diperhatikan bahwa aplikasi yang masih menggunakan GTK+ 2 tidak mendukung Wayland.
-
QT 5 - banyak aplikasi di lingkungan KDE menggunakan toolkit ini. Perlu diperhatikan bahwa aplikasi yang masih menggunakan QT 4 tidak mendukung Wayland.
Compositor Wayland yang paling dikenal adalah:
Pengujian di bawah compositor yang berbeda
Jika Anda mengalami masalah dengan aplikasi Wayland, sangat berguna untuk mengetahui apakah masalah tersebut hanya muncul pada satu compositor tertentu (jika demikian kemungkinan besar ini adalah bug compositor) atau pada beberapa compositor (jika demikian kemungkinan bug-nya berada pada aplikasi/toolkit).
Silakan jalankan sesi Anda dengan compositor referensi Weston dan coba reproduksi masalahnya. Anda dapat menjalankan Weston sebagai jendela tertanam atau sebagai sesi penuh. Pertama, instal paketnya (Anda dapat membaca banyak informasi berguna di halaman man-nya):
$ sudo dnf install weston
Kemudian buat berkas konfigurasi yang menentukan bahwa Anda ingin memiliki dukungan XWayland diaktifkan dalam sesi Weston Anda. Buat ~/.config/weston.ini dengan isi berikut:
[core] + xwayland=true
Sekarang Anda dapat memulai Weston baik sebagai jendela tertanam atau sebagai sesi penuh.
-
Untuk memulai jendela Weston tertanam, jalankan ini dari terminal:
$ weston
Sebuah jendela Weston akan terbuka dan Anda akan melihat ikon terminal di pojok kiri atas. Gunakan ikon tersebut untuk meluncurkan terminal dan dari sana Anda dapat menjalankan aplikasi dan perintah lain menggunakan Weston. Keluar dari compositor cukup dengan menutup jendela atau menghentikan proses
weston. -
Untuk memulai sesi Weston penuh (tidak tertanam di dalam sesi X11 atau Wayland lainnya), beralihlah ke VT kosong (Ctrl+Alt+Fx) dan jalankan:
$ weston-launch
Anda dapat keluar dari sesi dengan menekan pintasan Control+Alt+Backspace.
Jika Anda dapat mereproduksi masalah dengan Weston, laporkan masalah tersebut terhadap aplikasi atau toolkit-nya (gtk+, qt, dan sebagainya). Jika tidak, laporkan masalah terhadap compositor yang digunakan lingkungan Anda (mutter, kwin, dan sebagainya). Jika masalah hanya terjadi pada aplikasi XWayland tetapi tidak pada aplikasi Wayland native, laporkan bug terhadap server Xorg.
Melaporkan masalah
Menggunakan perangkat lunak terbaru
Sebelum melaporkan bug, pastikan Anda menggunakan perangkat lunak versi terbaru yang tersedia. Pastikan tidak ada pembaruan sistem yang tertunda:
$ sudo dnf update
Jika ada (dan pembaruan yang tersedia tampak terkait dengan komponen yang mengalami masalah), silakan perbarui sistem dan periksa apakah masalah tersebut masih ada atau sudah diperbaiki.
Mencari laporan serupa
Untuk menghindari laporan duplikat dan menghemat waktu Anda dalam menelusuri masalah yang mungkin sudah pernah ditelusuri sebelumnya, silakan cari melalui laporan yang sudah ada terlebih dahulu. Masalah atau kekhawatiran yang paling umum tercantum di Masalah yang diketahui, keluhan umum, dan perubahan mendasar. Jika Anda tidak menemukannya di sana, lakukan pencarian lebih dalam. Anda dapat menemukan masalah terkait Wayland di tempat-tempat berikut:
-
[https://bugzilla.gnome.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&component=Backend%3A%20Wayland&component=wayland&list_id=74680&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=gtk%2B&product=mutter&query_based_on=&query_format=advanced mutter/wayland dan GTK+/wayland di GNOME Bugzilla]
-
Pelacak masalah terkait Wayland di seluruh Red Hat Bugzilla (Pelacak KDE)
-
[https://bugzilla.redhat.com/buglist.cgi?classification=Fedora&component=wayland&list_id=4118943&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=Fedora&query_based_on=&query_format=advanced&resolution=--- Wayland di Red Hat Bugzilla]
-
[https://bugs.freedesktop.org/buglist.cgi?list_id=561109&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=Wayland&query_based_on=&query_format=advanced&resolution=--- Wayland di Freedesktop Bugzilla]
-
Pencarian Google
Melaporkan bug
Setelah Anda mengidentifikasi komponen mana yang kemungkinan besar menjadi penyebab masalah dan tidak menemukan laporan sebelumnya tentangnya, ada beberapa tempat di mana Anda dapat melaporkannya:
-
Red Hat Bugzilla - direkomendasikan untuk masalah yang terkait dengan Wayland itu sendiri, compositor Weston, aplikasi non-GNOME, proyek KDE, dan toolkit QT
-
GNOME Bugzilla - direkomendasikan untuk masalah yang terkait dengan compositor mutter, toolkit GTK+, dan aplikasi di bawah proyek GNOME (sebagian besar aplikasi bawaan di Fedora Workstation)
Saat melaporkan masalah, harap buat laporan Anda memblokir pelacak kami agar kami dapat memiliki gambaran menyeluruh mengenai apa yang rusak di berbagai komponen. Dalam laporan bug Anda, setel Blocks: WaylandRelated atau Blocks: KDEWaylandRelated (Anda mungkin perlu menampilkan bidang lanjutan untuk melihat kolom Blocks:). Ini akan membuat laporan Anda memblokir salah satu pelacak berikut, tergantung di mana Anda melaporkannya:
Informasi yang perlu disertakan dalam laporan bug Anda
-
Jurnal sistem. Karena tidak ada server unik seperti server X11, sebagian besar informasi penting akan berasal dari Wayland compositor dan aplikasi. Semua informasi tersebut kini seharusnya sudah tercatat dalam jurnal sistem. Anda dapat menyimpan seluruh jurnal sejak boot terakhir dengan perintah berikut:
$ journalctl -ab > journal.log
Anda juga dapat mengedit berkas tersebut dan, sesuai dengan stempel waktunya, menghapus semua data yang jauh sebelum masalah terjadi untuk membuat log menjadi lebih ringkas. * Jika sistem Anda mengalami crash atau tidak responsif sehingga Anda harus melakukan reboot, Anda dapat melihat jurnal dari boot sebelumnya menggunakan
journalctl -a -b -1. -
Keluaran debug Wayland. Jika Anda dapat mereproduksi masalahnya, jalankan aplikasi yang bermasalah seperti ini:
$ WAYLAND_DEBUG=1 command |& tee debug.out
Anda akan melihat banyak keluaran yang muncul. Keluaran ini mencakup semua komunikasi antara aplikasi dan compositor.
-
Informasi apakah masalah yang sama juga terjadi ketika Anda menjalankan aplikasi menggunakan XWayland alih-alih Wayland. Untuk aplikasi GTK+ 3, Anda dapat memaksa aplikasi native Wayland agar berjalan menggunakan XWayland seperti berikut:
$ GDK_BACKEND=x11 command
Sebaliknya, Anda juga dapat memaksa aplikasi XWayland untuk berjalan menggunakan Wayland (jika hanya memiliki dukungan eksperimental):
$ GDK_BACKEND=wayland command
Aplikasi QT 5 berjalan dengan XWayland secara default. Anda dapat memaksa penggunaan backend Wayland dengan:
$ QT_QPA_PLATFORM=wayland-egl command
Semua hal ini hanya berlaku untuk aplikasi GTK+ 3 dan QT 5.
-
Deskripsi perangkat keras berguna untuk beberapa bug yang berkaitan dengan perangkat keras:
$ lspci -nn > lspci.out
-
Versi paket. Anda dapat mengumpulkan daftar dan versi semua paket yang terinstal dengan perintah berikut:
$ rpm -qa | sort > packages.out
-
Informasi umum yang disebutkan di informasi yang harus ada pada setiap laporan bug.
Men-debug gnome-shell
Jika gnome-shell berhenti atau tidak responsif, sangat membantu untuk mendapatkan backtrace dari prosesnya dan melampirkannya pada laporan. Jika hal ini terjadi, beralihlah ke VT lain jika memungkinkan (Ctrl+Alt+F3 hingga F7), atau masuk menggunakan ssh. Instal terlebih dahulu simbol debug:
$ sudo dnf debuginfo-install `rpm -q gnome-shell`
Kemudian lampirkan debugger gdb ke proses gnome-shell Anda:
$ gdb -p `pgrep -U $(id -un) -x gnome-shell` ... (gdb) set logging on (gdb) thread apply all backtrace full ... press Enter until the whole backtrace is displayed ... (gdb) quit
Anda akan memiliki backtrace yang tersimpan dalam berkas gdb.txt.
Men-debug mutter
Anda dapat men-debug mutter (yang digunakan dalam gnome-shell) dengan mengatur variabel lingkungannya. Variabel ini perlu diatur sebelum menjalankan gnome-shell, jadi jika Anda ingin masuk ke GNOME dari GDM, Anda perlu membuat skrip pembungkus (wrapper script) yang dipanggil dari berkas desktop di /usr/share/wayland-sessions.
FIXME: Menyertakan skrip pembungkus dan berkas desktop di sini akan sangat membantu.
Masalah yang diketahui, keluhan umum, perubahan mendasar
Di sini akan dicantumkan masalah besar yang diketahui rusak, belum diimplementasikan, atau dengan sengaja berperilaku berbeda dari aplikasi X11 biasa. Lihat juga Fitur Wayland yang mencantumkan semua fitur yang masih hilang atau dalam pengembangan beserta detailnya.
Untuk melihat semua masalah yang diketahui, lihat laporan Bugzilla yang disebutkan di Mencari laporan serupa.
Aplikasi grafis tidak dapat dijalankan sebagai root dari terminal
Tidak memungkinkan untuk memulai aplikasi grafis di bawah akun root dari terminal saat menggunakan su atau sudo. Aplikasi yang menggunakan polkit untuk meminta izin administrator hanya untuk operasi tertentu dan hanya ketika diperlukan tidak terpengaruh (karena aplikasi tersebut tidak langsung dijalankan sebagai root). Diskusi masih berlangsung mengenai pendekatan terbaik yang akan diambil, lihat bug 1274451 dan "Diskusi tentang menjalankan aplikasi GUI sebagai root" di milis fedora-devel.
Banyak utilitas X11 terkenal tidak berfungsi
Pengguna berpengalaman terbiasa menggunakan berbagai macam utilitas terkait X11 seperti xkill, xrandr, xdotool, xsel. Alat-alat ini tidak akan berfungsi di sesi Wayland, atau hanya berfungsi pada aplikasi XWayland tetapi tidak pada aplikasi Wayland. Beberapa alat mungkin memiliki penggantinya yang memungkinkan untuk melakukan tugas serupa.
FIXME: tambahkan beberapa pengganti yang mendukung Wayland untuk alat X11 populer
Gim dan aplikasi lainnya tidak dapat mengubah resolusi monitor
Sekarang aplikasi tidak lagi dapat mengubah resolusi monitor. Biasanya ini dilakukan oleh gim untuk meningkatkan kinerja. Gim berbasis Wayland akan menggunakan pendekatan berbeda yaitu menyesuaikan skala outputnya. Namun untuk gim X11 (yang berjalan melalui XWayland), solusi ini tidak tersedia. Hal ini menyebabkan berbagai perilaku berbeda tergantung pada cara gim tersebut ditulis — gim mungkin tetap di resolusi desktop, muncul sebagai gambar kecil di tengah dengan bilah hitam di sekelilingnya, crash saat dijalankan, atau berperilaku lain. Lihat bug 1289714.
Untuk beberapa gim, solusi sementara yang mungkin adalah dengan menetapkan resolusi monitor kustom secara manual sebelum menjalankan gim, jika benar-benar diperlukan. Namun hal ini tidak selalu membantu.
Perekaman layar tidak tersedia dengan aplikasi biasa
Salah satu fitur Wayland adalah desain keamanannya, yang membantu melindungi pengguna dari aplikasi berbahaya. Aplikasi tidak lagi dapat melihat seluruh isi layar dan memata-matai Anda. Namun, hal ini juga berarti Anda tidak dapat menjalankan aplikasi umum (seperti shutter atau gtk-recordmydesktop) untuk membuat tangkapan layar atau rekaman layar desktop Anda — aplikasi tersebut hanya akan melihat jendelanya sendiri dan tidak yang lain (atau bisa langsung crash). Aplikasi sistem (yang tepercaya) perlu digunakan untuk melakukan tindakan ini.
Di GNOME, Anda dapat menggunakan alat Screenshot (tersedia di overview, melalui tombol Printscreen, atau melalui perintah gnome-screenshot) untuk mengambil tangkapan layar dari seluruh desktop atau jendela tertentu. Anda dapat menekan pintasan keyboard Ctrl+Alt+Shift+R untuk memulai perekaman video seluruh desktop (hentikan dengan menekan pintasan yang sama lagi; indikator akan muncul di pojok kanan atas, atau rekaman berhenti otomatis setelah 30 detik secara default) dan menemukan hasil rekaman di folder ~/Videos. Untuk perekaman layar, Anda juga dapat menggunakan ekstensi gnome-shell EasyScreenCast.
Kursor mouse tersendat di bawah beban kerja tinggi
Jika komputer Anda sedang dalam beban kerja tinggi, gerakan kursor mouse mungkin tidak lagi halus, melainkan tersendat (terhenti untuk sesaat lalu meloncat ke posisi lain). Hal ini kemungkinan lebih terlihat pada sistem lambat atau sistem dengan jumlah inti CPU yang sedikit. Lihat bug 745032.
Peristiwa keyboard terkadang berulang dengan cepat
Ada masalah langka ketika Anda menekan tombol untuk mengetik huruf dan muncul beberapa salinan huruf tersebut sekaligus. Lihat bug 757942 dan bug 777693.
Tidak semua tombol dapat dikirim ke desktop jarak jauh atau mesin virtual
Beberapa aplikasi meneruskan semua input, termasuk tombol pintasan khusus sistem seperti atau , ke sistem jarak jauh. Ini biasanya terjadi pada aplikasi penampil desktop jarak jauh seperti vncviewer atau manajer mesin virtual seperti virt-manager atau boxes. Di bawah Wayland, beberapa pintasan ini tidak dapat dicegat dan oleh karena itu digunakan oleh sistem host, bukan sistem jarak jauh/guest. Lihat bug 1285770.
Want to help? Learn how to contribute to Fedora Docs ›