使用 initramfs 從樹狀模組和核心建置時如何避免循環依賴?

使用 initramfs 從樹狀模組和核心建置時如何避免循環依賴?

我正在交叉編譯內核,並擁有設備供應商提供的樹外內核模組。最初構建了內核,然後模組運行良好。

現在我正在嘗試在核心中啟用 initramfs。核心模組需要包含在 initramfs 映像中。這會導致循環依賴:

  • 核心依賴initramfs鏡像檔案(在 中設定CONFIG_INITRAMFS_SOURCE
  • initramfs 映像檔依賴樹外核心模組
  • 樹外內核模組取決於正在建構的內核

我最好的解決方法是:

  1. 為 initramfs rootfs 映像建立一個空文件
  2. 建構核心
  3. 建構模組
  4. 建立真正的 initramfs 映像
  5. 重新建構內核

然而,這會破壞make依賴項跟踪,並在正常開發週期中導致大量不必要的重建。是否有一個核心建置目標可以建構樹外模組所需的工具,而無需實際建構整個核心?

相關內容