После включения скринсейвера графический интерфейс перестаёт реагировать на мышь и клавиатуру. При этом мышиный курсор отображается и движется нормально, но элементы интерфейса на него не реагируют. Если принудительно завершить xfce4-screensaver проблема пропадает. Проблема наблюдается при использовании xfce4-screensaver 0.1.10. При использовании xfce4-screensaver 0.1.8, который установлен в образе slinux-rpi4-9.0-aarch64.img.xz проблема не наблюдается.
Уточнение: проблема наблюдалась на RPi4 с ядром 5.6.2. Проблема пропадает также если включить DRM путем настройки в config.txt dtoverlay=vc4-fkms-v3d
Проблема воспроизвелась на Таволге с Simply Linux 9, обновлённым до текущего p9_mipsel. Используя rpm -Uhv --oldpackage --nodeps удалось установить, что что-то произошло именно между 0.1.8 и 0.1.9: жесткий даунгрейд до 0.1.8 исправляет проблему, а до 0.1.9 -- нет.
Конкретно на Таволге проблема в том, что xfce4-screensaver не считает монитор настоящим. Такой вот патч исправляет проблему (но наверняка создаёт другие): --- a/src/gs-manager.c +++ b/src/gs-manager.c @@ -100,8 +100,9 @@ gs_manager_is_real_monitor (GdkMonitor *monitor) { // avoiding some weird gdk bug // federico> avb: or if you don't care about a little unexplained messiness, // just discard monitors where both fields are null? :) - if (gdk_monitor_get_manufacturer(monitor) == NULL && gdk_monitor_get_model(monitor) == NULL) - return FALSE; + if (gdk_monitor_get_manufacturer(monitor) == NULL && gdk_monitor_get_model(monitor) == NULL) { + gs_debug("Monitor is not real: %p; let's ignore that.", monitor); + } return TRUE; }
Created attachment 8815 [details] Что GDK думает о мониторе? Я проверил -- действительно, и на Rpi4 и на Таволге одна и та же проблема: gdk_monitor_get_model и gdk_monitor_get_manufacturer возвращают NULL. Драйвер btsm750 на Таволге действительно не умеет читать EDID. Простой скрипт для проверки в приложении. Для работы требуется libgtk+3-gir и python3-module-pygobject3 или что-то в этом роде. На рабочем ноуте (Сизиф, xfce4) скрипт выдаёт <eDP1> <LGD> На Таволге и на Rpi4 <None> <None>
Upstream bug: https://gitlab.xfce.org/apps/xfce4-screensaver/-/issues/44
Сегодня эту проблему наблюдал на Raspberry Pi 3 с ядром std-def.
SL P10 xfce4-screensaver-4.18.2-alt1.x86_64 ядро 6.1.32-un-def-alt1 Данная проблема возникает при выходе из ждущего режима. Если вслепую ввести пароль, то экран разблокируется: июн 15 18:49:08 work xfce4-screensav[4708]: UNSPECIFIED (__progname="xfce4-screensaver-dialog" uid=500 euid=500): pam_tcb(xfce4-screensaver:auth): Authentication passed for user from user(uid=500)
Вроде тут https://bugzilla.opensuse.org/show_bug.cgi?id=1210562 решили
(In reply to AEN from comment #8) > Вроде тут > > https://bugzilla.opensuse.org/show_bug.cgi?id=1210562 > > решили Апстримный фикс https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/3aa15c2278c12ead23ccbbd7923eab9b365e16a9 выглядит отлично.
(In reply to Ivan A. Melnikov from comment #9) > Апстримный фикс > > https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/ > 3aa15c2278c12ead23ccbbd7923eab9b365e16a9 > > выглядит отлично. Он вошел в xfce4-screensaver-4.18.2, который уже в p10.
(Ответ для Mikhail Efremov на комментарий #10) > Он вошел в xfce4-screensaver-4.18.2, который уже в p10. У меня воспроизводится в этой версии. Если стоит отметка "Блокировать экран при переходе в ждущий режим" и только если переход в ждущий режим осуществляется закрытием крышки ноутбука.
Возможно это другой баг. Но я подобное и с xscreensaver видел, так что проблема скорее всего где-то глубже.
(Ответ для Mikhail Efremov на комментарий #10) > (In reply to Ivan A. Melnikov from comment #9) > > Апстримный фикс > > > > https://gitlab.xfce.org/apps/xfce4-screensaver/-/commit/ > > 3aa15c2278c12ead23ccbbd7923eab9b365e16a9 > > > > выглядит отлично. > > Он вошел в xfce4-screensaver-4.18.2, который уже в p10. Тогда закрываю. Новой проблеме - новый баг.