找出编译内核时使用了哪些内核源文件

Tho*_*ler 4 compiling security source kernel linux-kernel

我正在为我的特定硬件编译 Linux 内核,我只选择了我真正需要的驱动程序/选项。这与典型的发行版内核形成对比,在典型发行版内核中,它们编译几乎所有内容,以与尽可能多的硬件配置兼容。

我想,对于我的内核,我只使用了总内核代码的 1%(数量级估计)。

有什么方法可以找出我在构建内核时实际使用了内核源代码中的哪些文件?

这不是学术问题。假设我已经编译了我的内核 3.18.1。现在出现了一个安全更新,并发布了 3.18.2。我在我的另一个问题中学到了如何找到哪些文件在不同版本之间发生了变化。如果我知道我正在使用的任何文件是否已更改,我会将我的内核重新编译为新版本。另一方面,如果更改只影响我不使用的文件,我可以保留当前的内核版本。

小智 5

编译我的评论作为答案:

  1. 在一个 shell 上运行以下命令。您可以制作它的 shell 脚本或使用该-d选项妖魔化它。

    inotifywait -m -r -e open --format '%f' /kernel_sources/directory/in_use/ -o /home/user/kernel_build.log
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在其他 shell 上,执行 make

  3. 日志文件/home/user/kernel_build.log将包含在构建过​​程中已打开(读取操作)的文件列表。