Как избежать циклической зависимости при сборке модуля и ядра из дерева с помощью initramfs?

Как избежать циклической зависимости при сборке модуля и ядра из дерева с помощью initramfs?

Я кросс-компилирую ядро ​​и имею внедеревные модули ядра, предоставленные поставщиком устройства. Изначально было собрано ядро, затем модуль, который работал нормально.

Теперь я пытаюсь включить initramfs в ядре. Модуль ядра должен быть включен в образ initramfs. Это приводит к циклической зависимости:

  • Ядро зависит от файла образа initramfs (установлен в CONFIG_INITRAMFS_SOURCE)
  • Файл образа initramfs зависит от модуля ядра вне дерева
  • Модуль ядра вне дерева зависит от собираемого ядра

Лучший выход из этой ситуации, который я знаю, это:

  1. создайте пустой файл для образа initramfs rootfs
  2. Собрать ядро
  3. Построить модуль
  4. Соберите настоящий образ initramfs
  5. Пересобрать ядро

Однако это нарушает makeотслеживание зависимостей и приводит к множеству ненужных пересборок в ходе обычного цикла разработки. Существует ли цель сборки ядра, которая будет собирать инструменты, необходимые для модуля из дерева, без фактической сборки всего ядра?

Связанный контент