Bug 53706 - Не добавляется модуль phy_rockchip_samsung_hdptx
Summary: Не добавляется модуль phy_rockchip_samsung_hdptx
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: aarch64 Linux
: P5 normal
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-04-02 22:25 MSK by Антон Мидюков
Modified: 2025-06-21 20:16 MSK (History)
6 users (show)

See Also:


Attachments
make-initrd bug-report (1.32 MB, application/x-xz)
2025-04-02 22:25 MSK, Антон Мидюков
no flags Details
make-initrd -v (10.77 KB, text/plain)
2025-04-02 22:26 MSK, Антон Мидюков
no flags Details
device-tree-from-proc (387.17 KB, text/plain)
2025-04-03 13:40 MSK, Антон Мидюков
no flags Details
device-tree-modules v1 (426 bytes, text/plain)
2025-06-21 10:42 MSK, Alexey Gladkov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2025-04-02 22:25:50 MSK
Created attachment 18128 [details]
make-initrd bug-report

На одноплатнике Orange Pi 5 (Rockchip RK3588S) make-initrd не добавляет модуль phy_rockchip_samsung_hdptx (/lib/modules/6.14.0-6.14-alt1/kernel/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.ko.zs
t). Samsung HDMI/eDP Transmitter Combo PHY Driver.
Из-за этого HDMI в initrd не включается.
Comment 1 Антон Мидюков 2025-04-02 22:26:15 MSK
Created attachment 18129 [details]
make-initrd -v
Comment 2 Alexey Gladkov 2025-04-03 11:32:37 MSK
Он не нужен ни для рута ни для gpu-drm.

