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

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

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

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

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

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

答案1

将我的评论编译为答案:

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

    inotifywait -m -r -e open --format '%f' /kernel_sources/directory/in_use/ -o /home/user/kernel_build.log
    
  2. 在其他 shell 上执行make

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

相关内容