Bug 39763 - kernel-image require modules-drm
Summary: kernel-image require modules-drm
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-un-def (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-05 16:08 MSK by Sergey V Turchin
Modified: 2021-03-16 12:59 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey V Turchin 2021-03-05 16:08:23 MSK
# depinfo -k 5.10.19-un-def-alt1 rmi_core
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/input/rmi4/rmi_core.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-v4l2.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-common.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/mc/mc.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/v4l2-core/videodev.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-memops.ko
Comment 1 Alexey Sheplyakov 2021-03-09 07:25:44 MSK
Разбиение модулей на подпакеты давно [1] уже не соответствует зависимостям между модулями.

Например

$ depinfo drm_kms_helper
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/gpu/drm/drm_kms_helper.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/gpu/drm/drm.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/cec/core/cec.ko
module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/rc/rc-core.ko

Разработчики ядра выделили реализацию Consumer Electronics Control [2] в отдельный модуль,
и используют его везде, где потребуется (например, в драйверах hdmi). И никого не волнует,
что мы когда-то решили, что между drivers/gpu и drivers/media нет и не может быть зависимостей.

Поскольку ядро - единое целое (см. stable api nonsense), то нет никакой гарантии, что такие
"неожиданные" зависимости не появятся вновь. Скорее наоборот - любое разбиение модулей ядра
на подпакеты гарантировано приведет к тому, что либо

1) все подпакеты (с модулями) будут зависеть друг от друга (уже произошло для modules-drm и modules-v4l)
2) часть модулей подпакета будет неработоспособна из-за отсутствующих зависимостей,
   (которые "счастливые" пользователи должны будут найти вручную). До недавнего времени
   такая ситуация была с kernel-modules-drm-std-def: модуль dw_hdmi.ko не грузился,
   если не установлен пакет kernel-modules-v4l-def


Поэтому считаю, что

1) Все (in-tree) модули нужно паковать в пакет kernel-image
2) Те, кто боится, что на его любимом сервере загрузится drm.ko, могут внести его в blacklist.
   В "серверные" образы такой blacklist можно включить по умолчанию.  
3) Для экономии дискового пространства/траффика использовать сжатие модулей (CONFIG_MODULE_COMPRESS=y, CONFIG_MODULE_COMPRESS_XZ=y),
   kmod уже собран с поддержкой сжатых модулей


[1] Как минимум со времен ядра 4.9, но на x86 это было не так заметно
[2] https://en.wikipedia.org/wiki/Consumer_Electronics_Control
Comment 2 Sergey V Turchin 2021-03-09 10:58:14 MSK
(Ответ для Alexey Sheplyakov на комментарий #1)
> $ depinfo drm_kms_helper
Я уже напоролся с amdgpu.
Comment 3 Anton V. Boyarshinov 2021-03-09 11:55:00 MSK
Есть ещё одно решение -- написать генератор rpm зависимостей между модулями ядра, задача не то, чтоб выглядит сложной, но никто пока не взялся. И, соответственно, менять раскладку модулей в соответствии с результатами работы этого генератора...
Comment 4 Alexey Sheplyakov 2021-03-09 13:00:18 MSK
(In reply to Anton V. Boyarshinov from comment #3)
> Есть ещё одно решение -- написать генератор rpm зависимостей между модулями
> ядра, задача не то, чтоб выглядит сложной, но никто пока не взялся. И,
> соответственно, менять раскладку модулей в соответствии с результатами
> работы этого генератора...


1) Как быть с обновлениями? "Жил" себе модуль в kernel-image, и тут мы решили его
   перенести в modules-v4l. Пользователь, у которого не был установлен modules-v4l,
   после update-kernel получит тыкву.

2) Что делать с циклическими зависимостями (вроде modules-v4l/modules-drm)?


