linux内核编译学习(ubuntu)
在最近的工作中需要对linux内核进行编译,我的linux操作系统是ubuntu10.10,我没有对内核进行配置,只是全部编译,在网上找了些资料,然后在自己的电脑上进行实验,比较复杂的不太会,下面是我编译内核然后加载的过程,具体步骤如下:
与编译有关的命令有如下几个:
#make dep
#make clean
#make zImage
#make bzImage
#make modules
#make modules_install
#make install
第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;
第二个命令make clean清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
第三个命令make zImage和第四个命令make bzImage实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核
对#make bzImage 和#make modules 可以合并为一条指令,即make all
进行了上面的步骤后我们接下来我们进行如下操作:
mkinitramfs 2.6.36.2 -o /boot/initrd.img-2.6.36.2
如果不进行这一步可能不能成功引导kernel,原因是:在grub引导kernel的时候无法识别kernel所在的位置,即没有驱动程序来加载硬盘的分区,而initrd恰好是干这件事的。
update-grub #更新grub,让我们的kernel能被grub识别并添加到启动菜单中去
在我的电脑上显示如下:
