linux内核编译

环境介绍

发行版为Debian 6.0,内核版本为2.6.32-5-686。基本开发环境已具备。

要编译的内核版本为4.3。

内核源码

http://www.kernel.org网站下载内核源码linux-4.3.tar.xz,并解压:

xz -dc linux-4.3.tar.xz | tar xvf -

主要参考目录中的README文档说明。

内核编译

为了使编译生成的内容与源码放到不同目录,需要使用O(字母“欧”)参数。

假设内核原码位置为:/home/migney/kernel/linux-4.3;编译生成的内容放到:/home/migney/kernel/build-4.3。

1、内核配置

如果之前编译过,需要先将之前内容清空,然后配置内核:

mkdir /home/migney/kernel/build-4.3
cd /home/migney/kernel/linux-4.3
# 清除之前编译生成的内容
make mrproper
# 内核配置
make O=/home/migney/kernel/build-4.3 menuconfig

在打开的界面进行相应的配置,保存退出。这一步会生成.config文件。

2、编译

make O=/home/migney/kernel/build-4.3

这会生成各modules、内核镜像等等内容。

3、安装模块

make O=/home/migney/kernel/build-4.3 modules_install

会将各模块(module)安装到/lib/modules/4.3.0目录下。

module就是内核配置时选“M”的,可以在运行时动态加载(insmod)、缺载(rmmod)。

4、安装内核

make O=/home/migney/kernel/build-4.3 install

会在/boot目录生成vmlinuz-4.3.0、config-4.3.0、System.map-4.3.0等文件。

其中,vmlinuz-4.3.0就是编译生成的文件/home/migney/kernel/build-4.3/arch/x86/boot/bzImage,config-4.3.0就是文件/home/migney/kernel/build-4.3/.config,System.map-4.3.0就是文件/home/migney/kernel/build-4.3/System.map,只是换了位置,改了名字而已。

5、生成initrd镜像

mkinitramfs -o /boot/initrd.img-4.3.0 4.3.0

生成/boot/initrd.img-4.3.0文件。

6、更新grub配置文件

update-grub

扫描/boot目录,并更新/boot/grub/grub.cfg文件。

7、重启

重启系统,在启动菜单选择新内核即可,使用如下命令确认一下:

uname -r

 

posted @ 2015-11-18 20:44  米格泥  阅读(165)  评论(0)    收藏  举报