【问题标题】:Linux Kernel Compilation speed up commandLinux内核编译加速命令
【发布时间】:2016-05-01 21:10:00
【问题描述】:

我在 i5(第二代)机器(双启动窗口和 Linux)上使用 Linux 3.18.25。我正在对内核模块进行一些更改以了解内核代码。问题是,每次我使用 ma​​ke 命令编译我的代码大约需要 1 小时 30 分钟,即使我使用 ma​​ke -j 4 命令也需要几乎相同的时间.我应该怎么做才能更快地编译内核代码?除了使用 make 或 make -j 4 命令之外,还有其他方法可以编译内核吗?

【问题讨论】:

    标签: linux-kernel


    【解决方案1】:

    这完全取决于您使用的机器,为了让 j4 工作,您至少需要 4 个内核。否则工作只会互相等待(这看起来与您描述的完全一样)。尝试在多核机器上编译(我知道这不是很有帮助,但从我的编译内核的经验来看,你无能为力)。

    编辑: as it turns out 到目前为止,我过着非常受保护的生活。内核编译通常需要 1 到 2 小时 - 正是您所看到的。

    但是: 还有很多事情可以做,and they are all listed here

    祝你好运

    【讨论】:

    • 我正在使用 i5(第二代)机器。
    • 很奇怪,内核在像你这样的处理器上编译需要很长时间,你检查过多核计算是否可以正常工作吗?
    【解决方案2】:

    好吧,我不是专家,但根据我的经验:

    • 设置 -J 参数与您的处理器相同,如果您有 8 个,则设置它
      8、可以从'cat /proc/cpuinfo'查看
    • 如果它的虚拟机确保您已启用超级并且
      虚拟机正在使用多个物理 CPU 核心
    • 不要使用工具链并尝试在同一目标编译
      架构(即如果它的 amd64 则以 amd 64 位编译
      机器)

    **编辑: (来自 Andy 评论的更新)检查 ccache 及其在内核编译中的使用方式:http://linuxdeveloper.blogspot.de/2012/05/using-ccache-to-speed-up-kernel.html

    附加说明:还要确保你足够挤压你的 CPU https://askubuntu.com/questions/523640/how-i-can-disable-cpu-frequency-scaling-and-set-the-system-to-performance

    【讨论】:

    • 查看我的答案的编辑。所有这些技术都有一个相似之处,还有更多:)
    • @daTokenizer 是的:) 看来我是在正确的轨道上
    • 我在双启动上使用 Linux。您能否向我解释一下在同一目标架构下编译是什么意思?
    • @HamidAli 假设你有 2 台机器,一台 ARM 32 位 cpu(即 nvidia jetson tk1 或 raspberry)和一台 amd 64 位。如果你想为 ARM 创建内核,并且如果你想在 amd 64 位机器上构建这个内核,这将需要更多时间,但是如果你在 ARM 机器上构建 ARM 内核,你的处理速度会更快,至少这是我所拥有的有经验的。谷歌“linux内核交叉编译”了解更多信息
    • 除了并行make之外,您还忘记了ccache选项。
    猜你喜欢
    • 2014-06-10
    • 2017-03-09
    • 1970-01-01
    • 2011-05-03
    • 2018-04-19
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多