编译Linux内核方法

时间:2022-10-25 12:28:31

1.下载内核

下载地址:www.kernel.org

例如下载的内核源码为: linux -3.10.12.tar.xz

2.解压

把linux-3.10-12.tar.xz解压到/usr/src目录

$sudo tar -xvf linux-3.10.12.tar.xz  -C /usr/src/

3.配置内核参数

首先需要安装ncurses,这时字符版配置工具多依赖的。

$sudo apt-get install  libncurses5  libncurses5-dev       (ubuntu下)
$sudo yum install ncurses ncurses-devel (centos下)

因为新版本配置工具会自动寻找当前系统环境的配置信息(比如/boot/config-xxx文件),所以接下来可以直接运行字符版配置工具:

$sudo make menuconfig

这里的配置比较复杂,可以搜索相关资料。也可以选择默认,直接save退出,配置工具会生成一个.config文件。

4.开始编译

$sudo make

编译可能会需要一两个小时,视计算机速度而定。如果视四核的,make后加"-j4"选项,让编译程序同时使用四核编译,会节省时间。

如果编译中途出现以外,然后想重新开始编译,需要执行下面命令清理一下编译现场,然后从新编译。

$sudo make mrproper

5.安装编译好的模块

$sudo make modules_install

上面的命令会把编译好的modules复制到/ib/modules/3.10.12/文件夹下。其中3.10.12是内核版本号,在/lib/modules/目录下,你还会看到其他版本的文件夹。

6.安装编译好的内核镜像文件

$ sudo make install

这个命令会把编译文件夹里面的 “arc/x86/boot/bzimage”文件复制到"/boot",同时会复制config 和Ssytem.map文件,最终会在“/boot”中多处如下4个文件:

config-3.10.12

System.map-3.10.12

vimlinuz-3.10.12

initrd.img-3.10.12

7.修改grub启动菜单,增加新内核的启动选项

$sudo update-grub2  (ubuntu下)
$sudo grub2-mkconfig (fedora下)

8.重新启动

$sudo reboot
然后就从新编译的内核启动了~


转自:http://archboy.org/2011/08/19/simple-compile-linux-3-0-kernel/ (自己做了一些修改)