В рамках какой фичи ты предполагаешь, что make-initrd должен был добавить его ?
Comment 3 Антон Мидюков 2025-04-03 11:51:31 MSK
(Ответ для Alexey Gladkov на комментарий #2)
> Он не нужен ни для рута ни для gpu-drm.
> 
> В рамках какой фичи ты предполагаешь, что make-initrd должен был добавить
> его ?

Полагаю, что gpu-drm. Но нужен он для plymouth. rockchipdrm бесполезен без этого модуля на RK3588.
Comment 4 Alexey Gladkov 2025-04-03 13:18:16 MSK
Я пока не нашёл в sysfs связи между rockchipdrm и phy-rockchip-samsung-hdptx.

Я очень поверхностно посмотрел код rockchipdrm и если я правильно понял, hdmi является опциональной зависимостью.

Я не уверен, но кажется, что это задаётся в device tree. Если это так, то это очень печально. Я очень не хотел лезть в device tree.
Comment 5 Alexey Gladkov 2025-04-03 13:23:27 MSK
У тебя на этой машинке стоит пакет dtc ?

find /proc/device-tree/ -type f -exec head {} + > device-tree-from-proc

Можешь приложить результат команды ?
Comment 6 Антон Мидюков 2025-04-03 13:40:37 MSK
Created attachment 18136 [details]
device-tree-from-proc
Comment 7 Антон Мидюков 2025-04-03 13:41:22 MSK
(Ответ для Alexey Gladkov на комментарий #5)
> У тебя на этой машинке стоит пакет dtc ?
> 

да

> find /proc/device-tree/ -type f -exec head {} + > device-tree-from-proc
> 
> Можешь приложить результат команды ?

приложил
Comment 8 Alexey Gladkov 2025-04-03 15:20:14 MSK
(In reply to Антон Мидюков from comment #7)
> > find /proc/device-tree/ -type f -exec head {} + > device-tree-from-proc
> > 
> > Можешь приложить результат команды ?
> 
> приложил

блин, там та же информация, что и в /sys/firmware/devicetree/base (((

Я пока не знаю как испавить проблему. Если у вас там есть знающие люди, то буду рад советам.
Comment 9 Alexey Gladkov 2025-04-05 21:04:08 MSK
Я ничего не знаю про одноплатники и dts, но посмотрел https://github.com/armbian/build . Насколько я вижу в большинстве конфигураций ядра делается CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y .

https://github.com/search?q=repo%3Aarmbian%2Fbuild%20hdptx&type=code
Comment 10 Антон Мидюков 2025-04-05 21:22:07 MSK
(Ответ для Alexey Gladkov на комментарий #9)
> Я ничего не знаю про одноплатники и dts, но посмотрел
> https://github.com/armbian/build . Насколько я вижу в большинстве
> конфигураций ядра делается CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y .
> 
> https://github.com/search?q=repo%3Aarmbian%2Fbuild%20hdptx&type=code

Armbiam под каждый SoC собирают своё ядро, поэтому все базовые модули встраивают.
У Fedora, как модуль собирается:
https://src.fedoraproject.org/rpms/kernel/blob/f41/f/kernel-aarch64-fedora.config#_6082

Но если другого выхода нет, то придётся встраивать.

А нельзя все загруженные модули из drivers/phy/ включать в initrd?
Comment 11 Alexey Gladkov 2025-04-06 01:19:52 MSK
(In reply to Антон Мидюков from comment #10)
> (Ответ для Alexey Gladkov на комментарий #9)
> > Я ничего не знаю про одноплатники и dts, но посмотрел
> > https://github.com/armbian/build . Насколько я вижу в большинстве
> > конфигураций ядра делается CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y .
> > 
> > https://github.com/search?q=repo%3Aarmbian%2Fbuild%20hdptx&type=code
> 
> Armbiam под каждый SoC собирают своё ядро, поэтому все базовые модули
> встраивают.

Я к тому, что даже у них мне удалось найти способа детекта связи между модулями.

> У Fedora, как модуль собирается:
> https://src.fedoraproject.org/rpms/kernel/blob/f41/f/kernel-aarch64-fedora.
> config#_6082
> 
> Но если другого выхода нет, то придётся встраивать.
> 
> А нельзя все загруженные модули из drivers/phy/ включать в initrd?

Также в случае fedora. В dracut нет способа его детектировать и они просто добавляют здоровый список директорий для определённых архитектур:

https://github.com/dracutdevs/dracut/blob/master/modules.d/90kernel-modules/module-setup.sh#L82

У меня уже есть фича modules-sbc которая приносит примерно тот же список модулей.

Ты думаешь стоит делать такой же guess как в dracut по архитектуре или можно просто добавлять modules-sbc для таких одноплатников ?
Comment 12 Антон Мидюков 2025-04-06 05:12:28 MSK
(Ответ для Alexey Gladkov на комментарий #11)
> (In reply to Антон Мидюков from comment #10)
> > (Ответ для Alexey Gladkov на комментарий #9)
> > > Я ничего не знаю про одноплатники и dts, но посмотрел
> > > https://github.com/armbian/build . Насколько я вижу в большинстве
> > > конфигураций ядра делается CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y .
> > > 
> > > https://github.com/search?q=repo%3Aarmbian%2Fbuild%20hdptx&type=code
> > 
> > Armbiam под каждый SoC собирают своё ядро, поэтому все базовые модули
> > встраивают.
> 
> Я к тому, что даже у них мне удалось найти способа детекта связи между
> модулями.
> 
> > У Fedora, как модуль собирается:
> > https://src.fedoraproject.org/rpms/kernel/blob/f41/f/kernel-aarch64-fedora.
> > config#_6082
> > 
> > Но если другого выхода нет, то придётся встраивать.
> > 
> > А нельзя все загруженные модули из drivers/phy/ включать в initrd?
> 
> Также в случае fedora. В dracut нет способа его детектировать и они просто
> добавляют здоровый список директорий для определённых архитектур:
> 
> https://github.com/dracutdevs/dracut/blob/master/modules.d/90kernel-modules/
> module-setup.sh#L82
> 
> У меня уже есть фича modules-sbc которая приносит примерно тот же список
> модулей.
> 
> Ты думаешь стоит делать такой же guess как в dracut по архитектуре или можно
> просто добавлять modules-sbc для таких одноплатников ?

Хотелось избежать большого initrd при эксплуатации. modules-sbc добавляет все каталоги с модулями в независимости от их использования. В результате initrd загрузится на любом одноплатнике. Включать эту фичу автоматически точно не стоит.
Я предлагал добавлять только используемые модули из определённых каталогов. При использовании ACPI эти модули не используются. На aarch64 есть сервера с ACPI, которым такой initrd не нужен точно.
Comment 13 Alexey Gladkov 2025-04-06 11:39:29 MSK
(In reply to Антон Мидюков from comment #12)
> > Также в случае fedora. В dracut нет способа его детектировать и они просто
> > добавляют здоровый список директорий для определённых архитектур:
> > 
> > https://github.com/dracutdevs/dracut/blob/master/modules.d/90kernel-modules/
> > module-setup.sh#L82
> > 
> > У меня уже есть фича modules-sbc которая приносит примерно тот же список
> > модулей.
> > 
> > Ты думаешь стоит делать такой же guess как в dracut по архитектуре или можно
> > просто добавлять modules-sbc для таких одноплатников ?
> 
> Хотелось избежать большого initrd при эксплуатации. modules-sbc добавляет
> все каталоги с модулями в независимости от их использования. В результате
> initrd загрузится на любом одноплатнике. Включать эту фичу автоматически
> точно не стоит.

Просто ты привёл в пример fedora, а там логика эквивалент modules-sbc для архитектрур arm*, aarch64, riscv* . Я подумал, что твоё предложение было в том, чтобы сделать такой же угадав у нас.

> Я предлагал добавлять только используемые модули из определённых каталогов.

Просто смотреть на загруженные в данный момент модули ?

> При использовании ACPI эти модули не используются. На aarch64 есть сервера с
> ACPI, которым такой initrd не нужен точно.
Comment 14 Антон Мидюков 2025-04-06 11:43:16 MSK
(Ответ для Alexey Gladkov на комментарий #13)
> (In reply to Антон Мидюков from comment #12)
> > > Также в случае fedora. В dracut нет способа его детектировать и они просто
> > > добавляют здоровый список директорий для определённых архитектур:
> > > 
> > > https://github.com/dracutdevs/dracut/blob/master/modules.d/90kernel-modules/
> > > module-setup.sh#L82
> > > 
> > > У меня уже есть фича modules-sbc которая приносит примерно тот же список
> > > модулей.
> > > 
> > > Ты думаешь стоит делать такой же guess как в dracut по архитектуре или можно
> > > просто добавлять modules-sbc для таких одноплатников ?
> > 
> > Хотелось избежать большого initrd при эксплуатации. modules-sbc добавляет
> > все каталоги с модулями в независимости от их использования. В результате
> > initrd загрузится на любом одноплатнике. Включать эту фичу автоматически
> > точно не стоит.
> 
> Просто ты привёл в пример fedora, а там логика эквивалент modules-sbc для
> архитектрур arm*, aarch64, riscv* . Я подумал, что твоё предложение было в
> том, чтобы сделать такой же угадав у нас.
> 
> > Я предлагал добавлять только используемые модули из определённых каталогов.
> 
> Просто смотреть на загруженные в данный момент модули ?
> 

Да. Но с учётом того, что у текущего они могут быть built-in, а у целевого в виде модулей.
Comment 15 Alexey Gladkov 2025-04-06 12:33:15 MSK
(In reply to Антон Мидюков from comment #14)
> Да. Но с учётом того, что у текущего они могут быть built-in, а у целевого в
> виде модулей.

У builtin модулей нет filename. У них есть только file (которого нет у загружаемых модулей). Их не получится просто grep'ать. Для фильтрации придётся конструировать filename в ручную. Плюс у в разных ядрах ещё и имена модулей могут различаться.

Сейчас мы вообще не смотрим на загруженные модули.

С builtin есть другая проблема. Наличие модуля такого модуля определяется не по ядру, а по файлу modules.builtin.modinfo. В этот сейчас файл не всё попадает. Мне как-то Глеб рассказывал, что кое-что пролетает мимо. Я всё никак не собирусь попробовать исправить.

Но допустим я получил список загруженных и buildin модулей, какие модули модули фильтровать таким образом ?
Comment 16 Антон Мидюков 2025-04-06 12:41:54 MSK
(Ответ для Alexey Gladkov на комментарий #15)
> (In reply to Антон Мидюков from comment #14)
> > Да. Но с учётом того, что у текущего они могут быть built-in, а у целевого в
> > виде модулей.
> 
> У builtin модулей нет filename. У них есть только file (которого нет у
> загружаемых модулей). Их не получится просто grep'ать. Для фильтрации
> придётся конструировать filename в ручную. Плюс у в разных ядрах ещё и имена
> модулей могут различаться.
> 
> Сейчас мы вообще не смотрим на загруженные модули.
> 
> С builtin есть другая проблема. Наличие модуля такого модуля определяется не
> по ядру, а по файлу modules.builtin.modinfo. В этот сейчас файл не всё
> попадает. Мне как-то Глеб рассказывал, что кое-что пролетает мимо. Я всё
> никак не собирусь попробовать исправить.
> 
> Но допустим я получил список загруженных и buildin модулей, какие модули
> модули фильтровать таким образом ?

Раз это столь сложно, то builtin в расчёт не стоит брать.
Comment 17 Alexey Gladkov 2025-04-06 16:05:36 MSK
Я сделал вот такой набросок:

https://github.com/osboot/make-initrd/commit/c89c2ae458f14efa1ca33ccd8539ea67b13b05aa

такое подойдёт ?
Comment 18 Alexey Gladkov 2025-04-06 18:05:17 MSK
Есть ещё одна мысль. Добавить udev правило для загрузки phy_rockchip_samsung_hdptx на такой плате.

Тут обнаружилась бага в make-initrd, который не смотрит на `kmod load foo`. Но когда это будет исправлено, то можно будет пользоваться udev rules.
Comment 19 Alexey Gladkov 2025-04-06 18:39:59 MSK
(In reply to Alexey Gladkov from comment #18)
> Есть ещё одна мысль. Добавить udev правило для загрузки
> phy_rockchip_samsung_hdptx на такой плате.

Туплю. Нельзя этим пользоваться. Но бага с поиском модулей всё равно есть.
Comment 20 Антон Мидюков 2025-04-06 19:11:16 MSK
(Ответ для Alexey Gladkov на комментарий #17)
> Я сделал вот такой набросок:
> 
> https://github.com/osboot/make-initrd/commit/
> c89c2ae458f14efa1ca33ccd8539ea67b13b05aa
> 
> такое подойдёт ?

Не работает, потому что условие не выполняется:

[ -s "/lib/modules/$cur_kver/modules.builtin.modinfo" ] ||
		return 0

Поменял на -f и заработало.

Вполне подойдёт.
Comment 21 Антон Мидюков 2025-04-28 10:53:52 MSK
Было исправлено в make-initrd 2.52.0-alt1
Comment 22 Alexey Gladkov 2025-06-21 10:42:31 MSK
Created attachment 18865 [details]
device-tree-modules v1

Антон, я не смог найти в сизифе ядро с phy-rockchip-samsung-hdptx. Ты не мог бы попробовать проверить вот этот скрипт и посмотреть находится ли модуль ?

Я чуть-чуть погрузился в генераторы зависимостей в ядре и подумал, что можно сделать второй подход к этой проблеме.
Comment 23 Антон Мидюков 2025-06-21 12:01:04 MSK
(Ответ для Alexey Gladkov на комментарий #22)
> Создано вложение 18865 [details] [подробности]
> device-tree-modules v1
> 
> Антон, я не смог найти в сизифе ядро с phy-rockchip-samsung-hdptx. Ты не мог
> бы попробовать проверить вот этот скрипт и посмотреть находится ли модуль ?
> 
> Я чуть-чуть погрузился в генераторы зависимостей в ядре и подумал, что можно
> сделать второй подход к этой проблеме.

Только aarch64. Это ядра, начиная с 6.14:
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.ko.zst

Скрипт ничего не выдавал, пока не убрал /proc/device-tree из строки:
for dir in /proc/device-tree /sys/firmware/devicetree/base ${DEVICE_TREE_DIR-}; do

Тогда выдал:
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/input/keyboard/adc-keys.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/iio/industrialio.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/uio/uio_pdrv_genirq.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/uio/uio.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/panthor/panthor.ko.zst
/lib/firmware/arm/mali/arch10.8/mali_csffw.bin.xz
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/scheduler/gpu-sched.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/drm_gpuvm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/drm_exec.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/codecs/snd-soc-es8328-i2c.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/codecs/snd-soc-es8328.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/snd-soc-core.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/core/snd-pcm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/core/snd.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soundcore.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/core/snd-timer.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/core/snd-pcm-dmaengine.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/ac97_bus.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/core/snd-compress.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/codecs/snd-soc-es8328-spi.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/typec/tcpm/fusb302.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/typec/tcpm/tcpm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/typec/typec.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/roles/roles.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/host/ehci-platform.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/host/ehci-hcd.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/host/ohci-platform.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/host/ohci-hcd.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/bridge/display-connector.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mtd/spi-nor/spi-nor.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mtd/mtd.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/leds/leds-pwm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/rockchip/rockchipdrm.ko.zst
/lib/firmware/rockchip/dptx.bin.xz
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/display/drm_display_helper.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/cec/core/cec.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/rc-core.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/bridge/analogix/analogix_dp.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/gpu/drm/drm_dma_helper.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/rockchip/snd-soc-rockchip-i2s.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/dw_mmc-rockchip.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/dw_mmc-pltfm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/dw_mmc.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/core/mmc_core.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/platform/rockchip/rga/rockchip-rga.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/v4l2-core/v4l2-mem2mem.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/videobuf2/videobuf2-common.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/mc/mc.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/videobuf2/videobuf2-v4l2.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/videodev.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/videobuf2/videobuf2-dma-sg.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/videobuf2/videobuf2-memops.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/pwm/pwm-rockchip.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/rockchip/snd-soc-rockchip-spdif.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/platform/verisilicon/hantro-vpu.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/v4l2-core/v4l2-h264.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/v4l2-core/v4l2-jpeg.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media-core/videobuf2/videobuf2-dma-contig.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/media/v4l2-core/v4l2-vp9.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/devfreq/event/rockchip-dfi.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/sdhci-of-dwcmshc.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/sdhci-pltfm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/sdhci.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/mmc/host/cqhci.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/net/pcs/pcs_xpcs.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/net/phy/phylink.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/rockchip/snd-soc-rockchip-i2s-tdm.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/phy/rockchip/phy-rockchip-naneng-combphy.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/nvmem/nvmem-rockchip-otp.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/char/hw_random/rockchip-rng.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/char/hw_random/rng-core.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/iio/adc/rockchip_saradc.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/iio/buffer/industrialio-triggered-buffer.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/iio/buffer/kfifo_buf.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/thermal/rockchip_thermal.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/phy/rockchip/phy-rockchip-inno-usb2.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/phy/rockchip/phy-rockchip-usbdp.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/regulator/fan53555.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/spi/spi-rockchip-sfc.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/generic/snd-soc-simple-card.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/sound/soc/generic/snd-soc-simple-card-utils.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/dwc3/dwc3.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/usb/gadget/udc/udc-core.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/ata/ahci_dwc.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/ata/libahci_platform.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/ata/libahci.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/ata/libata.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/scsi/scsi_mod.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/scsi/scsi_common.ko.zst
/lib/modules/6.15.3-6.15-alt1/kernel/drivers/watchdog/dw_wdt.ko.zst

Но тут явно лишние каталоги. Как минимум, sound, net. Загрузка с usb-флешки, так что излишни ata и mmc.
Comment 24 Alexey Gladkov 2025-06-21 13:17:09 MSK
Да, скрипт я не полностью продумал. Это скорее набросок для проверки идеи. Насколько я вижу он в принципе работает и по device tree можно получить список модулей. Сейчас этот список модулей по всему дереву. Теперь его можно уменьшать разными способами.
Comment 25 Alexey Gladkov 2025-06-21 18:33:08 MSK
Я думаю, что вместо guess/loaded-modules можно использовать вот такую фичу:

https://github.com/osboot/make-initrd/commit/0842264fe3b76d00765dbb591d4af1bfeec54e8b

Плюс подхода в том, что используется device tree и sysfs, а не загруженные модули.

Антон, ты не мог бы попробовать ?
Comment 26 Антон Мидюков 2025-06-21 19:54:55 MSK
(Ответ для Alexey Gladkov на комментарий #25)
> Я думаю, что вместо guess/loaded-modules можно использовать вот такую фичу:
> 
> https://github.com/osboot/make-initrd/commit/
> 0842264fe3b76d00765dbb591d4af1bfeec54e8b
> 
> Плюс подхода в том, что используется device tree и sysfs, а не загруженные
> модули.
> 
> Антон, ты не мог бы попробовать ?

Проверил. Работает:
Module "guess-device-tree" propose opt-modules:
cqhci dw_mmc dw_mmc-pltfm dw_mmc-rockchip fan53555
mmc_core nvmem-rockchip-otp phy-rockchip-inno-usb2
phy-rockchip-naneng-combphy phy-rockchip-samsung-hdptx
phy-rockchip-usbdp sdhci sdhci-of-dwcmshc sdhci-pltfm
Comment 27 Alexey Gladkov 2025-06-21 20:16:06 MSK
(In reply to Антон Мидюков from comment #26)
> > Антон, ты не мог бы попробовать ?
> 
> Проверил. Работает:

Спасибо.

Значит loaded-modules можно удалить.