Bug 26405 - incompatible with rundm (xinitrc)
Summary: incompatible with rundm (xinitrc)
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: xinitrc (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
: 36769 37182 39331 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-10-04 18:00 MSK by ildar
Modified: 2021-01-21 12:41 MSK (History)
18 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ildar 2011-10-04 18:00:31 MSK
1. включаю Lightdm:
  echo LDM > /etc/sysconfig/desktop
2. service dm restart
Lightdm не стартует.

strace на rundm показывает:
13510 13:21:51 execve("/usr/sbin/lightdm", ["lightdm", "-nodaemon"], [/* 33 vars */]) = 0
[...]
13510 13:21:51 write(2, "Unknown option -nodaemon\n", 25) = 25
13510 13:21:51 write(2, "Run 'lightdm --help' to see a fu"..., 74) = 74

Оно вообще работает?
Comment 1 Alexey Shabalin 2011-10-04 18:50:08 MSK
Подозреваю, что проблема не в этом.
Рискну предположить что используется systemd, и параметр -nodaemon получается из prefdm.service.
Попробуй скопировать /lib/systemd/system/prefdm.service в /etc/systemd/system, убрать в нём -nodaemon и перезапустить сервис.
Comment 2 ildar 2011-10-04 20:28:28 MSK
(В ответ на комментарий №1)
> Подозреваю, что проблема не в этом.
> Рискну предположить что используется systemd
Смело, но нет, ни разу не systemd.

Обычный init.d. Обычный Сизиф+ GNOME 3.2. gdm в нём не запускается, поэтому пошёл искать альтернативы.

Мне кажется, что проблему легко расковырять, запустив рутом вот это:
strace -fto /tmp/rundm.stra rundm
посмотри, что там rundm execve-ит.
Comment 3 Lenar Shakirov 2011-10-04 20:46:34 MSK
Опция "-nodaemon" добавляется здесь:
http://git.altlinux.org/gears/x/xinitrc.git?p=xinitrc.git;a=blob;f=xinitrc/src/rundm.c#l46

gdm и kde ее понимают, lxdm ее просто игнорирует
Comment 4 Alexey Shabalin 2011-11-14 16:40:51 MSK
(В ответ на комментарий №3)
> Опция "-nodaemon" добавляется здесь:
> http://git.altlinux.org/gears/x/xinitrc.git?p=xinitrc.git;a=blob;f=xinitrc/src/rundm.c#l46
> 
> gdm и kde ее понимают, lxdm ее просто игнорирует

-nodaemon понимает только xdm.
остальные все игнорируют, у кого-то это получается лучше, у кого-то хуже.
gdm пытаясь игнорировать, выцепляет "d" и включает debug.
lightdm сейчас себя ведёт также.

Перевешиваю я багу на xinitrc с просьбой не добавлять этот параметр.
Возможно лучше добавлять -nodaemon только для xdm внутри prefdm.
Comment 5 Zerg 2012-02-18 16:32:06 MSK
(В ответ на комментарий №4)
> -nodaemon понимает только xdm.
> остальные все игнорируют
Не говорите за всех. kdm-ы тоже понимают
Comment 6 Alexey Shabalin 2013-01-31 16:14:45 MSK
Еще раз прошу адаптировать rundm для gdm и lightdm.
Прошу передавать "-nodaemon" только для xdm и kdm.
Уже несколько лет gdm работает в режиме debug, с этим надо что-то делать.
Comment 7 Dmitry V. Levin 2013-01-31 16:49:44 MSK
/etc/X11/prefdm на данный момент поддерживает 8 dm'ов.
Для каждого из них нужно определить, нужен -nodaemon или нет.
Comment 8 Alexey Shabalin 2013-01-31 18:13:02 MSK
(В ответ на комментарий №7)
> /etc/X11/prefdm на данный момент поддерживает 8 dm'ов.
> Для каждого из них нужно определить, нужен -nodaemon или нет.

xdm - поддерживает
kdm - поддерживает
wdm - поддерживает
gdm - не поддерживает, реагирует на "-d" и включает debug
mdm - не поддерживает, реагирует на "-d" и включает debug
lightdm - не поддерживает. , реагирует на "-d" и включает debug. Специально патчится чтобы не падать с "-nodaemon"

entrance - "--nodaemon" или "-n". Специально патчится чтобы не падать с "-nodaemon"

lxdm - в аргументах "-D" - debug, а "-d" - daemon, так что -nodaemon скорее всего работает ровно наоборот.
Comment 9 Mikhail Efremov 2013-01-31 19:09:01 MSK
(В ответ на комментарий №8)
> gdm - не поддерживает, реагирует на "-d" и включает debug

gdm, который gdm2.20 - поддерживает.
Для gdm 3.6 в gentoo есть патч:
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch?view=log

> mdm - не поддерживает, реагирует на "-d" и включает debug

mdm, который mint-display-manager - умеет (потому что это gdm 2.20).
И я не уверен, что mdm, который mate-d-m еще кому-то интересен.
Comment 10 Alexey Shabalin 2013-01-31 19:15:24 MSK
(В ответ на комментарий №9)
> (В ответ на комментарий №8)
> > gdm - не поддерживает, реагирует на "-d" и включает debug
> 
> gdm, который gdm2.20 - поддерживает.
> Для gdm 3.6 в gentoo есть патч:
> http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch?view=log
> 
> > mdm - не поддерживает, реагирует на "-d" и включает debug
> 
> mdm, который mint-display-manager - умеет (потому что это gdm 2.20).
> И я не уверен, что mdm, который mate-d-m еще кому-то интересен.
Ок, ошибся.
Всем кажется, что надо патчить все *dm для поддержки -nodaemon?
Мне кажется в апстримы вообще лучше поменьше вмешиваться.
Comment 11 Dmitry V. Levin 2013-01-31 21:46:42 MSK
(In reply to comment #10)
> (В ответ на комментарий №9)
> > (В ответ на комментарий №8)
> > > gdm - не поддерживает, реагирует на "-d" и включает debug
> > 
> > gdm, который gdm2.20 - поддерживает.
> > Для gdm 3.6 в gentoo есть патч:
> > http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch?view=log
> > 
> > > mdm - не поддерживает, реагирует на "-d" и включает debug
> > 
> > mdm, который mint-display-manager - умеет (потому что это gdm 2.20).
> > И я не уверен, что mdm, который mate-d-m еще кому-то интересен.
> Ок, ошибся.
> Всем кажется, что надо патчить все *dm для поддержки -nodaemon?

Если $dm из одного пакета требует указания -nodaemon, а из другого - не поддерживает -nodaemon, то для того, чтобы их различать, в /etc/sysconfig/desktop придется записывать разные слова.  Например, если GNOME это gdm из gnome3, то -nodaemon не нужен, а если это gdm2.20, то -nodaemon нужен, т.е. одного слова GNOME уже получается недостаточно.

Вообще вся эта архитектура prefdm устарела, конечно.
Comment 12 Mikhail Efremov 2013-01-31 21:59:14 MSK
(В ответ на комментарий №11)
> Если $dm из одного пакета требует указания -nodaemon, а из другого - не
> поддерживает -nodaemon, то для того, чтобы их различать, в
> /etc/sysconfig/desktop придется записывать разные слова.  Например, если GNOME
> это gdm из gnome3, то -nodaemon не нужен, а если это gdm2.20, то -nodaemon
> нужен, т.е. одного слова GNOME уже получается недостаточно.

Если менять, то для gdm2.20. Особенно учитывая, что с современным гномом он, возможно, вообще не работоспособен.
Comment 13 Alexey Shabalin 2013-01-31 22:23:03 MSK
(В ответ на комментарий №11)
> Вообще вся эта архитектура prefdm устарела, конечно.

Ну так может обновим эту архитектуру?
Сразу только не кричите, что еще пользуются sysv :) Дайте сначала прикинуть.
Если предположить, что в десктопах используется systemd, то достаточно для каждого dm добавить *.service file.
И как-то предусмотреть невозможность установки более одного dm.
Comment 14 Michael Shigorin 2013-02-01 00:01:57 MSK
А что ж им не пользоваться -- работает и достаточно предсказуемо.
Кусочки в dm.d/ каком и впрямь напрашиваются, тем не менее.
Comment 15 Sergey V Turchin 2013-02-01 13:28:25 MSK
(В ответ на комментарий №11)
> Вообще вся эта архитектура prefdm устарела, конечно.
Формат /etc/sysconfig/desktop тоже ;-)
Comment 16 Sergey V Turchin 2013-02-01 13:31:46 MSK
(В ответ на комментарий №13)
> для каждого dm добавить *.service file.
Приведите пример строки my.service, в которой будет указан запуск до X-ов.

