* [make-initrd] Possible missing firmware
@ 2025-07-02 23:37 Leonid Krivoshein
2025-07-04 10:42 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Leonid Krivoshein @ 2025-07-02 23:37 UTC (permalink / raw)
To: make-initrd
Всем привет!
Обратил внимание на такую интересную фичу в аналогичном инструменте:
https://askubuntu.com/questions/1478862/after-a-fresh-install-of-kubuntu-error-shows-during-boot-amdgpu-secure-displa
|... update-initramfs: Generating /boot/initrd.img-6.4.6-060406-generic|
|W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for
module amdgpu W: Possible missing firmware
/lib/firmware/amdgpu/vega10_cap.bin for module amdgpu W: Possible
missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module
amdgpu ... ||W: Possible missing firmware /lib/firmware/amdgpu/smu_13_0_10.bin for
module amdgpu |
Есть ли что-то подобное в make-initrd? Если нет, стоит прикрутить по
аналогии. А может даже сделать ключик, чтобы стало ошибкой, а не
предупреждением. Что скажете?
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-02 23:37 [make-initrd] Possible missing firmware Leonid Krivoshein
@ 2025-07-04 10:42 ` Alexey Gladkov
2025-07-04 10:43 ` Anton Midyukov
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-04 10:42 UTC (permalink / raw)
To: make-initrd
On Thu, Jul 03, 2025 at 02:37:23AM +0300, Leonid Krivoshein wrote:
> Всем привет!
>
>
> Обратил внимание на такую интересную фичу в аналогичном инструменте:
>
> https://askubuntu.com/questions/1478862/after-a-fresh-install-of-kubuntu-error-shows-during-boot-amdgpu-secure-displa
>
> |... update-initramfs: Generating /boot/initrd.img-6.4.6-060406-generic|
> |W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for
> module amdgpu W: Possible missing firmware
> /lib/firmware/amdgpu/vega10_cap.bin for module amdgpu W: Possible
> missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module
> amdgpu ... ||W: Possible missing firmware /lib/firmware/amdgpu/smu_13_0_10.bin for
> module amdgpu |
>
>
> Есть ли что-то подобное в make-initrd? Если нет, стоит прикрутить по
> аналогии. А может даже сделать ключик, чтобы стало ошибкой, а не
> предупреждением. Что скажете?
Если я правильно понял, хотя не уверен, ты предлагаешь показывать
предупреждение в случае если firmware не нашлось для модуля. Я лишь
предполагаю.
Если я правильно понял, то сейчас такой возможности нет и если firmware не
находится, то игнорируется. Это делается потому что не все firmware
необходимы.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 10:42 ` Alexey Gladkov
@ 2025-07-04 10:43 ` Anton Midyukov
2025-07-04 11:38 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Anton Midyukov @ 2025-07-04 10:43 UTC (permalink / raw)
To: make-initrd
04.07.2025 13:42, Alexey Gladkov пишет:
> On Thu, Jul 03, 2025 at 02:37:23AM +0300, Leonid Krivoshein wrote:
>> Всем привет!
>>
>>
>> Обратил внимание на такую интересную фичу в аналогичном инструменте:
>>
>> https://askubuntu.com/questions/1478862/after-a-fresh-install-of-kubuntu-error-shows-during-boot-amdgpu-secure-displa
>>
>> |... update-initramfs: Generating /boot/initrd.img-6.4.6-060406-generic|
>> |W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for
>> module amdgpu W: Possible missing firmware
>> /lib/firmware/amdgpu/vega10_cap.bin for module amdgpu W: Possible
>> missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module
>> amdgpu ... ||W: Possible missing firmware /lib/firmware/amdgpu/smu_13_0_10.bin for
>> module amdgpu |
>>
>>
>> Есть ли что-то подобное в make-initrd? Если нет, стоит прикрутить по
>> аналогии. А может даже сделать ключик, чтобы стало ошибкой, а не
>> предупреждением. Что скажете?
>
> Если я правильно понял, хотя не уверен, ты предлагаешь показывать
> предупреждение в случае если firmware не нашлось для модуля. Я лишь
> предполагаю.
>
> Если я правильно понял, то сейчас такой возможности нет и если firmware не
> находится, то игнорируется. Это делается потому что не все firmware
> необходимы.
>
При использовании опции -v тоже не показываются эти сообщения в make-initrd?
--
best regards, Anton Midyukov <antohami@altlinux.org>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 10:43 ` Anton Midyukov
@ 2025-07-04 11:38 ` Alexey Gladkov
2025-07-04 13:20 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-04 11:38 UTC (permalink / raw)
To: make-initrd
On Fri, Jul 04, 2025 at 01:43:45PM +0300, Anton Midyukov wrote:
> 04.07.2025 13:42, Alexey Gladkov пишет:
> > On Thu, Jul 03, 2025 at 02:37:23AM +0300, Leonid Krivoshein wrote:
> >> Всем привет!
> >>
> >>
> >> Обратил внимание на такую интересную фичу в аналогичном инструменте:
> >>
> >> https://askubuntu.com/questions/1478862/after-a-fresh-install-of-kubuntu-error-shows-during-boot-amdgpu-secure-displa
> >>
> >> |... update-initramfs: Generating /boot/initrd.img-6.4.6-060406-generic|
> >> |W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for
> >> module amdgpu W: Possible missing firmware
> >> /lib/firmware/amdgpu/vega10_cap.bin for module amdgpu W: Possible
> >> missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module
> >> amdgpu ... ||W: Possible missing firmware /lib/firmware/amdgpu/smu_13_0_10.bin for
> >> module amdgpu |
> >>
> >>
> >> Есть ли что-то подобное в make-initrd? Если нет, стоит прикрутить по
> >> аналогии. А может даже сделать ключик, чтобы стало ошибкой, а не
> >> предупреждением. Что скажете?
> >
> > Если я правильно понял, хотя не уверен, ты предлагаешь показывать
> > предупреждение в случае если firmware не нашлось для модуля. Я лишь
> > предполагаю.
> >
> > Если я правильно понял, то сейчас такой возможности нет и если firmware не
> > находится, то игнорируется. Это делается потому что не все firmware
> > необходимы.
> >
>
> При использовании опции -v тоже не показываются эти сообщения в make-initrd?
Даже с -v не показывает.
https://github.com/osboot/make-initrd/blob/master/utils/depinfo/kmod-depinfo.c#L325-L338
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 11:38 ` Alexey Gladkov
@ 2025-07-04 13:20 ` Alexey Gladkov
2025-07-04 15:03 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-04 13:20 UTC (permalink / raw)
To: make-initrd
On Fri, Jul 04, 2025 at 01:38:10PM +0200, Alexey Gladkov wrote:
> >
> > При использовании опции -v тоже не показываются эти сообщения в make-initrd?
>
> Даже с -v не показывает.
>
> https://github.com/osboot/make-initrd/blob/master/utils/depinfo/kmod-depinfo.c#L325-L338
Можно сделать что-то типа такого. У меня при генерации таких сообщений не
выводится, но непонятно насколько это будет спамить пользователей.
diff --git a/utils/depinfo/kmod-depinfo.c b/utils/depinfo/kmod-depinfo.c
index 6a761af4..58ee2075 100644
--- a/utils/depinfo/kmod-depinfo.c
+++ b/utils/depinfo/kmod-depinfo.c
@@ -315,6 +315,7 @@ process_firmware(const char *firmware)
{
char firmware_buf[MAXPATHLEN];
char *s, *str, *token, *saveptr = NULL;
+ int found = 0;
s = str = strdup(firmware_dir);
while ((token = strtok_r(str, ":", &saveptr)) != NULL) {
@@ -334,6 +335,7 @@ again:
if (opts & SHOW_PREFIX)
printf("firmware ");
printf("%s\n", firmware_buf);
+ found = 1;
break;
}
@@ -347,6 +349,9 @@ again:
str = NULL;
}
free(s);
+
+ if (!found)
+ warnx("WARNING: firmware not found: %s", firmware);
}
static int
---
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 13:20 ` Alexey Gladkov
@ 2025-07-04 15:03 ` Alexey Gladkov
2025-07-04 15:23 ` Leonid Krivoshein
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-04 15:03 UTC (permalink / raw)
To: make-initrd
On Fri, Jul 04, 2025 at 03:20:02PM +0200, Alexey Gladkov wrote:
> On Fri, Jul 04, 2025 at 01:38:10PM +0200, Alexey Gladkov wrote:
> > >
> > > При использовании опции -v тоже не показываются эти сообщения в make-initrd?
> >
> > Даже с -v не показывает.
> >
> > https://github.com/osboot/make-initrd/blob/master/utils/depinfo/kmod-depinfo.c#L325-L338
>
> Можно сделать что-то типа такого. У меня при генерации таких сообщений не
> выводится, но непонятно насколько это будет спамить пользователей.
Не. Такие сообщения, как минимум по умолчанию, выводить нельзя. Я даже не
уверен, что такое количество сообщений полезно с -v.
$ ./depinfo nouveau 2>&1 >/dev/null |grep -c 'depinfo: WARNING: firmware'
431
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 15:03 ` Alexey Gladkov
@ 2025-07-04 15:23 ` Leonid Krivoshein
2025-07-04 18:23 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Leonid Krivoshein @ 2025-07-04 15:23 UTC (permalink / raw)
To: make-initrd
Привет!
On 7/4/25 18:03, Alexey Gladkov wrote:
> On Fri, Jul 04, 2025 at 03:20:02PM +0200, Alexey Gladkov wrote:
>> On Fri, Jul 04, 2025 at 01:38:10PM +0200, Alexey Gladkov wrote:
>>>> При использовании опции -v тоже не показываются эти сообщения в make-initrd?
>>> Даже с -v не показывает.
>>>
>>> https://github.com/osboot/make-initrd/blob/master/utils/depinfo/kmod-depinfo.c#L325-L338
>> Можно сделать что-то типа такого. У меня при генерации таких сообщений не
>> выводится, но непонятно насколько это будет спамить пользователей.
> Не. Такие сообщения, как минимум по умолчанию, выводить нельзя. Я даже не
> уверен, что такое количество сообщений полезно с -v.
>
> $ ./depinfo nouveau 2>&1 >/dev/null |grep -c 'depinfo: WARNING: firmware'
> 431
Дело в том, что в модуле есть ссылка на firmware. Если при загрузке
нужной не окажется, загрузки может не случиться. Почему здесь такое
число ссылок на отсутствующие файлы firmware -- отдельный хороший вопрос.
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 15:23 ` Leonid Krivoshein
@ 2025-07-04 18:23 ` Alexey Gladkov
2025-07-05 0:47 ` Leonid Krivoshein
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-04 18:23 UTC (permalink / raw)
To: make-initrd
On Fri, Jul 04, 2025 at 06:23:52PM +0300, Leonid Krivoshein wrote:
> Привет!
>
>
> On 7/4/25 18:03, Alexey Gladkov wrote:
> > On Fri, Jul 04, 2025 at 03:20:02PM +0200, Alexey Gladkov wrote:
> >> On Fri, Jul 04, 2025 at 01:38:10PM +0200, Alexey Gladkov wrote:
> >>>> При использовании опции -v тоже не показываются эти сообщения в make-initrd?
> >>> Даже с -v не показывает.
> >>>
> >>> https://github.com/osboot/make-initrd/blob/master/utils/depinfo/kmod-depinfo.c#L325-L338
> >> Можно сделать что-то типа такого. У меня при генерации таких сообщений не
> >> выводится, но непонятно насколько это будет спамить пользователей.
> > Не. Такие сообщения, как минимум по умолчанию, выводить нельзя. Я даже не
> > уверен, что такое количество сообщений полезно с -v.
> >
> > $ ./depinfo nouveau 2>&1 >/dev/null |grep -c 'depinfo: WARNING: firmware'
> > 431
>
> Дело в том, что в модуле есть ссылка на firmware. Если при загрузке
> нужной не окажется, загрузки может не случиться. Почему здесь такое
> число ссылок на отсутствующие файлы firmware -- отдельный хороший вопрос.
В моём случае у меня не установлены firmware для nvidia.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-04 18:23 ` Alexey Gladkov
@ 2025-07-05 0:47 ` Leonid Krivoshein
2025-07-05 8:36 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Leonid Krivoshein @ 2025-07-05 0:47 UTC (permalink / raw)
To: make-initrd
On 7/4/25 21:23, Alexey Gladkov wrote:
> On Fri, Jul 04, 2025 at 06:23:52PM +0300, Leonid Krivoshein wrote:
>> Привет!
>>
>>
>> On 7/4/25 18:03, Alexey Gladkov wrote:
>>> On Fri, Jul 04, 2025 at 03:20:02PM +0200, Alexey Gladkov wrote:
>>>> On Fri, Jul 04, 2025 at 01:38:10PM +0200, Alexey Gladkov wrote:
>>>>>> При использовании опции -v тоже не показываются эти сообщения в make-initrd?
>>>>> Даже с -v не показывает.
>>>>>
>>>>> https://github.com/osboot/make-initrd/blob/master/utils/depinfo/kmod-depinfo.c#L325-L338
>>>> Можно сделать что-то типа такого. У меня при генерации таких сообщений не
>>>> выводится, но непонятно насколько это будет спамить пользователей.
>>> Не. Такие сообщения, как минимум по умолчанию, выводить нельзя. Я даже не
>>> уверен, что такое количество сообщений полезно с -v.
>>>
>>> $ ./depinfo nouveau 2>&1 >/dev/null |grep -c 'depinfo: WARNING: firmware'
>>> 431
>> Дело в том, что в модуле есть ссылка на firmware. Если при загрузке
>> нужной не окажется, загрузки может не случиться. Почему здесь такое
>> число ссылок на отсутствующие файлы firmware -- отдельный хороший вопрос.
> В моём случае у меня не установлены firmware для nvidia.
А если начать с самого мягкого варианта -- предупреждения с "-v" и с
фильтрацией по спискам? Например, в
"/etc/initrd.mk.d/{modules,firmware}/*.list" файлы со списками по тем
модулям/фирмварям, по которым не нужно выводить предупреждения?
Во первых, эти списки можно будет потом опакетить. Во-вторых, это даст
возможность изучить вопрос во времени без спама пользователей.
Предпосылка: если даже система загрузилась успешно, из-за отсутствия
отдельных firmware она дальше может не совсем корректно работать.
Проблема затрагивает даже обычный rootfs. Здесь мы получаем возможность,
при желании, отлавливать ситуации разъезда новых зависимостей ядра при
его обновлении.
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-05 0:47 ` Leonid Krivoshein
@ 2025-07-05 8:36 ` Alexey Gladkov
2025-07-05 13:04 ` Leonid Krivoshein
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-05 8:36 UTC (permalink / raw)
To: make-initrd
On Sat, Jul 05, 2025 at 03:47:15AM +0300, Leonid Krivoshein wrote:
> А если начать с самого мягкого варианта -- предупреждения с "-v" и с
> фильтрацией по спискам? Например, в
> "/etc/initrd.mk.d/{modules,firmware}/*.list" файлы со списками по тем
> модулям/фирмварям, по которым не нужно выводить предупреждения?
Это ужасная идея.
> Во первых, эти списки можно будет потом опакетить. Во-вторых, это даст
> возможность изучить вопрос во времени без спама пользователей.
> Предпосылка: если даже система загрузилась успешно, из-за отсутствия
> отдельных firmware она дальше может не совсем корректно работать.
> Проблема затрагивает даже обычный rootfs. Здесь мы получаем возможность,
> при желании, отлавливать ситуации разъезда новых зависимостей ядра при
> его обновлении.
Давай сначала сделаем шаг назад и ты опишешь проблему, которую предлагаешь
решить. А также масштаб проблемы. Потому что для меня сейчас проблема
видится несколько надуманной.
Прошу, потому что из тех сообщений об ошибках я себе нафантазировал одно,
а ты и Антон думаете скорее всего про другое.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-05 8:36 ` Alexey Gladkov
@ 2025-07-05 13:04 ` Leonid Krivoshein
2025-07-05 15:00 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Leonid Krivoshein @ 2025-07-05 13:04 UTC (permalink / raw)
To: make-initrd
On 7/5/25 11:36, Alexey Gladkov wrote:
> On Sat, Jul 05, 2025 at 03:47:15AM +0300, Leonid Krivoshein wrote:
>> А если начать с самого мягкого варианта -- предупреждения с "-v" и с
>> фильтрацией по спискам? Например, в
>> "/etc/initrd.mk.d/{modules,firmware}/*.list" файлы со списками по тем
>> модулям/фирмварям, по которым не нужно выводить предупреждения?
> Это ужасная идея.
>
>> Во первых, эти списки можно будет потом опакетить. Во-вторых, это даст
>> возможность изучить вопрос во времени без спама пользователей.
>> Предпосылка: если даже система загрузилась успешно, из-за отсутствия
>> отдельных firmware она дальше может не совсем корректно работать.
>> Проблема затрагивает даже обычный rootfs. Здесь мы получаем возможность,
>> при желании, отлавливать ситуации разъезда новых зависимостей ядра при
>> его обновлении.
> Давай сначала сделаем шаг назад и ты опишешь проблему, которую предлагаешь
> решить. А также масштаб проблемы. Потому что для меня сейчас проблема
> видится несколько надуманной.
>
> Прошу, потому что из тех сообщений об ошибках я себе нафантазировал одно,
> а ты и Антон думаете скорее всего про другое.
Пакеты с firmware и пакеты с ядрами сопровождаются разными людьми, они
обновляются не синхронно, не согласованно. О проблемах разъезда путей в
ядре и соответствующей firmware мы всегда узнаём постфактум по
соответствующим багам, когда новое initrd уже сгенерировано и не
получилось загрузиться или получилось, но эта новая связка создала
проблемы при дальнейшей работе. Мы могли бы выявлять потенциальные
проблемы уже на этапе создания initrd. А без реализации предлагаемого мы
не сможем даже примерно оценить масштаб этой проблемы для будущих
обновлений. Поэтому я считаю, что такой инструмент был бы полезным. Хотя
бы подсчитывать число предупреждений без вывода их в stderr, если не
указан "-v".
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-05 13:04 ` Leonid Krivoshein
@ 2025-07-05 15:00 ` Alexey Gladkov
2025-07-05 22:40 ` Leonid Krivoshein
0 siblings, 1 reply; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-05 15:00 UTC (permalink / raw)
To: make-initrd
On Sat, Jul 05, 2025 at 04:04:05PM +0300, Leonid Krivoshein wrote:
> > Прошу, потому что из тех сообщений об ошибках я себе нафантазировал одно,
> > а ты и Антон думаете скорее всего про другое.
>
> Пакеты с firmware и пакеты с ядрами сопровождаются разными людьми, они
> обновляются не синхронно, не согласованно.
Ну то есть проблема всё-таки организационная. Из-за несогласованности
мантейнеров пакетов страдают пользователи.
> О проблемах разъезда путей в ядре и соответствующей firmware мы всегда
> узнаём постфактум по соответствующим багам,
Что ты имеешь в виду под разъездом путей ?
/lib/firmware/nvidia/470.256.02/gsp.bin
/lib/firmware/nvidia/570.169/gsp_ga10x.bin
/lib/firmware/nvidia/570.169/gsp_tu10x.bin
Ты про вот такие пути, где есть версия ? Это единственный пример с
проблемными путями, который я смог придумать.
> когда новое initrd уже сгенерировано и не получилось загрузиться или
> получилось, но эта новая связка создала проблемы при дальнейшей работе.
> Мы могли бы выявлять потенциальные проблемы уже на этапе создания
> initrd. А без реализации предлагаемого мы не сможем даже примерно
> оценить масштаб этой проблемы для будущих обновлений. Поэтому я считаю,
> что такой инструмент был бы полезным. Хотя бы подсчитывать число
> предупреждений без вывода их в stderr, если не указан "-v".
Я считаю, что никто из пользователей не будет смотреть на эти
предупреждения об отсутствующих firmware.
Пользователю не ясно какие firmware необходимы, а какие нет. Список в
десяток или сотни строк про отсутствующие чего-то-там никак пониманию не
помогут. Непонятно, что делать пользователю, если он такое видит. Если это
ошибка, то это должно быть ошибкой.
Я уже не говорю, про обновления через gui всякие, где выхлопа от генерации
initrd вообще не видно. Например на моей системе это вообще происходит в
бэкграунде, не смотря что обновление не через gui происходит.
Вот варианты решения проблемы в порядке трудозатратности.
1. Добавить в depinfo режим отображения отсутствующих firmware и
использовать эту утилиту для проверки при сборки пакетов с
модулями/firmware. Так как именно при сборке пакета ломается загрузка.
module /lib/modules/6.15.4-gentoo-dist/kernel/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
\_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/wireless/cfg80211.ko
\_ missing-firmware regulatory.db
\_ missing-firmware regulatory.db.p7s
\_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/rfkill/rfkill.ko
\_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/mac80211/mac80211.ko
\_ module /lib/modules/6.15.4-gentoo-dist/kernel/lib/crypto/libarc4.ko
2. Поскольку не существует хорошего способа определить необходимые
firmware, то можно сделать режим, в котором будут требоваться _все_
firmware для пакуемых модулей.
3. Можно сделать фичу по определению firmware требовавшихся для загрузки
текущего ядра и пробовать использовать эту информацию. В этом случае можно
будет по аналогии с MODULES_ADD добавить контроль за необходимыми
firmware.
Из минусов, что это всё ещё хак по определению требуемых firmware и всё
равно нужно будет решать задачу с путями.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-05 15:00 ` Alexey Gladkov
@ 2025-07-05 22:40 ` Leonid Krivoshein
2025-07-05 23:57 ` Alexey Gladkov
0 siblings, 1 reply; 14+ messages in thread
From: Leonid Krivoshein @ 2025-07-05 22:40 UTC (permalink / raw)
To: make-initrd
On 7/5/25 18:00, Alexey Gladkov wrote:
> On Sat, Jul 05, 2025 at 04:04:05PM +0300, Leonid Krivoshein wrote:
>>> Прошу, потому что из тех сообщений об ошибках я себе нафантазировал одно,
>>> а ты и Антон думаете скорее всего про другое.
>> Пакеты с firmware и пакеты с ядрами сопровождаются разными людьми, они
>> обновляются не синхронно, не согласованно.
> Ну то есть проблема всё-таки организационная. Из-за несогласованности
> мантейнеров пакетов страдают пользователи.
Да, потому что де-факто мы можем даже обновлять ядро независимо от
юзерспейса. Но не только организационная, потому что есть много причин
считать её ещё и технической. Хотя бы потому, что между ядром и пакетами
firmware фактически не обозначено жёстких файловых зависимостей. Даже
неведомые нам ошибки в ядре могли бы ловиться на более ранней стадии, а
не когда мы уже пытаемся использовать нерабочую пару ядро-initrd.
Поскольку в initramfs создаётся усечённый набор модулей и прошивок, он
больше подходит для решения данной задачи, некоторые проблемы порой
возникают из-за усечения набора, их может быть поздно исправлять в
stage2 rootfs, когда модуль уже неудачно загрузился на первой стадии.
>> О проблемах разъезда путей в ядре и соответствующей firmware мы всегда
>> узнаём постфактум по соответствующим багам,
> Что ты имеешь в виду под разъездом путей ?
>
> /lib/firmware/nvidia/470.256.02/gsp.bin
> /lib/firmware/nvidia/570.169/gsp_ga10x.bin
> /lib/firmware/nvidia/570.169/gsp_tu10x.bin
>
> Ты про вот такие пути, где есть версия ? Это единственный пример с
> проблемными путями, который я смог придумать.
Приведу в ретроспективе несколько примеров, в реальности их можно найти
в нашей багзиле намного больше, у них разные корни, а сколько ещё будет...
https://bugzilla.altlinux.org/40079
https://bugzilla.altlinux.org/48803
https://bugzilla.altlinux.org/46348
https://bugzilla.altlinux.org/40065
https://bugzilla.altlinux.org/50471
https://bugzilla.altlinux.org/54261
Нельзя утверждать на 100%, что все эти примеры про разъезд путей или
ядра с firmware. Большинство точно про это, другие с некоторой
вероятностью не исключают и такой разъезд.
>> когда новое initrd уже сгенерировано и не получилось загрузиться или
>> получилось, но эта новая связка создала проблемы при дальнейшей работе.
>> Мы могли бы выявлять потенциальные проблемы уже на этапе создания
>> initrd. А без реализации предлагаемого мы не сможем даже примерно
>> оценить масштаб этой проблемы для будущих обновлений. Поэтому я считаю,
>> что такой инструмент был бы полезным. Хотя бы подсчитывать число
>> предупреждений без вывода их в stderr, если не указан "-v".
> Я считаю, что никто из пользователей не будет смотреть на эти
> предупреждения об отсутствующих firmware.
>
> Пользователю не ясно какие firmware необходимы, а какие нет. Список в
> десяток или сотни строк про отсутствующие чего-то-там никак пониманию не
> помогут. Непонятно, что делать пользователю, если он такое видит. Если это
> ошибка, то это должно быть ошибкой.
>
> Я уже не говорю, про обновления через gui всякие, где выхлопа от генерации
> initrd вообще не видно. Например на моей системе это вообще происходит в
> бэкграунде, не смотря что обновление не через gui происходит.
Поэтому вариант с фильтром и только с "-v" для начала всех бы устроил. В
основной вывод могла бы попадать лишь одна строчка со статистикой после
отбрасывания отфильтрованного. Like this:
W: Possible missing firmware counters: 481 file(s), 8 module(s).
> Вот варианты решения проблемы в порядке трудозатратности.
>
> 1. Добавить в depinfo режим отображения отсутствующих firmware и
> использовать эту утилиту для проверки при сборки пакетов с
> модулями/firmware. Так как именно при сборке пакета ломается загрузка.
Загрузка ломается (или это иначе выражается) после активации новой пары
ядро-initrd. Но да, сборка пакета -- ещё более ранняя стадия, нежели
сборка initrd. Вот только при сборке initrd без этой утилиты не
обойтись, поскольку создаётся усечённый набор, а не всё, что попадает в
stage2 rootfs.
> module /lib/modules/6.15.4-gentoo-dist/kernel/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
> \_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/wireless/cfg80211.ko
> \_ missing-firmware regulatory.db
> \_ missing-firmware regulatory.db.p7s
> \_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/rfkill/rfkill.ko
> \_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/mac80211/mac80211.ko
> \_ module /lib/modules/6.15.4-gentoo-dist/kernel/lib/crypto/libarc4.ko
>
> 2. Поскольку не существует хорошего способа определить необходимые
> firmware, то можно сделать режим, в котором будут требоваться _все_
> firmware для пакуемых модулей.
>
> 3. Можно сделать фичу по определению firmware требовавшихся для загрузки
> текущего ядра и пробовать использовать эту информацию. В этом случае можно
> будет по аналогии с MODULES_ADD добавить контроль за необходимыми
> firmware.
> Из минусов, что это всё ещё хак по определению требуемых firmware и всё
> равно нужно будет решать задачу с путями.
Пункт 3 уязвим к односторонним изменениям в апстриме ядра или firmware.
Остальное тебе видней. Я лишь заметил, что в update-initramfs это
появилось. И ведь тоже не на пустом месте. Можно же посмотреть, как у
других решено.
--
WBR, Leonid Krivoshein.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [make-initrd] Possible missing firmware
2025-07-05 22:40 ` Leonid Krivoshein
@ 2025-07-05 23:57 ` Alexey Gladkov
0 siblings, 0 replies; 14+ messages in thread
From: Alexey Gladkov @ 2025-07-05 23:57 UTC (permalink / raw)
To: make-initrd
On Sun, Jul 06, 2025 at 01:40:19AM +0300, Leonid Krivoshein wrote:
>
> On 7/5/25 18:00, Alexey Gladkov wrote:
> > On Sat, Jul 05, 2025 at 04:04:05PM +0300, Leonid Krivoshein wrote:
> >>> Прошу, потому что из тех сообщений об ошибках я себе нафантазировал одно,
> >>> а ты и Антон думаете скорее всего про другое.
> >> Пакеты с firmware и пакеты с ядрами сопровождаются разными людьми, они
> >> обновляются не синхронно, не согласованно.
> > Ну то есть проблема всё-таки организационная. Из-за несогласованности
> > мантейнеров пакетов страдают пользователи.
>
> Да, потому что де-факто мы можем даже обновлять ядро независимо от
> юзерспейса. Но не только организационная, потому что есть много причин
> считать её ещё и технической. Хотя бы потому, что между ядром и пакетами
> firmware фактически не обозначено жёстких файловых зависимостей. Даже
> неведомые нам ошибки в ядре могли бы ловиться на более ранней стадии, а
> не когда мы уже пытаемся использовать нерабочую пару ядро-initrd.
> Поскольку в initramfs создаётся усечённый набор модулей и прошивок, он
> больше подходит для решения данной задачи, некоторые проблемы порой
> возникают из-за усечения набора, их может быть поздно исправлять в
> stage2 rootfs, когда модуль уже неудачно загрузился на первой стадии.
Признаться я не понимаю твою терминологию: stage1, stage2, ...
Отсутствие зависимостей между модулями и firmware это просто недоработка
вашей системы сборки т.к. зависимость на firmware в модуле это фактическая
зависимость из модуля на файловую систему. Ядро даже имеет возможность
загрузить firmware без udev и хэлперов т.е. напрямую с fs.
> Приведу в ретроспективе несколько примеров, в реальности их можно найти
> в нашей багзиле намного больше, у них разные корни, а сколько ещё будет...
>
> https://bugzilla.altlinux.org/40079
> https://bugzilla.altlinux.org/48803
> https://bugzilla.altlinux.org/46348
> https://bugzilla.altlinux.org/40065
> https://bugzilla.altlinux.org/50471
> https://bugzilla.altlinux.org/54261
>
> Нельзя утверждать на 100%, что все эти примеры про разъезд путей или
> ядра с firmware. Большинство точно про это, другие с некоторой
> вероятностью не исключают и такой разъезд.
В большинстве упоминается, что помогло обновление linux-firmware. Но к
сожалению я не увидел, что проблема именно в нехватке файлов firmware, а
не в багах в самих firmware.
> >> когда новое initrd уже сгенерировано и не получилось загрузиться или
> >> получилось, но эта новая связка создала проблемы при дальнейшей работе.
> >> Мы могли бы выявлять потенциальные проблемы уже на этапе создания
> >> initrd. А без реализации предлагаемого мы не сможем даже примерно
> >> оценить масштаб этой проблемы для будущих обновлений. Поэтому я считаю,
> >> что такой инструмент был бы полезным. Хотя бы подсчитывать число
> >> предупреждений без вывода их в stderr, если не указан "-v".
> > Я считаю, что никто из пользователей не будет смотреть на эти
> > предупреждения об отсутствующих firmware.
> >
> > Пользователю не ясно какие firmware необходимы, а какие нет. Список в
> > десяток или сотни строк про отсутствующие чего-то-там никак пониманию не
> > помогут. Непонятно, что делать пользователю, если он такое видит. Если это
> > ошибка, то это должно быть ошибкой.
> >
> > Я уже не говорю, про обновления через gui всякие, где выхлопа от генерации
> > initrd вообще не видно. Например на моей системе это вообще происходит в
> > бэкграунде, не смотря что обновление не через gui происходит.
>
> Поэтому вариант с фильтром и только с "-v" для начала всех бы устроил. В
> основной вывод могла бы попадать лишь одна строчка со статистикой после
> отбрасывания отфильтрованного. Like this:
>
> W: Possible missing firmware counters: 481 file(s), 8 module(s).
Кто будет читать эти сообщения и когда ? Даже мне не понятно, что делать,
если я увижу такую строчку.
Что предлагаешь делать, в случае появления такого сообщения у
пользователя ? Собственно, ссылка [1] из начала треда показывает, что эти
сообщения ничем не помогают пользователю.
[1] https://askubuntu.com/questions/1478862/after-a-fresh-install-of-kubuntu-error-shows-during-boot-amdgpu-secure-displa
Кто и как будет поддерживать и обновлять эти фильтры ? Я этого делать не
буду просто потому что релизы make-initrd выходят реже kernel и firmware.
> > Вот варианты решения проблемы в порядке трудозатратности.
> >
> > 1. Добавить в depinfo режим отображения отсутствующих firmware и
> > использовать эту утилиту для проверки при сборки пакетов с
> > модулями/firmware. Так как именно при сборке пакета ломается загрузка.
>
> Загрузка ломается (или это иначе выражается) после активации новой пары
> ядро-initrd. Но да, сборка пакета -- ещё более ранняя стадия, нежели
> сборка initrd. Вот только при сборке initrd без этой утилиты не
> обойтись, поскольку создаётся усечённый набор, а не всё, что попадает в
> stage2 rootfs.
Ты уже не раз повторил про усечённый набор, хотя это очевидно неправда.
В initrd пакуется _полный_ набор, который доступен на момент создания
initrd.
Добавь зависимости в пакеты и всё попадёт в образ. Второй вариант, ставь
всегда все firmware.
> > module /lib/modules/6.15.4-gentoo-dist/kernel/drivers/net/wireless/realtek/rtlwifi/rtlwifi.ko
> > \_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/wireless/cfg80211.ko
> > \_ missing-firmware regulatory.db
> > \_ missing-firmware regulatory.db.p7s
> > \_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/rfkill/rfkill.ko
> > \_ module /lib/modules/6.15.4-gentoo-dist/kernel/net/mac80211/mac80211.ko
> > \_ module /lib/modules/6.15.4-gentoo-dist/kernel/lib/crypto/libarc4.ko
> >
> > 2. Поскольку не существует хорошего способа определить необходимые
> > firmware, то можно сделать режим, в котором будут требоваться _все_
> > firmware для пакуемых модулей.
> >
> > 3. Можно сделать фичу по определению firmware требовавшихся для загрузки
> > текущего ядра и пробовать использовать эту информацию. В этом случае можно
> > будет по аналогии с MODULES_ADD добавить контроль за необходимыми
> > firmware.
> > Из минусов, что это всё ещё хак по определению требуемых firmware и всё
> > равно нужно будет решать задачу с путями.
>
> Пункт 3 уязвим к односторонним изменениям в апстриме ядра или firmware.
Но ты ничего не сказал, про пункт 2. Из услышанного я всё больше склоняюсь
к нему. В этом случае пользователь не сможет сгенерировать потенциально
ошибочный initrd из-за усеченного набора, а дальше он придёт к вам с
репортом.
Разумеется всё это не спасёт от ошибок в самих firmware и возможных
проблем с разными сочетаниями ядро-firmware (слишком старое ядро и слишком
новый linux-firmware, etc.).
> Остальное тебе видней. Я лишь заметил, что в update-initramfs это
> появилось. И ведь тоже не на пустом месте. Можно же посмотреть, как у
> других решено.
У них реализовано настолько не очевидное решение, что я даже не понимаю,
это решение чего. По поводу сообщений я задал вопросы выше.
--
Rgrds, legion
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-07-05 23:57 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-02 23:37 [make-initrd] Possible missing firmware Leonid Krivoshein
2025-07-04 10:42 ` Alexey Gladkov
2025-07-04 10:43 ` Anton Midyukov
2025-07-04 11:38 ` Alexey Gladkov
2025-07-04 13:20 ` Alexey Gladkov
2025-07-04 15:03 ` Alexey Gladkov
2025-07-04 15:23 ` Leonid Krivoshein
2025-07-04 18:23 ` Alexey Gladkov
2025-07-05 0:47 ` Leonid Krivoshein
2025-07-05 8:36 ` Alexey Gladkov
2025-07-05 13:04 ` Leonid Krivoshein
2025-07-05 15:00 ` Alexey Gladkov
2025-07-05 22:40 ` Leonid Krivoshein
2025-07-05 23:57 ` Alexey Gladkov
Make-initrd development discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \
make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com
public-inbox-index make-initrd
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.make-initrd
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git