Bug 38698 - Сломано добавление опциональных модулей MODULES_TRY_ADD
Summary: Сломано добавление опциональных модулей MODULES_TRY_ADD
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 critical
Assignee: Alexey Gladkov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 33000
  Show dependency tree
 
Reported: 2020-07-10 16:10 MSK by Антон Мидюков
Modified: 2020-07-16 15:50 MSK (History)
5 users (show)

See Also:


Attachments
Получаемый initrd.mk в mkimage-profiles (164 bytes, text/x-makefile)
2020-07-11 17:44 MSK, Антон Мидюков
no flags Details
make-initrd -v в m-p (проблемный) (59.00 KB, text/plain)
2020-07-11 17:57 MSK, Антон Мидюков
no flags Details
make-initrd -v в m-p (нормальный) (58.66 KB, text/plain)
2020-07-11 18:41 MSK, Антон Мидюков
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2020-07-10 16:10:44 MSK
make-initrd -k $kversion MODULES_ADD=модуль -N AUTODETECT=

не добавляет модуль, пока не уберёшь AUTODETECT=.
Проблема есть в версии 2.8.1 и нет в версии 2.7.0
Comment 1 Alexey Gladkov 2020-07-10 17:47:58 MSK
Вы чего хотите добиться этим ?
Comment 2 Антон Мидюков 2020-07-10 17:51:19 MSK
(Ответ для Alexey Gladkov на комментарий #1)
> Вы чего хотите добиться этим ?

Мы таким образом собираем rootfs для одноплатников. Вчера стали собираться с initrd, в котором отсутствуют модули ядра.

Собираем такой командой:
make-initrd -N -k "$KVER" AUTODETECT= FEATURES+="$GLOBAL_VM_INITRDFEATURES"   MODULES_TRY_ADD+="$GLOBAL_VM_INITRDMODULES"
Comment 3 Alexey Gladkov 2020-07-10 18:21:28 MSK
Переменные MODULES_* это параметры фичи add-modules.

С одной стороны это регрессия, но с другой стороны add-modules это фича.
Вы выключили автоугадав и фичи не добавляются.

make-initrd -N -k "$KVER" \
  AUTODETECT= FEATURES="add-modules $GLOBAL_VM_INITRDFEATURES" \
  MODULES_TRY_ADD="$GLOBAL_VM_INITRDMODULES"

Я не уверен, что хочу возвращать старое поведение.
Comment 4 Alexey Gladkov 2020-07-10 18:22:41 MSK
Кстати, а в GLOBAL_VM_INITRDFEATURES у вас что ?
Comment 5 Антон Мидюков 2020-07-10 18:57:57 MSK
(Ответ для Alexey Gladkov на комментарий #3)
> Переменные MODULES_* это параметры фичи add-modules.
> 
> С одной стороны это регрессия, но с другой стороны add-modules это фича.
> Вы выключили автоугадав и фичи не добавляются.
> 
> make-initrd -N -k "$KVER" \
>   AUTODETECT= FEATURES="add-modules $GLOBAL_VM_INITRDFEATURES" \
>   MODULES_TRY_ADD="$GLOBAL_VM_INITRDMODULES"
> 
> Я не уверен, что хочу возвращать старое поведение.

Т.е. раньше эта фича добавлялась всегда?

Это ложный след тогда. Так как add-modules в $GLOBAL_VM_INITRDFEATURES есть:

http://git.altlinux.org/people/antohami/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=blob;f=features.in/kernel/config.mk;h=a8d2ce37ed29bc741549e137602bbdeb5f4fa891;hb=40895c45a5d0ce2d4e88950f33a4ddbe28d6e0c7#l47

Тогда проблема в том, что $GLOBAL_VM_INITRDFEATURES в последние несколько месяцев пишется в initrd.mk:
http://git.altlinux.org/people/antohami/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=blob;f=features.in/build-vm/image-scripts.d/17-kernel;h=83126c1e87f32f0e550d9e4e362b0a78782d4f9d;hb=40895c45a5d0ce2d4e88950f33a4ddbe28d6e0c7

Получается, в версии 2.8.1 при отключенном AUTODETECT из initrd.mk ничего не берётся?
Comment 6 Alexey Gladkov 2020-07-10 19:50:25 MSK
(Ответ для Антон Мидюков на комментарий #5)
> (Ответ для Alexey Gladkov на комментарий #3)
> > Переменные MODULES_* это параметры фичи add-modules.
> > 
> > С одной стороны это регрессия, но с другой стороны add-modules это фича.
> > Вы выключили автоугадав и фичи не добавляются.
> > 
> > make-initrd -N -k "$KVER" \
> >   AUTODETECT= FEATURES="add-modules $GLOBAL_VM_INITRDFEATURES" \
> >   MODULES_TRY_ADD="$GLOBAL_VM_INITRDMODULES"
> > 
> > Я не уверен, что хочу возвращать старое поведение.
> 
> Т.е. раньше эта фича добавлялась всегда?

Возможно, у вас она добавляется через какую-то другую фичу. Поэтому я испрашивал о содержимом GLOBAL_VM_INITRDFEATURES.

Я хочу разобраться является ли эта ситуация багой.

> Это ложный след тогда. Так как add-modules в $GLOBAL_VM_INITRDFEATURES есть:
> 
> http://git.altlinux.org/people/antohami/packages/mkimage-profiles.
> git?p=mkimage-profiles.git;a=blob;f=features.in/kernel/config.mk;
> h=a8d2ce37ed29bc741549e137602bbdeb5f4fa891;
> hb=40895c45a5d0ce2d4e88950f33a4ddbe28d6e0c7#l47

Ок. Это логично. Если выключен AUTODETECT, то add-modules нужно добавлять руками.

> Тогда проблема в том, что $GLOBAL_VM_INITRDFEATURES в последние несколько
> месяцев пишется в initrd.mk:
> http://git.altlinux.org/people/antohami/packages/mkimage-profiles.
> git?p=mkimage-profiles.git;a=blob;f=features.in/build-vm/image-scripts.d/17-
> kernel;h=83126c1e87f32f0e550d9e4e362b0a78782d4f9d;
> hb=40895c45a5d0ce2d4e88950f33a4ddbe28d6e0c7
> 
> Получается, в версии 2.8.1 при отключенном AUTODETECT из initrd.mk ничего не
> берётся?

Берётся. Дело не в этом.

Я пробую воспроизвести проблему, но не получается:

$ cat /etc/initrd.mk
FEATURES += add-modules

$ make-initrd -D -b /tmp MODULES_TRY_ADD+=b43 AUTODETECT=
[00:00:00] Config file: /etc/initrd.mk
[00:00:00] Creating initrd image ...
[00:00:02] Putting modules ...
[00:00:02] Generating module dependencies in image ...
[00:00:02] Used features: add-modules depmod-image
[00:00:02] Packed modules: b43 bcma cfg80211 cordic libarc4 mac80211 rfkill 
[00:00:02] Sorting sysvinit services ...
[00:00:03] Packing image to archive ...
[00:00:03] Installing image ...
[00:00:03] Unpacked size: 26M
[00:00:03] Image size: 13M
[00:00:03] Image is saved as /tmp/initrd-5.5.0-lks-wks-alt0.7.img

$ initrd-ls /tmp/initrd-5.5.0-lks-wks-alt0.7.img |grep -o b43\.ko
b43.ko
Comment 7 Alexey Gladkov 2020-07-11 16:09:26 MSK
Случайная мысль: не может ли повлиять окружение, которое внутри mkimage-profiles ?
Вы не вводили какие-то новые переменные ?
Comment 8 Alexey Gladkov 2020-07-11 17:29:14 MSK
Ещё один вопрос: Вы добавляете FEAUTURES в конец файла:

http://git.altlinux.org/people/antohami/packages/mkimage-profiles.git?p=mkimage-profiles.git;a=blob;f=features.in/build-vm/image-scripts.d/17-kernel;h=83126c1e87f32f0e550d9e4e362b0a78782d4f9d;hb=40895c45a5d0ce2d4e88950f33a4ddbe28d6e0c7#l24

Вы не могли бы показать полное содержимое получаемого /etc/initrd.mk ?
Comment 9 Антон Мидюков 2020-07-11 17:44:36 MSK
Created attachment 8863 [details]
Получаемый initrd.mk в mkimage-profiles
Comment 10 Антон Мидюков 2020-07-11 17:57:58 MSK
Created attachment 8864 [details]
make-initrd -v в m-p (проблемный)

На x86_64 проблема тоже ловится, попадает мало модулей:
/usr/sbin/initrd-ls initrd-5.4.51-std-def-alt1.img |grep /lib/modules
1 drwxr-xr-x 2 0 0       0 Jul 11 21:40:26 2020 ./lib/modules
1 drwxr-xr-x 2 0 0       0 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1
1 -rw-r--r-- 1 0 0       0 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.devname
1 -rw-r--r-- 1 0 0   17550 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.builtin.alias.bin
1 -rw-r--r-- 1 0 0    7370 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.builtin.bin
1 -rw-r--r-- 1 0 0   18135 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.symbols.bin
1 -rw-r--r-- 1 0 0   14756 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.symbols
1 -rw-r--r-- 1 0 0      55 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.softdep
1 -rw-r--r-- 1 0 0   16794 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.alias.bin
1 -rw-r--r-- 1 0 0   19409 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.alias
1 -rw-r--r-- 1 0 0    1008 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.dep.bin
1 -rw-r--r-- 1 0 0     697 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/modules.dep
1 drwxr-xr-x 2 0 0       0 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/kernel
1 drwxr-xr-x 2 0 0       0 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers
1 drwxr-xr-x 2 0 0       0 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/scsi
1 -rw------- 1 0 0  491216 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/scsi/scsi_mod.ko
1 drwxr-xr-x 2 0 0       0 Jul 11 21:40:26 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata
1 -rw------- 1 0 0  539864 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata/libata.ko
1 -rw------- 1 0 0   30352 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata/libahci_platform.ko
1 -rw------- 1 0 0   79496 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata/libahci.ko
1 -rw------- 1 0 0   58624 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata/ata_piix.ko
1 -rw------- 1 0 0   12736 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata/ahci_platform.ko
1 -rw------- 1 0 0   81584 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/kernel/drivers/ata/ahci.ko
1 -rw------- 1 0 0   40948 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/modules.builtin.modinfo
1 -rw------- 1 0 0  187635 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/modules.order
1 -rw------- 1 0 0    5967 Jul 10 02:20:44 2020 ./lib/modules/5.4.51-std-def-alt1/modules.builtin

Это полученный при сборке в m-p initrd.
Comment 11 Антон Мидюков 2020-07-11 17:59:28 MSK
(Ответ для Alexey Gladkov на комментарий #7)
> Случайная мысль: не может ли повлиять окружение, которое внутри
> mkimage-profiles ?
> Вы не вводили какие-то новые переменные ?

Нет. Я пробовал собираться из архива за прошлую неделю с этим же профилем, собираются нормальными.
Comment 12 Антон Мидюков 2020-07-11 18:41:31 MSK
Created attachment 8865 [details]
make-initrd -v в m-p (нормальный)

А вот если добавить только FEATURES+=add-modules, то собирается нормальный.
Если добавить  FEATURES+="$GLOBAL_VM_INITRDFEATURES", то получается минималистичный initrd.img.
Comment 13 Антон Мидюков 2020-07-11 19:45:40 MSK
(Ответ для Антон Мидюков на комментарий #12)
> Создано вложение 8865 [details] [подробности]
> make-initrd -v в m-p (нормальный)
> 
> А вот если добавить только FEATURES+=add-modules, то собирается нормальный.
> Если добавить  FEATURES+="$GLOBAL_VM_INITRDFEATURES", то получается
> минималистичный initrd.img.

Нет, я не прав. Он минималистичный, потому что фича compress не отработала.
Итого получается, что команда:

make-initrd -N -v -k 5.4.51-std-def-alt1 AUTODETECT= MODULES_TRY_ADD+='ext4 ahci sd_mod nvme nvme-core ahci_platform ehci-pci ohci-pci uhci-hcd xhci-pci uas sdhci-acpi sdhci-pci sdhci-pltfm xhci-plat-hcd dwc2 mmc_block usbhid evdev ata_piix virtio-scsi virtio-blk virtio-rng virtio_net virtio-mmio virtio_pci virtio_console virtio_input' FEATURES+='add-modules qemu cleanup compress'

не добавляет большинство модулей из этого списка, хотя они есть.
На моём ноутбуке проблема воспроизводится.
Comment 14 Антон Мидюков 2020-07-11 19:52:13 MSK
После того, как я убрал недоступный модуль dwc2 для x86_64, initrd собрался нормальный. Т.е. MODULES_TRY_ADD перестал справляться со своей задачей (как я её понимаю), добавлять все доступные модули. Сейчас, видимо, добавление модулей прекращается после спотыкания об несуществующий модуль.
Comment 15 Repository Robot 2020-07-13 15:11:03 MSK
make-initrd-2.8.2-alt1 -> sisyphus:

 Mon Jul 13 2020 Alexey Gladkov <legion@altlinux.ru> 2.8.2-alt1
 - Feature changes:
   + add-modules: Put MODULES_PRELOAD into the modules-preudev (thx Gleb F-Malinovskiy)
   + add-modules: Fix kmodule.deps.d execution (ALT#38696)
 - Utilities:
   + bug-report: Fix device list
   + depinfo: Do not stop on error (ALT#38698)
   + depinfo: Add option to read names from the file
 - Misc:
   + Change the priority of directories when copying to an image
Comment 16 Антон Мидюков 2020-07-16 15:50:43 MSK
Подтверждаю, что исправлено. Спасибо!