> И как-то предусмотреть невозможность установки более одного dm.
Боюсь, оно потянет за собой невозможность установки более одной de.
Comment 17 Alexey Shabalin 2013-02-01 14:28:53 MSK
(В ответ на комментарий №16)
> (В ответ на комментарий №13)
> > для каждого dm добавить *.service file.
> Приведите пример строки my.service, в которой будет указан запуск до X-ов.

[Unit]
Before=graphical.target

[Install]
WantedBy=graphical.target


не понял, X где-то ещё запускаются? В чем проблема?

Примеры для dm уже в апстримах:
http://git.gnome.org/browse/gdm/tree/data/gdm.service.in


> > И как-то предусмотреть невозможность установки более одного dm.
> Боюсь, оно потянет за собой невозможность установки более одной de.
Все dm умеют запускать разные de.
Если dm провайдит виртуальный dm, а de требует не конкретный dm, а виртуальный - то все нормально.
Comment 18 Sergey V Turchin 2013-02-01 14:49:58 MSK
(В ответ на комментарий №17)
> [Unit]
> Before=graphical.target
> [Install]
> WantedBy=graphical.target
Спасибо!
 
> В чем проблема?
В недостаточном чтении докумментации :-)
Comment 19 Sergey V Turchin 2013-02-01 14:54:27 MSK
(В ответ на комментарий №17)
> > > И как-то предусмотреть невозможность установки более одного dm.
> > Боюсь, оно потянет за собой невозможность установки более одной de.
> Все dm умеют запускать разные de.
> Если dm провайдит виртуальный dm, а de требует не конкретный dm
>, а виртуальный - то все нормально.
Если все будет хорошо, то все будет хорошо, но на самом деле хорошо не будет, поэтому хорошо не будет ;-)
Лучше несколько *dm.service, чем бегать за мантейнерами других DE и просить, чтоб не гадили остальным.
Comment 20 Alexey Shabalin 2013-02-01 14:57:56 MSK
(В ответ на комментарий №19)
> (В ответ на комментарий №17)
> > > > И как-то предусмотреть невозможность установки более одного dm.
> > > Боюсь, оно потянет за собой невозможность установки более одной de.
> > Все dm умеют запускать разные de.
> > Если dm провайдит виртуальный dm, а de требует не конкретный dm
> >, а виртуальный - то все нормально.
> Если все будет хорошо, то все будет хорошо, но на самом деле хорошо не будет,
> поэтому хорошо не будет ;-)
> Лучше несколько *dm.service, чем бегать за мантейнерами других DE и просить,
> чтоб не гадили остальным.

