Summary: | Не показывается текст, который вводишь в rdshell, если был запущен plymouth | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Антон Мидюков <antohami> | ||||
Component: | make-initrd | Assignee: | Alexey Gladkov <legion> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P5 | CC: | glebfm, klark, ldv, legion, placeholder | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Антон Мидюков
2024-02-22 19:29:11 MSK
какие cmdline параметры были переданы при загрузке ? Created attachment 15594 [details] Пример того, как это выглядит (Ответ для Alexey Gladkov на комментарий #1) > какие cmdline параметры были переданы при загрузке ? Достаточно initrd собрать с фичей plymouth и не прописать nosplash. Затем нужно каким бы то ни было способом добиться выпадания в rdshell (указать неправильный uuid для корня, прописать stop=<шаг> или просто указать параметр загрузки rdshell. (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 нужно выключить в любом случае. Даже если этот хук зафейлится, то ничего страшного не будет. (Ответ для 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 и ничего не изменилось. (In reply to Антон Мидюков from comment #4) > Убрал условие, сделал make-initrd и ничего не изменилось. Хм. А если сделать --quit вместо --hide-splash ? (Ответ для 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, а для вопроса, что делать дальше. (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. (Ответ для 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. Хорошо. Тогда не будем рассматривать эти кейсы. В конце концов можно вывести последовательную консоль. (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 не проблема. 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. |