Bug 49492 - Не показывается текст, который вводишь в rdshell, если был запущен plymouth
Summary: Не показывается текст, который вводишь в rdshell, если был запущен plymouth
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-22 19:29 MSK by Антон Мидюков
Modified: 2024-02-26 16:28 MSK (History)
5 users (show)

See Also:


Attachments
Пример того, как это выглядит (3.61 KB, image/png)
2024-02-23 17:28 MSK, Антон Мидюков
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2024-02-22 19:29:11 MSK
Не показывается текст, который вводишь в rdshell, если был запущен plymouth.
После того, как нажмёшь Enter, результат команды отображается (так как ничего не видно, то это ругань на ошибочную команду). Скорее всего виден только stderr.
Comment 1 Alexey Gladkov 2024-02-23 16:41:46 MSK
какие cmdline параметры были переданы при загрузке ?
Comment 2 Антон Мидюков 2024-02-23 17:28:44 MSK
Created attachment 15594 [details]
Пример того, как это выглядит

(Ответ для Alexey Gladkov на комментарий #1)
> какие cmdline параметры были переданы при загрузке ?

Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем нужно каким бы то ни было способом добиться выпадания в rdshell (указать неправильный uuid для корня, прописать stop=<шаг> или просто указать параметр загрузки rdshell.
Comment 3 Alexey Gladkov 2024-02-23 18:07:16 MSK
(In reply to Антон Мидюков from comment #2)
> Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем
> нужно каким бы то ни было способом добиться выпадания в rdshell (указать
> неправильный uuid для корня, прописать stop=<шаг> или просто указать
> параметр загрузки rdshell.

Мне как раз и было интересно был ли указан nosplash.

Я думаю, что вот это условие вообще лишнее:

https://github.com/osboot/make-initrd/blob/master/features/plymouth/data/lib/shell/plymouth-hide#L5

Если вызывается shell, то plymouth нужно выключить в любом случае. Даже если этот хук зафейлится, то ничего страшного не будет.
Comment 4 Антон Мидюков 2024-02-24 09:52:58 MSK
(Ответ для Alexey Gladkov на комментарий #3)
> (In reply to Антон Мидюков from comment #2)
> > Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем
> > нужно каким бы то ни было способом добиться выпадания в rdshell (указать
> > неправильный uuid для корня, прописать stop=<шаг> или просто указать
> > параметр загрузки rdshell.
> 
> Мне как раз и было интересно был ли указан nosplash.
> 
> Я думаю, что вот это условие вообще лишнее:
> 
> https://github.com/osboot/make-initrd/blob/master/features/plymouth/data/lib/
> shell/plymouth-hide#L5
> 
> Если вызывается shell, то plymouth нужно выключить в любом случае. Даже если
> этот хук зафейлится, то ничего страшного не будет.

Убрал условие, сделал make-initrd и ничего не изменилось.
Comment 5 Alexey Gladkov 2024-02-24 14:20:06 MSK
(In reply to Антон Мидюков from comment #4)
> Убрал условие, сделал make-initrd и ничего не изменилось.

Хм. А если сделать --quit вместо --hide-splash ?
Comment 6 Антон Мидюков 2024-02-24 15:48:17 MSK
(Ответ для Alexey Gladkov на комментарий #5)
> (In reply to Антон Мидюков from comment #4)
> > Убрал условие, сделал make-initrd и ничего не изменилось.
> 
> Хм. А если сделать --quit вместо --hide-splash ?

Да. Так работает. Даже если прописан splash.

Но это только для кейса "не найден корень, выдали rdshell".
А есть ещё два кейса:
1. Загрузка с параметром rdshell. В этом случае:
- если указан splash, то ничего не видно, plymouth крутится
- если не указан, то та же самая проблема
Видимо, plymouth запускается чуть позже rdshell, поэтому он и не завершается. Тогда его не стоит запускать, если указан rdshell.
2. Загрузка с параметром stop=runinit (или другого шага, который после запуска plymouth). В этом случае:
- если указан splash, то ничего не видно, plymouth крутится
- если не указан, то вопрос. Но то, что вводишь не видно. После того, как запустится rdshell, видно. То есть та же проблема, но уже не для rdshell, а для вопроса, что делать дальше.
Comment 7 Alexey Gladkov 2024-02-24 17:54:58 MSK
(In reply to Антон Мидюков from comment #6)
> > Хм. А если сделать --quit вместо --hide-splash ?
> 
> Да. Так работает. Даже если прописан splash.

Я не очень понял, что ты имеешь в виду, когда говоришь: прописан splash.

> Но это только для кейса "не найден корень, выдали rdshell".

Да.

> А есть ещё два кейса:
> 1. Загрузка с параметром rdshell. В этом случае:
> - если указан splash, то ничего не видно, plymouth крутится
> - если не указан, то та же самая проблема
> Видимо, plymouth запускается чуть позже rdshell, поэтому он и не
> завершается. Тогда его не стоит запускать, если указан rdshell.

Да, plymouth запускается сильно позже rdshell.

> 2. Загрузка с параметром stop=runinit (или другого шага, который после
> запуска plymouth). В этом случае:
> - если указан splash, то ничего не видно, plymouth крутится
> - если не указан, то вопрос. Но то, что вводишь не видно. После того, как
> запустится rdshell, видно. То есть та же проблема, но уже не для rdshell, а
> для вопроса, что делать дальше.

Это интересный вопрос. Я бы оставил это на совесть пользователя, который указывает stop=. Если используется plymouth, то в дополнение к stop= нужно указывать nosplash.

Можно конечно напридумывать ещё хуков, но в конечном счёте нам нужно просто выключить plymouth, потому что он мешает. Уже сейчас такой рубильник есть - параметр nosplash.
Comment 8 Антон Мидюков 2024-02-24 18:04:24 MSK
(Ответ для Alexey Gladkov на комментарий #7)
> (In reply to Антон Мидюков from comment #6)
> > > Хм. А если сделать --quit вместо --hide-splash ?
> > 
> > Да. Так работает. Даже если прописан splash.
> 
> Я не очень понял, что ты имеешь в виду, когда говоришь: прописан splash.
> 

параметр splash /proc/cmdline
До этого была с ним та же проблема, что plymouth крутится и ничего не показывается.

> > Но это только для кейса "не найден корень, выдали rdshell".
> 
> Да.
> 
> > А есть ещё два кейса:
> > 1. Загрузка с параметром rdshell. В этом случае:
> > - если указан splash, то ничего не видно, plymouth крутится
> > - если не указан, то та же самая проблема
> > Видимо, plymouth запускается чуть позже rdshell, поэтому он и не
> > завершается. Тогда его не стоит запускать, если указан rdshell.
> 
> Да, plymouth запускается сильно позже rdshell.
> 
> > 2. Загрузка с параметром stop=runinit (или другого шага, который после
> > запуска plymouth). В этом случае:
> > - если указан splash, то ничего не видно, plymouth крутится
> > - если не указан, то вопрос. Но то, что вводишь не видно. После того, как
> > запустится rdshell, видно. То есть та же проблема, но уже не для rdshell, а
> > для вопроса, что делать дальше.
> 
> Это интересный вопрос. Я бы оставил это на совесть пользователя, который
> указывает stop=. Если используется plymouth, то в дополнение к stop= нужно
> указывать nosplash.
> 
> Можно конечно напридумывать ещё хуков, но в конечном счёте нам нужно просто
> выключить plymouth, потому что он мешает. Уже сейчас такой рубильник есть -
> параметр nosplash.

Хорошо. Тогда не будем рассматривать эти кейсы. В конце концов можно вывести последовательную консоль.
Comment 9 Alexey Gladkov 2024-02-24 19:07:54 MSK
(In reply to Антон Мидюков from comment #8)
> (Ответ для Alexey Gladkov на комментарий #7)
> > (In reply to Антон Мидюков from comment #6)
> > > > Хм. А если сделать --quit вместо --hide-splash ?
> > > 
> > > Да. Так работает. Даже если прописан splash.
> > 
> > Я не очень понял, что ты имеешь в виду, когда говоришь: прописан splash.
> > 
> 
> параметр splash /proc/cmdline
> До этого была с ним та же проблема, что plymouth крутится и ничего не
> показывается.

А, ок. Тогда убираем условие и делаем --quit.

> Хорошо. Тогда не будем рассматривать эти кейсы. В конце концов можно вывести
> последовательную консоль.

Собственно первый кейс не сложно учесть. В сервисе и так есть проверка nosplash. Добавить наличие rdshell не проблема.
Comment 10 Repository Robot 2024-02-26 16:28:09 MSK
make-initrd-2.44.0-alt1 -> sisyphus:

 Mon Feb 26 2024 Alexey Gladkov <legion@altlinux.ru> 2.44.0-alt1
 - New version (2.44.0).
 - Feature plymouth:
   + Stop plymouth before running rdshell (ALT#49492).
   + Do not start plymouth if using rdshell.
 - Runtime:
   + Try to load efivarfs before mount (ALT#49491).
 - Misc:
   + Improve bug-report generation.
   + Rewrite mi-bug-report.