Не спорю, несколько dm, не плохо. Только не будет одного места выбора.
Надо делать:
systemctl disable kdm.service
systemctl enable gdm.service

Или придумать какой-нибудь control, который это будет делать за пользователя.
Comment 21 Sergey V Turchin 2013-02-01 15:05:10 MSK
(В ответ на комментарий №20)
> Только не будет одного места выбора.
А средствами systemd намудрить ничего нельзя?
Там есть возможность запускать 1.service OR 2.service?
Comment 22 Alexey Shabalin 2013-02-01 15:18:33 MSK
(В ответ на комментарий №21)
> (В ответ на комментарий №20)
> > Только не будет одного места выбора.
> А средствами systemd намудрить ничего нельзя?
> Там есть возможность запускать 1.service OR 2.service?
Можно расставить конфликты, типа
Conflicts=kdm.service
Но тогда это будет рулетка, что запустится.
Comment 23 Sergey V Turchin 2013-02-01 15:23:02 MSK
Или как вариант сделать файл prefdm.service  альтернативой
Comment 24 Sergey V Turchin 2013-02-01 15:24:18 MSK
(В ответ на комментарий №22)
> Conflicts=kdm.service
> Но тогда это будет рулетка, что запустится.
Не. Это не подходит, кончено же.
Comment 25 ildar 2013-07-24 12:41:30 MSK
(В ответ на комментарий №22)
> Можно расставить конфликты, типа
> Conflicts=kdm.service
> Но тогда это будет рулетка, что запустится.

