标签: linux kernel

  • 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。

  • Custom Kernel

    纪念一下,在由于过热而当机 N 次,以及 M 次编译出错后,终于让 Fedora 17 跑在自己编译的内核上了,虽然实际上是 SRPM 编译的。