"Все нужное - не сложно, все сложное - не нужно"
Comment 5 Anton V. Boyarshinov 2021-03-09 13:23:53 MSK
(Ответ для Alexey Sheplyakov на комментарий #1)
> Разбиение модулей на подпакеты давно [1] уже не соответствует зависимостям
> между модулями.
> 
> $ depinfo drm_kms_helper
> module
> /lib/modules/5.10.19-un-def-alt1/kernel/drivers/gpu/drm/drm_kms_helper.ko
> module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/gpu/drm/drm.ko
> module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/cec/core/cec.ko
> module /lib/modules/5.10.19-un-def-alt1/kernel/drivers/media/rc/rc-core.ko

Это учтено уже некоторое время как.

> Разработчики ядра выделили реализацию Consumer Electronics Control [2] в
> отдельный модуль,
> и используют его везде, где потребуется (например, в драйверах hdmi). И
> никого не волнует,
> что мы когда-то решили, что между drivers/gpu и drivers/media нет и не может
> быть зависимостей.
> 
> Поскольку ядро - единое целое (см. stable api nonsense), то нет никакой
> гарантии, что такие
> "неожиданные" зависимости не появятся вновь. Скорее наоборот - любое
> разбиение модулей ядра
> на подпакеты гарантировано приведет к тому, что либо
> 
> 1) все подпакеты (с модулями) будут зависеть друг от друга (уже произошло
> для modules-drm и modules-v4l)
Вообще говоря, добавление части модулей из v4l в drm, как эта проблема решалась раньше, не создаёт такой зависимости.

> 2) часть модулей подпакета будет неработоспособна из-за отсутствующих
> зависимостей,
По хорошему, нужна автгенерация и автопоиск зависимостей..

> 3) Для экономии дискового пространства/траффика использовать сжатие модулей
> (CONFIG_MODULE_COMPRESS=y, CONFIG_MODULE_COMPRESS_XZ=y),