Почему рулетка?
запустится тот, который за-enable-ен. Если пользователь пытается запустить альтернативный, то первый будет остановлен.
Если пользователь за-enable-ит более чем один, тогда, да, рулетка. Но рулетка с руганью, которая будет видна (явно).

(В ответ на комментарий №11)
> Вообще вся эта архитектура prefdm устарела, конечно.

Тогда нужны альтернативы. Какие у нас есть альтернативы? service-файлы? пока я обнаружил оный только в одном gdm3.
Comment 26 Yuri N. Sedunov 2018-05-19 23:08:48 MSK
gdm начиная с 3.28.2 таки перестанет пытаться игнорировать  неизвестные опции и будет считать их ошибкой.
https://bugzilla.gnome.org/show_bug.cgi?id=795494
https://git.gnome.org/browse/gdm/commit/?h=gnome-3-28&id=85a68ab14aad3d83abe1317d0c067f4d80a4dc82
Comment 27 Sergey V Turchin 2018-05-20 11:23:34 MSK
Этот баг сильно устарел.
При загрузке есть только display-manager.service, а каждый дистрибутив может при установке включать конкретный dm.service, который алиас на display-manager.service. Т.е. для systemd prefdm лишь одна из возможных альтернатив.

В KWorkstation sddm.service включается при установке.
Comment 28 Sergey V Turchin 2018-05-20 11:32:37 MSK
(В ответ на комментарий №20)
> Надо делать:
> systemctl disable kdm.service
> systemctl enable gdm.service
Я делаю:
systemctl disable display-manager.service
systemctl enable sddm.service
systemctl enable sddm.service
Comment 29 Sergey V Turchin 2018-05-20 11:37:48 MSK
(В ответ на комментарий №28)
> systemctl enable sddm.service
> systemctl enable sddm.service
Нажал нечаянно.
Вот то, что я делаю реально, переложенное на самый общий случай:
systemctl disable display-manager.service
systemctl enable realneed.service
systemctl enable fallback1.service
systemctl enable fallback2.service
[...]
systemctl enable prefdm.service
systemctl enable display-manager.service
Comment 30 Alexey Shabalin 2018-05-28 02:59:18 MSK
(В ответ на комментарий №29)
> (В ответ на комментарий №28)
> > systemctl enable sddm.service
> > systemctl enable sddm.service
> Нажал нечаянно.
> Вот то, что я делаю реально, переложенное на самый общий случай:
> systemctl disable display-manager.service
> systemctl enable realneed.service
> systemctl enable fallback1.service
> systemctl enable fallback2.service
> [...]
> systemctl enable prefdm.service
> systemctl enable display-manager.service

Но зачем так много команд?
Они все должны сами отрабатывать, при наличии
/lib/systemd/system-preset/85-display-manager.preset
и systemctl enable display-manager.service тоже не надо, лучше 
systemctl set-default graphical.target
Comment 31 Alexey Shabalin 2019-02-25 01:59:26 MSK
Ну так что, не пришло время отказаться от prefdm?
В предверии p9?
Может оставить его только для sysv, а в systemd замаскировать (prefdm.service -> /dev/null)?
Все *dm имеют unit файл для systemd.
Comment 32 AEN 2019-02-25 02:01:20 MSK
(В ответ на комментарий №31)
> Ну так что, не пришло время отказаться от prefdm?
> В предверии p9?
> Может оставить его только для sysv, а в systemd замаскировать (prefdm.service
> -> /dev/null)?
> Все *dm имеют unit файл для systemd.

Хорошая мысль.
Comment 33 Sergey V Turchin 2019-02-25 13:09:34 MSK
(В ответ на комментарий №31)
> Ну так что, не пришло время отказаться от prefdm?
Я в KWorkstation сразу отказался.
Comment 34 Ivan A. Melnikov 2019-08-01 11:09:58 MSK
> Ну так что, не пришло время отказаться от prefdm?
> В предверии p9?

Это конечно хорошее решение, но что делать с обновлениями? Сегодня переводил одну из домашних машин с p8 на p9 -- эта система на ней ещё p6 видела, там systemd и вполне работал prefdm.service, запускавший lightdm. После перезагрузки prefdm.service запустить lightdm не смог и машина осталась без X:

