[make-initrd] Fwd: [#269003] TESTED make-initrd.git=2.14.1-alt1

Leonid Krivoshein klark.devel at gmail.com
Thu May 27 18:10:48 MSK 2021


27.05.2021 16:53, Alexey Gladkov пишет:
> On Thu, May 27, 2021 at 03:29:50PM +0300, Leonid Krivoshein wrote:
> [...]
>>> Я лишь могу посмотреть на разные куски кода и покомментировать.
>> Это безусловно очень полезно, твои советы особенно ценны для меня, хоть и
>> жаль твоего времени, т.к. код пока не финальный. За вчера добил liverw,
>> сейчас чиню checksum. Всё же я имел ввиду оценить идею, в целом. Например,
>> мне кажется, разделение на суб-фичи для bootchain само напрашивается. Но вот
>> стоит ли делить на под-пакеты -- вопрос?
> Если это упростит сопровождение, то почему бы нет. Вопрос в том, насколько
> будет сложно реализовать суб-фичи.
>

Глядя на другие проще. И ещё сделал в корне mix-altboot для 
разработчиков. Он не только смешивает все шаги в один каталог data 
подобно тому, как это делает make-initrd при создании образа, но и 
создаёт подкаталог hooks, в котором "склеивает" все пронумерованные 
хуки, чтобы легче было понять, куда вставлять свой новый код. Ищутся они 
через git grep use_hooks и будут описаны на ВиКи.


>> [...] Могу попробовать ещё раз.
> У тебя могло бы быть что-то вроде:
>
> save_image() { # right
> 	if [ -z "$dstreg" ]; then
> 		dd "of=$to" bs=32k 2>/dev/null
> 	else
> 		cat >"$to"
> 	fi
> }
>
> read_image() { # left
> 	if [ -n "$srcreg" ]; then
> 		pv -n -i 1 -- "$url"
> 		return
> 	fi
>
> 	opts="$opts --silent --no-buffer --connect-timeout 5"
> 	opts="$opts --max-redirs 5 --max-filesize $filesize"
> 	
> 	[ "$method" != ftp ] || [ -z "$user" ] || [ -z "$pass" ] ||
> 		opts="${opts:+$opts }-u \"$user:$pass\""
>
> 	curl $opts -- "$url" |
> 		pv -n -i 1 -s "$filesize"
> }
>
> { read_image | save_image } 2>&1 |
> 	IM_gauge "[ Downloading image... ]" "$text"

Спасибо, попробую.


> [...]
>>> Зачем ты пытаешься использовать ttyN ? Тебе не хватает /dev/console ?
>> Нужно собрать диск с таксом, чтобы было наглядней. Хотя уже скоро соберу
>> новый. Сейчас "новый пропагатор" (altboot) вообще как бы "невидим".
>> Переключение на tty2 происходит спустя некое время, либо сразу, если там
>> есть диалог ввода. Поскольку в большинстве случаев загрузка автоматическая,
>> ввода от пользователя не требуется и занимает считанные секунды, создаваемые
>> "новым пропагатором" и bootchain консоли tty2 и tty3 бесследно исчезают, не
>> создавая лишних мельканий на экране. Ещё красивее с плимутом -- всё
>> происходит под "червячком", а вот если tty2 активируется, то отключается ещё
>> и rootdelay.
> Ааааа ... я забыл про plymouth.

Если ты про BUG #40090 , то я тестирую на срезе Сизифа, где make-initrd 
ещё 2.16.0 без этой баги, но обход уже известен.


>>> [...]
>> Да я собственно из-за этого фрагмента и написал тебе, переделывал его раз
>> 20, но так и не понял. Выше ты пишешь, что да, можно запускать setsid второй
>> раз, это и есть как бы второй запуск (первый -- openvt). Если убрать тут
>> setsid, результат будет таким же. Если убрать не setsid, а амперсанд в
>> конце, тут будет задержка в $selay, чего я никак не мог победить. В обычной
>> консоли оно себя так не ведёт. Потому и стоит сейчас if, а вообще
>> предполагалось так: setsid activate-interactive-vt $delay безо всяких
>> проверок и условий.
> Там написано, что форк будет сделан только если просто sedsid отвалится.
> "But doesn't fail if shell is not interactive". У тебя он как раз не
> интерактивный. Поэтому setsid activate-interactive-vt просто висит.

Так вот оно в чём дело! Тогда понятно... Обойдусь одним амперсандом. И, 
судя по этой реализации setsid, за зомбоками там тоже предлагается самим 
присматривать. :-) У меня вызов wait уже стоит перед выходом.


-- 
Best regards,
Leonid Krivoshein.



More information about the Make-initrd mailing list