linux内核编译

*爱你&永不变心* 提交于 2019-12-21 11:02:42

环境介绍

发行版为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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!