Linux源码编译的步骤,其实很简单,主要是在配置哪些模块的功能开启方面需要熟悉下,下面来看看,编译Linux内核需要有哪些步骤:
1、需要去Linux官网上去下载一个内核版本的源码,
https://www.kernel.org/
实例使用的是如下版本:
linux-2.6.32.65.tar.xz
2、需要解压下载下来的压缩包,解压出来后会出现如下文件夹
xz linux-2.6.32.65.tar.xz
tar xvf linux-2.6.32.65.tar
linux-2.6.32.65
3、进入到linux-2.6.32.65文件目录中。运行如下命令:
make menuconfig
注:此命令是用来配置需要编译的功能项,linux内核提供了很多种配置的命令,本文只讲述使用图形界面来配置功能项的命令
运行命令后会出现图形化的配置界面,按照提示,配置自己需要的功能项即可
4、使用如下命令编译内核
make -j2 > /dev/null
注:-j2 -> 此选项是表示在编译的过程中,衍生出2个作业同时进行(当cpu在做耗时操作时,可以保证充分利用多核处理器的性能)16核处理器 可以衍生出32个作业同时进行,即-j32
> /dev/null -> 此选项是用来处理编译过程中的编译信息。如此配置的意思是将编译过程中的无用的信息重定向到无返回值的黑洞,错误信息会输出到控制台
以上几步结束,linux内核的编译也就结束了
下面是生成引导镜像的操作:
5、使用make modules_install 命令,既可在/boot/目录下生成如下引导文件:
initramfs-2.6.32.65.img
vmlinuz-2.6.32.65
System.map-2.6.32.65 -> 内存地址与函数的映射关系
6、修改Linux的引导文件 /etc/grub.conf
仿照模板修改。
注:解释下grup.conf文件中的选项的意思
default=X为默认启动的系统,0为排在第一个的系统,以此类推。
timeout=X为Grub菜单停留的时间,单位为秒
title XXX,XXX为标题,也就是你要引导的操作系统的名字,可以自己修改
root(hdX,Y)X和Y都代表一个数值,X是linux的根分区在哪个硬盘上。如你只有一个硬盘。那就是hd0。如果你的linux的一个发行版是安装在第
二个硬盘,这个X,就是1。Y是代表您所安装的linux是在哪个区。这个数值有点不同,不太好说清楚。举个例子来说。比如我把Mandrake安装到第
二块硬盘的第二个分区,也就是hdb5了。那他的root (hdX,Y),就应该写为root(hd1,4),也就是说Y=hdaZ或hdbZ中的Z减去1。
kernel (hdX,Y)/boot/vmlinuz root=/dev/hdaZ和initrd (hdX,Y)/boot/initrd.img就是要引导哪个硬盘分区的映像和initrd文件,一定要写正确XY的数值,不然无法引导系统
以上步骤结束后,重启电脑,在grub界面按下enter键。你就可以看到你添加的title引导项了。选择你的引导项,如果内核的功能编译没有问题的话,应该就会启动你的系统了。