[make-initrd] bootchain+altboot: у меня есть план

Leonid Krivoshein klark.devel at gmail.com
Tue Aug 24 04:16:16 MSK 2021


23.08.2021 14:48, Alexey Gladkov пишет:
> On Mon, Aug 23, 2021 at 02:04:06PM +0300, Leonid Krivoshein wrote:
>>> [...]
>>> Не стоит ли сделать поддержку netconsole глобальной ?
>> Вчера уже выгрузил этот код, вроде всё работает. Основное попало в
>> bootchain-interactive (bootchain-sh-functions и чуток в виджеты). Именно его
>> с поддержкой netconsole имеет смысл делать отдельной фичей, как только её
>> лучше назвать? В bootchain-core (форк pipeline) попало лишь крошечное
>> изменение, теперь демон понимает опцию nottys, чтобы не создавать на tty3
>> процесс вывода журнала, это параметр из bootchain-interactive.
>>
>> С этой netconsole наловил кучу дистрибутивных багов, не связанных с
>> make-initrd. Не все умеют с ней работать, даже grub работает лишь в
>> определённых условиях, в зависимости от образа. Нужно сначала понять, то ли
>> я вообще сделал, что требовалось? Мне не удалось найти надёжного способа
>> автоматического определения netconsole, поэтому пришлось ввести ещё один
>> параметр nottys. Но вообще реализация получилась очень простой и, на первый
>> взгляд, рабочей, и даже код определения размеров консоли пришёлся кстати.
>> :-)
> Надо будет посмотреть на этот код. Очень интересно.

#283645 -- так быстрее. И... sorry for my English! ))


> [...]
>>>> 1. Будем перетаскивать bootchain-interactive в первую очередь отдельно от
>>>> остального и под каким именем? См.:
>>>> https://lists.altlinux.org/pipermail/make-initrd/2021-June/000454.html
>>> Возможность доспросить у пользователя что-нибудь давно назрела. Было бы
>>> здорово иметь её для всех модулей.
>> Нужно переименовать, чтобы не было ассоциации с bootchain. Только во что?
>> early-dialog? im? interactive? interactive-mode? ...
> Нужно посмотреть на код. Насколько я понимаю, для работы в полную силу эта
> фича требует присутствия вызовов интерактивных функций везде, где
> происходит запрос данных у пользователя. Это так ?

Я бы сказал, что это скорее просто API. Везде, где нужен ввод и/или 
вывод, это API можно использовать. Соответственно, кому эта фича нужна, 
он её подключает через $(call feature-requires,interactive) в config.mk. 
Если в коде нужен интерактивный ввод и/или вывод, нужно подключить API:

. interactive-sh-functions

Единственный пример того, как перезапустить процесс на передний план 
сейчас есть в bootchain-core (/sbin/bootchain-loop). Только в нём 
используется IM_exec() и IM_activate(), они вместе демонстрируют 
механизм перезапуска с отложенной активацией консоли (tty2 по 
умолчанию). Как делить одну консоль на всех "клиентов", данное API пока 
никак не решает, но если кому-то нужен свой отдельный tty, можно перед 
включением файла переопределить _IM_VT_number. Возможно фичу стоит 
доработать, чтобы одну консоль можно было расшарить между "клиентами", 
но я в этом не уверен. Другой вопрос -- как это будет уживаться с фичей 
kbd. С rdshell теперь вроде уживается.


> Если да, то получается, что этот функционал должен быть в data/, а вот
> бэкенды рисующие диалоги должны быть в фиче или фичах.
>
> Ну или я просто плохо помню идею и несу чушь.

Без "клиентов" данная фича неинтересна, а почти готовый "клиент" пока 
только один -- это altboot. Примеры использования виджетов раскиданы по 
всему altboot.


> [...]
>> Но в первую очередь я интересовался переносом функции initrd_version()
>> из bootchain-core, т.к. это уже второй "клиент", выводящий версию initramfs.
> А. Ну создать функцию, которая возвращает версию можно.

Хорошо, уже есть такой вариант:
https://lists.altlinux.org/pipermail/make-initrd/2021-July/000471.html


>> Отлично! Будет смысл согласовать "окно" после финальной проверки всего
>> комплекса. Привязка по времени к продуктам на p10 необязательна, так как для
>> тестирования решения более широкими массами оно должно сначала попасть в
>> Сизиф и тогда есть шанс наловить больше багов на регулярках. При переносе в
>> make-initrd мне придётся параллельно удалять это из Сизифа.
> Ты предлагаешь растянуть мердж bootchain на несколько релизов make-initrd?

Наоборот, спрашиваю, как лучше. Тут только ты определяешь...


-- 
Best regards,
Leonid Krivoshein.



More information about the Make-initrd mailing list