linux - 在 Debian Wheezy 上编译内核

标签 linux compilation kernel debian

由于硬件问题,我想在 this 之后安装一个新内核指导。 但我对这一行有点困惑:

$ sudo time fakeroot make-kpkg -j4 --initrd kernel_image kernel_headers

我必须在其中设置处理器的核心数。 我有一个四核的英特尔 i7-720QM。但我猜是因为超线程(至少我认为我的处理器是超线程的)我必须使用选项 -j8 而不是 -j4。这样可以吗?

注意:在上面的指南的评论中,也问了这个问题,一个答案是使用-j4,另一个是使用-j8,所以我现在很困惑。

亲切的问候

最佳答案

make-kpkg-j4 参数(传递给底层 make)只设置并行编译过程的数量内核构建(并且对生成的内核包没有影响)。这无关紧要(因此 -j4-j8 在构建时间方面不会产生太大差异)。

我经常只传递 -j3 来让其他进程可以使用内核(例如,我在内核编译期间上网或阅读电子邮件)。

此外,make-kpkg 的某些部分本质上是串行的,无法并行化(某些 tar 正在运行....)

您甚至可以删除 -j4(与 -j1 相同):内核构建时间会增加,但您的机器在此期间会更加响应

PS:如果父目录 (..) 是用户可写的,则您不需要同时使用 sudofakeroot .它将包含生成的 .deb 包。顺便说一句,您可以编辑您的 /etc/kernel-package.conf

关于linux - 在 Debian Wheezy 上编译内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18481126/

相关文章:

c - ext3 linux内核实现

C++:编译时检查匹配的函数调用对?

c++ - 包括模板函数

linux - 自定义内核,访问eMMC内存

linux-kernel - 为什么内核向所有其他处理器发送一个 tlb 无效中断,当修改的页表对于正在运行的进程是个人的

linux - 程序 fork 时如何清除输出缓冲区?

linux - 在硬编码的 tar 命令中注入(inject)参数

linux - 如何使用该子目录的名称重命名所有子目录中的文件?

Java 枚举中的 NoSuchMethodError

ubuntu - 更新ubuntu内核的问题