К сожалению, сжатые модули оказались несовместимы с EMA/EVM
Comment 6 Valery Inozemtsev 2021-03-09 13:46:23 MSK
разбивать kernel-image на модули просто несусветная глупость. там не такой большой объем что бы на этом экономить
Comment 7 Sergey Bolshakov 2021-03-09 14:04:47 MSK
https://bugzilla.altlinux.org/show_bug.cgi?id=25852
https://bugzilla.altlinux.org/show_bug.cgi?id=28926
мы эти кактусы смакуем уже очень давно.
идею перестать выделять in-tree модули в подпакеты нахожу здравой.
Comment 8 Sergey V Turchin 2021-03-09 14:46:04 MSK
(Ответ для Sergey Bolshakov на комментарий #7)
> идею перестать выделять in-tree модули в подпакеты нахожу здравой.
+1
Comment 9 Sergey V Turchin 2021-03-09 14:57:52 MSK
(Ответ для Anton V. Boyarshinov на комментарий #3)
> Есть ещё одно решение -- написать генератор rpm зависимостей между модулями
> ядра, задача не то, чтоб выглядит сложной, но никто пока не взялся. И,
> соответственно, менять раскладку модулей в соответствии с результатами
> работы этого генератора...
Т.е. генератор будет делать новый набор подпакетов с каждой минорной версией ядра.
В результате после нескольких обновлений минора при помощи update-kernel машина остаётся вообще без каких-либо kernel-modules.
Comment 10 Sergey V Turchin 2021-03-09 14:59:11 MSK
Как вариант -- оставить 2 пакета: kernel-image и kernel-modules.
Comment 11 Sergey V Turchin 2021-03-09 15:01:59 MSK
(Ответ для Sergey V Turchin на комментарий #10)
> Как вариант -- оставить 2 пакета: kernel-image и kernel-modules.
А их уже автогенератором делИть.
Например, давая ему список необходимых в kernel-image модулей, чтоб остальное по возможности отбрасывалось в kernel-modules.
Comment 12 Anton V. Boyarshinov 2021-03-09 15:54:35 MSK
(Ответ для Alexey Sheplyakov на комментарий #4)
> (In reply to Anton V. Boyarshinov from comment #3)
> > Есть ещё одно решение -- написать генератор rpm зависимостей между модулями
> > ядра, задача не то, чтоб выглядит сложной, но никто пока не взялся. И,
> > соответственно, менять раскладку модулей в соответствии с результатами
> > работы этого генератора...
> 
> 
> 1) Как быть с обновлениями? "Жил" себе модуль в kernel-image, и тут мы
> решили его
>    перенести в modules-v4l. Пользователь, у которого не был установлен

В эту сторону переносов пока не было. Кроме того, ничто не мешает файлу быть одновременно в нескольких подпакетах.
Comment 13 Anton V. Boyarshinov 2021-03-09 15:55:47 MSK
(Ответ для Sergey V Turchin на комментарий #9)
> (Ответ для Anton V. Boyarshinov на комментарий #3)
> > Есть ещё одно решение -- написать генератор rpm зависимостей между модулями
> > ядра, задача не то, чтоб выглядит сложной, но никто пока не взялся. И,
> > соответственно, менять раскладку модулей в соответствии с результатами
> > работы этого генератора...
> Т.е. генератор будет делать новый набор подпакетов с каждой минорной версией
> ядра.
> В результате после нескольких обновлений минора при помощи update-kernel
> машина остаётся вообще без каких-либо kernel-modules.

Генератор зависимостей, а не подпакетов. Который делал бы зависимости между модулями зависимостями между пакетами, которые мы умеем отслеживать лучше.
Comment 14 Valery Inozemtsev 2021-03-09 16:14:29 MSK
внимание вопрос! какую задачу вы решаете выделяя какие то модули из kernel-image в kernel-modeles?
Comment 15 Sergey V Turchin 2021-03-09 17:11:03 MSK
(Ответ для Anton V. Boyarshinov на комментарий #13)
> Генератор зависимостей, а не подпакетов.
Все будут тупо друг от друга зависеть.
Comment 16 Sergey V Turchin 2021-03-09 17:12:08 MSK
(Ответ для Valery Inozemtsev на комментарий #14)
> какую задачу вы решаете
Разве не SUBJ?
Comment 17 Valery Inozemtsev 2021-03-09 17:27:26 MSK
(Ответ для Sergey V Turchin на комментарий #16)
> (Ответ для Valery Inozemtsev на комментарий #14)
> > какую задачу вы решаете
> Разве не SUBJ?

ни разу ни SUBJ. поставлю вопрос по другому. ЗАЧЕМ разбивать kernel-image на подпакеты?
Comment 18 Sergey V Turchin 2021-03-09 17:33:42 MSK
(Ответ для Valery Inozemtsev на комментарий #17)
> ЗАЧЕМ разбивать kernel-image на подпакеты?
Это тема другой баги, хоть её тут уже слегка и обсуждали.
Comment 19 Valery Inozemtsev 2021-03-09 17:41:33 MSK
вот это и надо обсуждать, а не изобретать <strike>велосипедные велосипеды</strike> генератор зависимостей
Comment 20 Anton V. Boyarshinov 2021-03-10 10:46:26 MSK
(Ответ для Valery Inozemtsev на комментарий #17)
> (Ответ для Sergey V Turchin на комментарий #16)
> > (Ответ для Valery Inozemtsev на комментарий #14)
> > > какую задачу вы решаете
> > Разве не SUBJ?
> 
> ни разу ни SUBJ. поставлю вопрос по другому. ЗАЧЕМ разбивать kernel-image на
> подпакеты?

Хотя бы для того, чтоб не ставить сомнительный код из дерева staging без крайней необходимости.

Есть вовсе ненулевое число людей, которые не хотят видеть на своих серверах модули drm ни в каком виде (blacklst это отлично, но его надо регулярно обновлять).

Способ переключения между nvidia и noveau через установку пакетов лично мне представляется удобнее других. А вот radeon больше не на что переключать и подпакет -radeon стоит включить в drm.

Подпакет -drm-ancient был выделен, по настоятельной просьбе кого-то в офисе, кажется shrek@

Подпакет v4l я во вчерашней сборке целиком включил в подпакет drm, так что данную багу можно считать исправленной.
Comment 21 Sergey V Turchin 2021-03-10 16:39:05 MSK
> Подпакет v4l я во вчерашней сборке целиком включил в подпакет drm,
rmi_core тоже?
Comment 22 Alexey Sheplyakov 2021-03-10 17:13:21 MSK
> > ни разу ни SUBJ. поставлю вопрос по другому. ЗАЧЕМ разбивать kernel-image на
> > подпакеты?
> 
> Хотя бы для того, чтоб не ставить сомнительный код из дерева staging без
> крайней необходимости.

1) blacklist по умолчанию всего staging
2) kernel-modules-staging, и проблемы с зависимостями нет: обычные модули от staging не зависят
 

> Есть вовсе ненулевое число людей, которые не хотят видеть на своих серверах
> модули drm ни в каком виде (blacklst это отлично, но его надо регулярно
> обновлять).

Не понятно, почему дистрибутив должен быть по умолчанию заточен под желания именно этой группы людей.
Число людей, которые хотели бы просто пользоваться компьютером, гораздо более ненулевое.

А те, кто знают, что такое drm, и "не хотят его видеть", наверное знают про rm,
rpm --excludepath, blacklist, и прочее.


> Способ переключения между nvidia и noveau через установку пакетов лично мне
> представляется удобнее других.

Это все равно, что переключаться между vim и emacs через установку пакетов. Неудобно.
Comment 23 Alexey Sheplyakov 2021-03-10 17:16:26 MSK
$ depinfo -k 5.10.22-un-def-alt1 rmi_core
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/input/rmi4/rmi_core.ko
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-v4l2.ko
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-common.ko
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/mc/mc.ko
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/v4l2-core/videodev.ko
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
module /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-memops.ko

$ rpm -q --whatprovides /lib/modules/5.10.22-un-def-alt1/kernel/drivers/input/rmi4/rmi_core.ko
kernel-image-un-def-5.10.22-alt1.aarch64
$ rpm -q --whatprovides /lib/modules/5.10.22-un-def-alt1/kernel/drivers/media/common/videobuf2/videobuf2-v4l2.ko
kernel-modules-drm-un-def-5.10.22-alt1.aarch64

Для работы модуля из kernel-image-un-def по-прежнему требуется модуль из пакета kernel-modules-drm-un-def.
Comment 24 Alexey Sheplyakov 2021-03-10 17:23:47 MSK
(In reply to Anton V. Boyarshinov from comment #12)

> > 1) Как быть с обновлениями? "Жил" себе модуль в kernel-image, и тут мы
> > решили его
> >    перенести в modules-v4l. Пользователь, у которого не был установлен
> 
> В эту сторону переносов пока не было. 

"Теперь будут". Вот прямо сейчас модуль rmi_core может внезапно переехать в какой-нибудь подпакет.

> Кроме того, ничто не мешает файлу быть одновременно в нескольких подпакетах.

А зачем в таком случае было делить на подпакеты?
Comment 25 Alexey Sheplyakov 2021-03-10 17:29:31 MSK
(In reply to Sergey V Turchin from comment #11)
> (Ответ для Sergey V Turchin на комментарий #10)
> > Как вариант -- оставить 2 пакета: kernel-image и kernel-modules.
> А их уже автогенератором делИть.
> Например, давая ему список необходимых в kernel-image модулей, чтоб
> остальное по возможности отбрасывалось в kernel-modules.

Вопрос о том, какие модули считать необходимыми, сильно зависит от архитектуры и (что хуже всего) личных предпочтений.
Comment 26 Anton V. Boyarshinov 2021-03-11 10:49:15 MSK
(Ответ для Alexey Sheplyakov на комментарий #23)

> Для работы модуля из kernel-image-un-def по-прежнему требуется модуль из
> пакета kernel-modules-drm-un-def.

Упс, я всё это время неправильно понимал в чём проблема, привычно интерпретировав её как новую зависимость drm от v4l, хотя всё было совершенно не так, спасибо.
Comment 27 Anton V. Boyarshinov 2021-03-11 11:02:05 MSK
(Ответ для Alexey Sheplyakov на комментарий #22)
> > > ни разу ни SUBJ. поставлю вопрос по другому. ЗАЧЕМ разбивать kernel-image на
> > > подпакеты?
> > 
> > Хотя бы для того, чтоб не ставить сомнительный код из дерева staging без
> > крайней необходимости.
> 
> 1) blacklist по умолчанию всего staging
Ммм.. там ведь, кажется, никакие маски не поддерживаются, так что список будет немаленький (понятно, что сгенерировать можно список любого размера)

> 2) kernel-modules-staging, и проблемы с зависимостями нет: обычные модули от
> staging не зависят
Случаи такие бывали, но как правило это действительно так.

> > Есть вовсе ненулевое число людей, которые не хотят видеть на своих серверах
> > модули drm ни в каком виде (blacklst это отлично, но его надо регулярно
> > обновлять).
> 
> Не понятно, почему дистрибутив должен быть по умолчанию заточен под желания
> именно этой группы людей.

"Дистрибутив по умолчанию" и "разбиение на пакеты" это немного разные истории. На дистрибутив по умолчанию больше влияет не разбиение на пакеты как таковое, а то, какие пакеты мы в него кладём. И если относительно мелкая нарезка на пакеты позволяет такой выбор делать, то её отсутствие -- не позволяет.

И не учитывать при нарезке пакетов мнение ldv@ и glebfm@ для меня было бы довольно странно.

> Число людей, которые хотели бы просто пользоваться компьютером, гораздо
> более ненулевое.
Да, и поставив дистрибутив в более или менее искоробочном виде, они получат достаточно полный набор пакетов.

> А те, кто знают, что такое drm, и "не хотят его видеть", наверное знают про
> rm,
> rpm --excludepath, blacklist, и прочее.
rm для файлов из пакетов и rpm --excludepath у нас не является рекомендуемым способом использования системы.

А относительно мелкая нарезка пакетов -- является. И пока вы не убедите ldv@ в том, что ядро больше не надо нарезать на подпакеты (а он потом -- меня), меня убеждать бесполезно.

> 
> 
> > Способ переключения между nvidia и noveau через установку пакетов лично мне
> > представляется удобнее других.
> 
> Это все равно, что переключаться между vim и emacs через установку пакетов.

В рамках формирования дистрибутива именно этот метод и используется. В том числе , для переключения между vim и emacs, который, последнее время, обычно просто не попадает в дистрибутивы (и таки да, кому надо -- поставит).
Comment 28 Anton Farygin 2021-03-11 11:05:26 MSK
вообще весь ваш диалог похоже, сводится к тому, что нужно кому-то сесть и написать генератор межпакетных зависимостей, основанный на зависимостях между модулями.

при этом можно будет считать ошибкой зависимость ядра на пакет с модулями.
Comment 29 Anton V. Boyarshinov 2021-03-11 11:42:45 MSK
(Ответ для Anton Farygin на комментарий #28)
> вообще весь ваш диалог похоже, сводится к тому, что нужно кому-то сесть и
> написать генератор межпакетных зависимостей, основанный на зависимостях
> между модулями.

Да, я собираюсь это сделать в ближайшие дни. Обсуждение в офисе привело к тому, что наиболее разумно генерировать файловые зависимости, так как они эффективно оптимизируются уже готовым годом (провайды в индексах будут только для тех зависимостей, которые кому-то нужны)

> при этом можно будет считать ошибкой зависимость ядра на пакет с модулями.
Да, пожалуй. Что-нибудь вроде "kernel-image не должен иметь файловых завимостей в /lib/modules"
Comment 30 Alexey Sheplyakov 2021-03-11 12:29:25 MSK
(In reply to Anton Farygin from comment #28)
> вообще весь ваш диалог похоже, сводится к тому, что нужно кому-то сесть и
> написать генератор межпакетных зависимостей, основанный на зависимостях
> между модулями.

Нет. Во-первых, кому-то надо сесть и сформулировать, зачем нужно in-tree модули разбивать на подпакеты. Для решения какой *технической* проблемы это нужно. Пока что я видел - "чтобы уважаемые люди (TM) не расстроились". Но это не техническая проблема.

А во-вторых, все упорно забывают про обновления. Кроме "генератора зависимостей" надо еще "немного" доработать update-kernel, чтобы, например, ничего не ломалось  при обновлении с 5.4 на 5.10. 

> при этом можно будет считать ошибкой зависимость ядра на пакет с модулями.

И что делать в случае такой ошибки? Вот модуль rmi_core из kernel-image завист от modules-drm. Дальше что?
Comment 31 Vitaly Chikunov 2021-03-11 12:38:38 MSK
(Ответ для Alexey Sheplyakov на комментарий #30)
> надо еще "немного" доработать update-kernel, чтобы, например,
> ничего не ломалось  при обновлении с 5.4 на 5.10.

Как доработать?

ps. Про update-kernel у меня ещё мысль, запишу её хотя бы здесь - если при апгрейде нет нужного модуля (скажем, он не собрался и его удалили), тем более загруженного, то выводить предупреждение пользователю.
Comment 32 Alexey Sheplyakov 2021-03-11 13:10:56 MSK
(In reply to Anton V. Boyarshinov from comment #27)

> > Число людей, которые хотели бы просто пользоваться компьютером, гораздо
> > более ненулевое.
> Да, и поставив дистрибутив в более или менее искоробочном виде, они получат
> достаточно полный набор пакетов.

А после update-kernel получат тыкву

> И не учитывать при нарезке пакетов мнение ldv@ и glebfm@ для меня было бы
> довольно странно.

Вот заставить бы этих прекрасных людей ездить к клиентам и починить последствия update-kernel.
Или собирать образы для каких-нибудь чудесных arm/mips плат.
И понаблюдать за их мнением. Мечты, мечты...
Comment 33 Alexey Sheplyakov 2021-03-11 13:27:52 MSK
(In reply to Vitaly Chikunov from comment #31)
> (Ответ для Alexey Sheplyakov на комментарий #30)
> > надо еще "немного" доработать update-kernel, чтобы, например,
> > ничего не ломалось  при обновлении с 5.4 на 5.10.
> 
> Как доработать?
> 
> ps. Про update-kernel у меня ещё мысль, запишу её хотя бы здесь - если при
> апгрейде нет нужного модуля (скажем, он не собрался и его удалили), тем
> более загруженного, то выводить предупреждение пользователю.

Набор "нужных" модулей зависит от версии ядра.
Например в 5.4.x (на x86) drm_kms_helper.ko не зависел от cec.ko, а в 5.10 ВНЕЗАПНО уже зависит.

А еще бывает, что раньше модуль поддерживал железяку с pci id NNNN, а потом поддержку этой железяки "занялся" другой драйвер (например, драйвер "переехал" из staging и по пути поменял имя)
Comment 34 Alexey Sheplyakov 2021-03-11 16:33:57 MSK
(In reply to Alexey Sheplyakov from comment #33)
> (In reply to Vitaly Chikunov from comment #31)
> > (Ответ для Alexey Sheplyakov на комментарий #30)
> > > надо еще "немного" доработать update-kernel, чтобы, например,
> > > ничего не ломалось  при обновлении с 5.4 на 5.10.
> > 
> > Как доработать?
> > 
> > ps. Про update-kernel у меня ещё мысль, запишу её хотя бы здесь - если при
> > апгрейде нет нужного модуля (скажем, он не собрался и его удалили), тем
> > более загруженного, то выводить предупреждение пользователю.
> 
> Набор "нужных" модулей зависит от версии ядра.
> Например в 5.4.x (на x86) drm_kms_helper.ko не зависел от cec.ko, а в 5.10
> ВНЕЗАПНО уже зависит.
> 
> А еще бывает, что раньше модуль поддерживал железяку с pci id NNNN, а потом
> поддержку этой железяки "занялся" другой драйвер (например, драйвер
> "переехал" из staging и по пути поменял имя)

Еще пример: разделение efivars на собственно efivars и efivarfs (в 5.10). Без efivarfs нет /sys/firmware/efi/efivars, и не работает efibootmgr
Comment 35 Anton V. Boyarshinov 2021-03-16 12:59:52 MSK
в 5.10.23 данные (и ещё некоторые) модули перенесены в kernel-image, зависимости между модулями ядра теперь контролируются автоматически.