[make-initrd] [PATCH v6 21/22] bootchain-core: adds ability to bring the daemon to the foreground

Alexey Gladkov gladkov.alexey at gmail.com
Tue Nov 9 15:17:47 MSK 2021


On Mon, Nov 08, 2021 at 07:08:13PM +0300, Leonid Krivoshein wrote:
> Привет!
> 
> 
> 08.11.2021 16:09, Alexey Gladkov пишет:
> > On Sat, Nov 06, 2021 at 10:54:13PM +0300, Leonid Krivoshein wrote:
> > > > Когда загружаются drm, то kbd переинициализирует терминалы.
> > > > 
> > > > Я не вижу смысла использовать kbd в случае bootchain. Эта фича всё-таки
> > > > немного не для этого. Настроить unicode для запуска tmux можно и
> > > > самостоятельно.
> > > Если мы вдруг захотим прикрутить сюда локализацию диалогов или сделать на
> > > базе bootchain простой текстовый инсталлятор, то с фича kbd уже реализует
> > > необходимый функционал.
> > Она реализует функционал для использования в живой системе. Сейчас нет
> > механизма, чтобы понять консоль проинициализирована. Реализовать такой
> > механизм будет сложно.
> 
> Понятно.
> 
> 
> > > В случае tmux у меня всё же остаётся вопрос о том, как правильно
> > > инициализировать консоль в фичах
> > Почему ты используешь множественное число ? Насколько я знаю сейчас что-то
> > делать с консолью нужно только bootchain.
> 
> В этой рассылке ранее запрашивалась фича pseudo-gui. Работа с диалогами
> могла бы быть полезной не только altboot. Сейчас TUI используется только
> altboot. Но, если какая-нибудь другая фича захочет вывести диалог, то как ей
> это лучше сделать? Тут два концептуальных момента:
> 
> 1. Хотелось бы сделать фичу interactive пригодной для всего, что работает в
> initrd, а не только в altboot.
> 2. Как обратиться к API "прозрачно", без дополнительной артподготовки.
> Например, понадобилось ввести PIN-код, обратились к API для вывода диалога
> ввода -- тут работа демона должна заблокироваться, пока нужные данные не
> будут получены. На каком терминале это должно происходить? Должен ли он
> переключаться автоматически на передний план, если никаких данных от
> пользователя не ожидается, а выводятся только информационные сообщения?
> Диалоги от разных фич не должны перемешиваться и наезжать друг на друга.
> 
> Было бы хорошо, если бы нам удалось сделать более общую фичу. Но для
> апстрима bootchain это сейчас неактуально.
> 
> 
> > Остальные фичи работаеют без
> > дополнительной настройки с /dev/console.
> > 
> > Причём даже внутри bootchain далеко не всему нужна как-то специально
> > настроенная консоль, а только altboot. Остальные шаги не требуют консоли.
> 
> Совершенно верно.
> 
> Как-то уже обсуждали, что вариант использования диалогов в рамках bootchain
> тоже не стоит снимать со счетов. Фича bootchain-waitdev демонстрирует
> комбинацию event-driven подхода и пошаговой работы в рамках концепций
> bootchain. То есть, если кому-то нужны диалоги, их можно засунуть в
> bootchain и таким образом тоже снять потребность в общей фиче pseudo-gui.
> 
> Почему это вопрос лучше решить именно тебе: даже сейчас в условиях
> единственной /dev/console возникает борьба между rdshell и любыми диалогами,
> а ещё сюда демоны выводят то, что запущено, что остановлено. Запрос PIN-кода
> в некоторых фичах, диалоги вообще должны следовать какой-то общей концепции
> во избежании борьбы за ввод. Нужно централизованно решить вопрос с тем, на
> каком PTY (TTY) будут возникать такие диалоги, как избежать лишнего
> мелькания.

Для решения этой задачи нужно довольно сильно меня архитектуру. Я пока не
вижу хорошего решения для этого. Не стоит ждать быстрого решения.

Сейчас борьба за консоль между rdshell и другими фичами решается локом на
доступ к консоли. Этот подход пока хорошо работал.

> > > так как сейчас всё очень сильно зависит от
> > > набора фич, попадающих в initrd.
> > Каких фич ?
> 
> plymouth, kbd, rdshell -- в первую очередь.
> 
> 
> -- 
> Best regards,
> Leonid Krivoshein.
> 
> _______________________________________________
> Make-initrd mailing list
> Make-initrd at lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/make-initrd

-- 
Rgrds, legion



More information about the Make-initrd mailing list