* [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