
Ich kompiliere einen Kernel plattformübergreifend und verwende ein Out-of-Tree-Kernelmodul, das von einem Gerätehersteller bereitgestellt wird. Ursprünglich wurde der Kernel erstellt, dann das Modul, das einwandfrei funktionierte.
Jetzt versuche ich, initramfs im Kernel zu aktivieren. Das Kernelmodul muss in das initramfs-Image aufgenommen werden. Dies führt zu einer zirkulären Abhängigkeit:
- Der Kernel ist abhängig von der Initramfs-Image-Datei (eingestellt in
CONFIG_INITRAMFS_SOURCE
). - Die Initramfs-Image-Datei hängt vom Out-of-Tree-Kernelmodul ab
- Das Out-of-Tree-Kernelmodul hängt vom zu erstellenden Kernel ab.
Der beste Workaround, den ich habe, ist:
- Erstellen Sie eine leere Datei für das Initramfs-Rootfs-Image
- Erstellen des Kernels
- Erstellen des Moduls
- Erstellen Sie das echte Initramfs-Image
- Den Kernel neu erstellen
Dies unterbricht jedoch die make
Abhängigkeitsverfolgung und führt während des normalen Entwicklungszyklus zu vielen unnötigen Neuaufbauten. Gibt es ein Kernel-Build-Ziel, das die von einem Out-of-Tree-Modul benötigten Tools erstellt, ohne tatsächlich den gesamten Kernel zu erstellen?