1,到网站上下载2.6.x版本的内核源码(我用的是2.6.22版本),2.6版本的内核下载地址:
2,将下载到的源码解压到/home/username目录下
3,进入源码目录/home/username/linux-2.6.22
4,执行命令make mrproper以保证没有不正确的.o文件以及不正确的文件依赖(初次编译不需要)
5,执行内核配置命令make config(命令行) | make menuconfig(窗口) | make oldconfig(已存在的配置文件) | make gconfig(gtk+窗口)| make defconfig(默认)| make xconfig(图形)等
6,执行make 命令编译新内核
7,复制arch/i386/boot/bzImage到/boot目录下,命名为vmlinuz-2.6.22
8,修改grub的配置文件/boot/grub/grub.conf
9,执行命令make modules_install,安装内核模块
10,执行命令make install,主要完成将vmlinux,System.map文件复制到/boot文件夹下,以及img文件的生成和grub.conf的修改。
与编译linux2.4.x及老版本内核的区别:
1,不需要将内核源码解压缩到/usr/src下
2,不需要删除/usr/include下的asm,linux,scsi目录重新建立到源码下的相关链接
3,不需要执行make dep命令
4,不需要执行make clean命令
5,不需要执行make zInmage | make bzImage命令
6,不需要执行make modules命令
其中5~7步都由make 命令自动完成
中间出现的问题:
1,在make之前如果按照老版本的方法即建立一些不必要的链接,则可能导致make menuconf中出现找不到文件的错误
2,不能正确编译initramfs,如果选择支持则不能编译成功
因为每次编译的时候需求不一样,所以出现的错误也不一样,肯定还会有其他的一些错误,发现时一定给大家补上。