| Summary: | modules-virtio feature не добавляет модули | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Vladislav Glinkin <glinkinvd> |
| Component: | make-initrd | Assignee: | Антон Мидюков <antohami> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P5 | CC: | antohami, glebfm, ldv, legion, placeholder, vt |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
|
Description
Vladislav Glinkin
2025-09-25 17:35:53 MSK
>Похоже, что symbol:^register_virtio_driver не работает так, как задумывалось.
Достаточно убрать "^":
symbol:register_virtio_driver
Похоже, что "^" начал обрабатываться как часть имени.
(Ответ для Vladislav Glinkin на комментарий #0) > Версия пакета: > make-initrd-2.55.1-alt2 > > Ядро: > 6.12.45-6.12-alt1 > > Шаги воспроизведения: > 1) # echo "FEATURES += modules-virtio" >> /etc/initrd.mk > 2) # make-initrd > > Фактический результат: > Фича добавляется, модули нет > > Ожидаемый результат: > При подключении фичи добавляются virtio модули > > rules.mk: > # SPDX-License-Identifier: GPL-3.0-or-later > VIRTIO_PATTERN_SET = symbol:^register_virtio_driver > MODULES_PATTERN_SETS += VIRTIO_PATTERN_SET > > Похоже, что symbol:^register_virtio_driver не работает так, как задумывалось. > Если поменять на name:.*virtio.* - то заработает. > > На сизифе не смотрел, но судя по gear репозиторию make-initrd - там тоже > должно воспроизвестись. (Ответ для Антон Мидюков на комментарий #1) > >Похоже, что symbol:^register_virtio_driver не работает так, как задумывалось. > > Достаточно убрать "^": > symbol:register_virtio_driver > > Похоже, что "^" начал обрабатываться как часть имени. Давай разбираться.
$ cat > /tmp/filter <<EOF
symbol register_virtio_driver
EOF
$ initrd-scanmod /tmp/filter |tail -1
/lib/modules/6.16.8/kernel/sound/virtio/virtio_snd.ko
$ nm /lib/modules/6.16.8/kernel/sound/virtio/virtio_snd.ko |grep register_virtio_driver
U __register_virtio_driver
U unregister_virtio_driver
Утилита в порядке, а вот символ поменялся.
https://github.com/torvalds/linux/commit/ffe6176b7f53c#diff-e094512af26ca56f76a1492fa10b4967aa93bfdcfede13490fd6b95753b8c1c8R363-L372
К сожалению анализ символов это хак. Хоть я и пытался использовать EXPORT_SYMBOL_GPL символы это не является гарантией, что символ не изменится.
Для исправления можно учитывать опциональный префикс, чтобы сохранить совместимость со старыми ядрами. Возможный фикс:
https://github.com/osboot/make-initrd/commit/d4cfad7ab30f0fa6e01614303972013539196a3e
(Ответ для Alexey Gladkov на комментарий #3) > Давай разбираться. > > $ cat > /tmp/filter <<EOF > symbol register_virtio_driver > EOF > > $ initrd-scanmod /tmp/filter |tail -1 > /lib/modules/6.16.8/kernel/sound/virtio/virtio_snd.ko > > $ nm /lib/modules/6.16.8/kernel/sound/virtio/virtio_snd.ko |grep > register_virtio_driver > U __register_virtio_driver > U unregister_virtio_driver > > Утилита в порядке, а вот символ поменялся. > > https://github.com/torvalds/linux/commit/ffe6176b7f53c#diff- > e094512af26ca56f76a1492fa10b4967aa93bfdcfede13490fd6b95753b8c1c8R363-L372 > > К сожалению анализ символов это хак. Хоть я и пытался использовать > EXPORT_SYMBOL_GPL символы это не является гарантией, что символ не изменится. > > Для исправления можно учитывать опциональный префикс, чтобы сохранить > совместимость со старыми ядрами. Возможный фикс: > > https://github.com/osboot/make-initrd/commit/ > d4cfad7ab30f0fa6e01614303972013539196a3e Проверил, работает. Спасибо! make-initrd-2.55.1-alt5 -> sisyphus: Fri Sep 26 2025 Anton Midyukov <antohami@altlinux> 2.55.1-alt5 - add upstream patch: + feature/modules-virtio: Fix symbol filter (Closes: 56149) |