авг 01 08:53:17 europa.localdomain prefdm[1258]: Unknown option -nodaemon
авг 01 08:53:17 europa.localdomain prefdm[1258]: Run 'lightdm --help' to see a full list of available command line options.

Я то знаю что делать, но хотелось бы дистрибутивного решения.
Comment 35 Антон Мидюков 2019-08-01 11:18:06 MSK
*** Bug 36769 has been marked as a duplicate of this bug. ***
Comment 36 Sergey V Turchin 2019-08-01 17:36:48 MSK
(В ответ на комментарий №34)
> Это конечно хорошее решение, но что делать с обновлениями?
триггер в .spec при обновлениия с версии меньше определенной(чтоб не портить более одного раза), который будет делать
systemctl disable display-manager.service
systemctl enable display-manager.service
при отсутствии prefdm.service переключится любого присутствующего везунчика.
Comment 37 Michael Shigorin 2019-08-01 19:07:20 MSK
(В ответ на комментарий №36)
> триггер в .spec при обновлениия с версии меньше определенной
> (чтоб не портить более одного раза), который будет делать
> systemctl disable display-manager.service
> systemctl enable display-manager.service
> при отсутствии prefdm.service переключится любого присутствующего везунчика.
Н-да, на systemd-utils у нас уже зависимость в startup есть, оказывается.
Comment 38 Sergey V Turchin 2019-08-02 10:58:19 MSK
(В ответ на комментарий №37)
> Н-да, на systemd-utils у нас уже зависимость в startup есть, оказывается.
Можно и без зависимости сделать. Не суть.
Comment 39 nwtour 2019-09-03 20:45:37 MSK
*** Bug 37182 has been marked as a duplicate of this bug. ***
Comment 40 Vladislav Zavjalov 2019-12-14 20:18:47 MSK
До сих пор актуально. Я бы вообще убрал параметр -nodaemon из rundm и добавил в prefdm - там, где надо. Могу попробовать это изменение сделать.
Comment 41 Vladislav Zavjalov 2019-12-15 13:54:44 MSK
Моя версия исправления:
http://git.altlinux.org/people/slazav/packages/?p=xinitrc.git;a=commit;h=78f48d789a26b3374db09df03123eb60e38a36a4
Comment 42 Andrey Cherepanov 2020-11-23 11:12:12 MSK
*** Bug 39331 has been marked as a duplicate of this bug. ***
Comment 43 Vyacheslav Dikonov 2020-11-24 10:05:42 MSK
Это писец. 

7 лет молоть языками и НИЧЕГО не сделать с багом, который вырубает возможность нормальной загрузки системы и гарантированно порождает сонм пользователей, которые всем расскажут "Какое падучее г. этот ваш линукс". Иметь готовое лекарство и не применить его...

