Kernel

找出編譯核心時使用了哪些核心源文件

  • February 9, 2018

我正在為我的特定硬體編譯 Linux 核心,我只選擇我真正需要的驅動程序/選項。這與典型的分發核心形成鮮明對比,它們編譯幾乎所有內容,以與盡可能多的硬體配置兼容。

我想,對於我的核心,我只使用了總核心程式碼的 1%(數量級估計)。

有什麼方法可以找出我在建構核心時實際使用的核心源文件中的哪些文件?

這不是一個學術問題。假設我已經編譯了我的核心 3.18.1。現在出現了一個安全更新,並發布了 3.18.2。我在另一個問題中學習瞭如何查找哪些文件在版本之間發生了變化。如果我知道我正在使用的任何文件是否已更改,我會將我的核心重新編譯到新版本。另一方面,如果更改只影響我不使用的文件,我可以保留我目前的核心版本。

編譯我的評論作為答案:

  1. 在一個 shell 上執行以下命令。您可以製作它的 shell 腳本或使用該-d選項進行妖魔化。
inotifywait -m -r -e open --format '%f' /kernel_sources/directory/in_use/ -o /home/user/kernel_build.log
  1. 在其他 shell 上,執行make
  2. 日誌文件/home/user/kernel_build.log將包含在建構過程中已打開(讀取操作)的文件列表。

引用自:https://unix.stackexchange.com/questions/191050