Build a kernel

这两天没事又继续折腾内核编译,上次是从 SRPM 编译出 RPM 然后安装的,似乎比较简单,这次则直接从源代码包编译。

首先从 kernel.org 下载一个源代码包 linux-3.3.8.tar.bz2;

解压缩后,得到源代码目录 linux-3.3.8;

将 Fedora SRPM 中的 patch 文件复制到 linux-3.3.8 目录下,打上这些补丁;

配置 .config,这次图省事,就把 Fedora 的 .config 拿来用了;

之后就可以 make 了,make 会将 vmlinuz 和 kernel module 都编译出来,如果中间没有任何错误,就会一直进行下去,直到完成。

笔记本散热不好,N 次由于过热而自动关机,编译过程就被停止了。重启后,再继续 make 有的时候会出现 unrecognized ELF 错误,而且对于每次编译,这个错误似乎是随机的,查了半天,根据这个资料,由于编译意外中止,导致 ccache 的缓存数据出现错误,用 ccache –clear 一下,就可以继续编译了。

编译完成后,提升到 root 用户,执行 make install_modules make modules_install 安装内核模块,make install 安装内核;

最后根据需要,自己去改一下 grub.cfg 吧。

终于将 Fedora 17 跑在新编译的 3.3.8 内核上了

如果想让内核版本更突出个人的风格,可以修改源代码根目录的 Makefile,其中有

EXTRAVERSION =

默认没有值,这里可以填写任意的字符串,比如 .sunjw,那么编译出来的就是 3.3.8.sunjw。

加入对话

2条评论

  1. 应该是make modules_install,不是install_modules。

    老的.config拿过来后,可以先执行一下make oldconfig,这样可以有机会把新版kernel中新增加的配置项自己过一遍,看看有没有要改的。

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据