На своем примере убедился, что в Сизифе кошмар с dm без qt/kde зависимостей. 
gdm вообще не запускается непонятно почему, но может притянуться и выпихнуть gdm2.20 сломав загрузку (случалось). Lightdm тоже может сломаться при перестановках пакетов из-за этой гадкой опции...
Comment 44 Антон Мидюков 2020-12-05 10:09:28 MSK
(Ответ для Vyacheslav Dikonov на комментарий #43)
> Это писец. 
> 
> 7 лет молоть языками и НИЧЕГО не сделать с багом, который вырубает
> возможность нормальной загрузки системы и гарантированно порождает сонм
> пользователей, которые всем расскажут "Какое падучее г. этот ваш линукс".
> Иметь готовое лекарство и не применить его...
> 
> На своем примере убедился, что в Сизифе кошмар с dm без qt/kde зависимостей. 
> gdm вообще не запускается непонятно почему, но может притянуться и выпихнуть
> gdm2.20 сломав загрузку (случалось). Lightdm тоже может сломаться при
> перестановках пакетов из-за этой гадкой опции...

В стартеркитах, начная с p9, lightdm запускается через lightdm.service. Проблема существует только при обновлении стартеркитов с p8 на p9. Нужно выключить prefdm и включить lightdm.service
Comment 45 Sergey V Turchin 2020-12-05 11:30:02 MSK
(Ответ для Антон Мидюков на комментарий #44)
> Нужно
Для любого дистрибутива
# systemctl disable display-manager.service
# systemctl enable нужныйDM.service
Comment 46 Michael Shigorin 2020-12-05 15:53:27 MSK
(Ответ для Антон Мидюков на комментарий #44)
> В стартеркитах, начиная с p9, lightdm запускается через lightdm.service.
> Проблема существует только при обновлении стартеркитов с p8 на p9.
Не только стартеркитов -- дистрибутивов, видимо, тоже.

> Нужно выключить prefdm и включить lightdm.service

Кстати, жаль, что никто из наткнувшихся на это так и не добавил строчку
на страничку http://altlinux.org/Update/p9; также просится в eepm, раз уж типовой рецепт.

Добавил http://altlinux.org/Update/p9#Вход_в_систему_(prefdm)
Comment 47 Sergey V Turchin 2020-12-05 18:49:55 MSK
(Ответ для Michael Shigorin на комментарий #46)
>  просится в eepm, раз уж типовой рецепт.
Заскриптовать:
# systemctl disable display-manager.service
# systemctl enable sddm.service
# systemctl enable lightdm.service
# systemctl enable каждый-из-prefdm.service
Первый попавшийся включится, остальные отработают вхолостую.
Comment 48 Dmitry V. Levin 2020-12-05 18:59:52 MSK
В этом пакете что-нибудь делать надо?
Comment 49 Vladislav Zavjalov 2020-12-05 19:33:30 MSK
Ну вот чуть выше я писал свое предложение:
 http://git.altlinux.org/people/slazav/packages/?p=xinitrc.git;a=commit;h=78f48d789a26b3374db09df03123eb60e38a36a4

Насколько я помню, идея в том, чтобы из rundm.c и prefdm.service -dodaemon убрать. А prefdm пусть не только выбирает, какой dm нужен, но и подбирает нужные флаги для каждого dm. Так получится гораздо более гибкая схема, где каждый dm можно будет запускать с нужными флагами, не выделяя отдельно -nodaemon.

Изменения в perfdm, возможно, надо еще внимательно кому-нибудь перечитать. Я там  был в процессе починки своей неработающей системы и начал с того, что упростил все непонятное.
Comment 50 Dmitry V. Levin 2020-12-05 19:48:47 MSK
Я, честно говоря, не понимаю, зачем в современном мире нужен prefdm service,
да ещё и такой, что знает про каждый dm настолько, что сам подбирает ему параметры.
Comment 51 Vladislav Zavjalov 2020-12-05 19:51:01 MSK
Ну, тогда надо какое-то более глубокое изменение делать, убирать prefdm...
Comment 52 Sergey V Turchin 2020-12-07 09:03:07 MSK
(Ответ для Dmitry V. Levin на комментарий #50)
> Я, честно говоря, не понимаю, зачем в современном мире нужен prefdm service,
Можно его убрать, а по окончанию
# systemctl disable display-manager.service
# systemctl enable display-manager.service
и он включится, если какой-нибудь есть.
Comment 53 Антон Мидюков 2020-12-07 10:28:49 MSK
(Ответ для Dmitry V. Levin на комментарий #50)
> Я, честно говоря, не понимаю, зачем в современном мире нужен prefdm service,
> да ещё и такой, что знает про каждый dm настолько, что сам подбирает ему
> параметры.

К примеру, sddm через prefdm работает одинаково стабильно как в live, так и в установленной системе. А sddm.service не работает в live.

И ещё одна проблема это sysvinit. Нужно же сделать init-скрипты для каждого display manager'а. Если сделать, то prefdm будет не нужен.
Comment 54 Sergey V Turchin 2020-12-07 13:47:20 MSK
(Ответ для Антон Мидюков на комментарий #53)
> К примеру, sddm через prefdm работает одинаково стабильно как в live, так и
> в установленной системе. А sddm.service не работает в live.
У меня работает. А вот, на aarch64 почему-то фиг. Я думал, причина связана с mkimage. Попробую выяснить.

> И ещё одна проблема это sysvinit. Нужно же сделать init-скрипты для каждого
> display manager'а. Если сделать, то prefdm будет не нужен.
Для init можно оставить, если оно в systemd не пролезет, сконвертировавшись.
Comment 55 Антон Мидюков 2020-12-07 16:01:22 MSK
(Ответ для Sergey V Turchin на комментарий #54)
> (Ответ для Антон Мидюков на комментарий #53)
> > К примеру, sddm через prefdm работает одинаково стабильно как в live, так и
> > в установленной системе. А sddm.service не работает в live.
> У меня работает. 

В kworkstation 9.0 в live работает prefdm.service

>А вот, на aarch64 почему-то фиг. Я думал, причина связана с
> mkimage. Попробую выяснить.

Мне кажется, там проблема с видеодрайвером. А включить программный рендеринг у меня не получилось. Потому я вообще отказался от sddm.

> 
> > И ещё одна проблема это sysvinit. Нужно же сделать init-скрипты для каждого
> > display manager'а. Если сделать, то prefdm будет не нужен.
> Для init можно оставить, если оно в systemd не пролезет, сконвертировавшись.

В sysvinit скоро не останется работающих display manager'ов. Так что делать нужно. Хотя бы к p10.
Comment 56 Michael Shigorin 2020-12-07 16:12:08 MSK
(Ответ для Антон Мидюков на комментарий #55)
> В sysvinit скоро не останется работающих display manager'ов.
wdm (и, подозреваю, xdm) всяко должны работать.
Возможно, кому-то придётся по душе http://phab.enlightenment.org/w/projects/entrance/ (но aris@ смотрел и вроде как не пришлось).
Comment 57 Sergey V Turchin 2020-12-07 16:14:12 MSK
(Ответ для Антон Мидюков на комментарий #55)
> В kworkstation 9.0 в live работает prefdm.service
Попробовал sddm в VB -- работает. Пойду патчить, чтоб не prefdm был.
Comment 58 Vladislav Zavjalov 2020-12-07 16:31:27 MSK
> wdm (и, подозреваю, xdm) всяко должны работать.

Я на xdm, он работает. Собственно, на проблему наткнулся, когда пытался играться с другими dm (мне хотелось чего-то странного, с доступом по vnc), но в результате все и так хорошо обустроил.
Comment 59 Sergey V Turchin 2020-12-07 17:24:07 MSK
(Ответ для Sergey V Turchin на комментарий #57)
> (Ответ для Антон Мидюков на комментарий #55)
> > В kworkstation 9.0 в live работает prefdm.service
> Попробовал sddm в VB -- работает.
И он действительно работает.

> Пойду патчить, чтоб не prefdm был.
А при загрузке фигня. Если попереключаться на другую консоль. 12-ю, например, то всё стартует. Если не трогать -- блокируется. Как буд-то что-то с переключением терминала происходит или не происходит.
Comment 60 Vladislav Zavjalov 2020-12-07 23:35:31 MSK
Мне кажется, что научить prefdm различать dm, которые он запускает - это правильный путь. Это исправление ошибок в той схеме, которая сейчас кое-как работает. Надо ли эту схему менять - это следующий вопрос, довольно нетривиальный (с учетом вопроса, кто будет поддерживать отдельные инит-скрипты для разных *dm).
Comment 61 Vitaly Lipatov 2021-01-21 12:41:41 MSK
(Ответ для Michael Shigorin на комментарий #46)
> (Ответ для Антон Мидюков на комментарий #44)
> > В стартеркитах, начиная с p9, lightdm запускается через lightdm.service.
> > Проблема существует только при обновлении стартеркитов с p8 на p9.
> Не только стартеркитов -- дистрибутивов, видимо, тоже.
> 
> > Нужно выключить prefdm и включить lightdm.service
> 
> Кстати, жаль, что никто из наткнувшихся на это так и не добавил строчку
> на страничку http://altlinux.org/Update/p9; также просится в eepm, раз уж
> типовой рецепт.
> 
> Добавил http://altlinux.org/Update/p9#Вход_в_систему_(prefdm)

Добавил в epm release-upgrade:

+
+       # switch from prefdm: https://bugzilla.altlinux.org/show_bug.cgi?id=26405#c52
+       if is_active_systemd systemd && serv display-manager status >/dev/null || serv prefdm status >/dev/null ; then
+               docmd systemctl disable prefdm.service
+               docmd systemctl disable display-manager.service
+               docmd systemctl enable display-manager.service
+       #       docmd systemctl enable sddm.service
+       #       docmd systemctl enable lightdm.service
+       fi
+
 }