首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加快Linux内核的编译速度?

问如何加快Linux内核的编译速度?
EN

Stack Overflow用户
提问于 2014-04-24 20:31:39
回答 10查看 49.6K关注 0票数 33

我有8gb内存的核心i5。我的机器上安装了VMware工作站10.0.1。我有fedora 20桌面版安装在VMware作为客户操作系统。

我正在编写Linux内核源代码v3.14.1。我正在为Linux内核开发一个I/O调度程序。每次对代码进行任何修改之后,编译和安装整个内核代码就需要大约1小时30分钟的时间来查看更改。

编译和安装命令: make menuconfig、make、make modules、make modules_install、make install

所以,我的质询是否可以将1小时30分钟缩短为10至15分钟?

EN

回答 10

Stack Overflow用户

发布于 2014-04-24 21:07:03

不要对源所做的每一个更改都执行make menuconfig,因为它将触发对所有内容的完整编译,不管您的更改多么琐碎。只有当内核的配置选项发生变化时,才需要这样做,而这种情况应该在开发过程中发生。

只要做:

代码语言:javascript
复制
make

或者如果您更喜欢并行编译:

代码语言:javascript
复制
make -j4

或者任何你想要的并发任务。

当然,部署最近构建的二进制文件可能需要make install等。

另一个诀窍是将内核配置到测试所需的最低限度。我发现,对于许多任务,UML编译(用户模式Linux)是最快的。首先,您可能会发现有用的make localmodconfig而不是make menuconfig。

票数 27
EN

Stack Overflow用户

发布于 2014-04-24 20:35:15

  1. 使用make并行生成和-j选项
  2. 只为目标体系结构编译,否则make将为每个列出的体系结构构建内核。

指用于(如)代替跑步的:

代码语言:javascript
复制
make

跑:

代码语言:javascript
复制
make ARCH=<your architecture> -jN

其中N是机器上核心的no (cat /proc/cpuinfo列出了核心的no )。例如,对于i386目标和带有4 cores的主机(cat /proc/cpuinfo的输出):

代码语言:javascript
复制
make ARCH=i386 -j4

类似地,您可以使用modules标志运行其他make ( modules_install、install)。

注意: make检查修改过的文件,只编译那些修改过的文件,所以只有初始构建需要时间,后续构建将更快。

票数 11
EN

Stack Overflow用户

发布于 2016-03-24 11:49:18

make -j将使用所有可用的CPU。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23279178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档