一 内核的配置
二 内核的编译
1.编译内核:执行make bzImage命令(大概执行5分钟左右)
(1)如果想获取详细编译信息和执行命令make bzImage V=1
(2)编译好的内核位于arch/(cpu)/boot/目录下
2.编译内核模块:执行make modules来编译内核模块。
执行make modules_install来将编译好的内核模块(以*.ko、*.fw、*.bin、*.cis等结尾的文件),从内核源代码目录cp到/lib/modules/下,为打包做好准备。
3.制作init ramdisk(即打包编译好的内核模块代码)
(1) 执行命令mkinitrd initrd-$version $version。
注意:该命令initrd-$version是你给你要打包的版本命的名字,$version是你要打包的版本。
例:mkinitrd rd-2.6.39.1 2.6.39.1
执行命令cp arch/x86/boot/bzImage /boot/vmlinuz-$version
命令解释:arch/x86/boot/bzImage是bzImage文件的位置
/boot/vmlinuz-$version是复制到boot目录下并给该内核版本命名为vmlinuz-$version
2.将编译后的Linux内核模块(即打包后的文件initrd-$version)复制到/boot/目录下:
执行命令cp initrd-$ersion /boot/
3.修改/etc/grup.conf
执行命令vi /etc/grup.conf,将内核版本改为你所复制的版本。
4.执行reboot重启系统,重启时按下回车键,选择你所安装的内核版本,重启成功,安装完成。
说明:
(1)复制到/boot/的原因:因为Linux系统启动是会从boot下找这些文件。
(2)为什么更换内核后Linux文件系统没有变?
因为用户空间(文件系统)存储在硬盘(或者flash)中,而内核文件存储在内存中,所以更换内核,文件系统不会变。无论以前的内核,还是现在的内核,其访问的是同一个文件系统。
四 清理内核:
1.make clean :该命令只清理编译内核产生的*.o中间文件
1.装载所要参考的结果文件:执行命令make menuconfig ,选择装载那一项,退出然后选择yes保存。
(1)装载前的准备工作:首先将你要装载的参考的结果文件(.config)cp到含有make menuconfig(makefile)文件的目录下(即所下载Linux内核目录下)。(2)注意事项:
a.你的Linux系统必须已经安装了Ncurses然后才能执行make menuconfig命令,否则系统会报错。如何安装 Ncurses呢?挂载你安装的Linux镜像文件后,在Packages目录下可以找到RPM包,然后点击直接安装即可(我遇到这个问题是把Package下的每个Ncurses安装包都安装了,然后问题就解决了)。
b.PC平台的参考结果文件在/boot目录下ARM平台的参考结果文件在arch/arm/configs目录下
2.基于1中的结果执行make menuconfig命令进行小的调整,不需要的内核功能的代码。二 内核的编译
1.编译内核:执行make bzImage命令(大概执行5分钟左右)
(1)如果想获取详细编译信息和执行命令make bzImage V=1
(2)编译好的内核位于arch/(cpu)/boot/目录下
2.编译内核模块:执行make modules来编译内核模块。
执行make modules_install来将编译好的内核模块(以*.ko、*.fw、*.bin、*.cis等结尾的文件),从内核源代码目录cp到/lib/modules/下,为打包做好准备。
3.制作init ramdisk(即打包编译好的内核模块代码)
(1) 执行命令mkinitrd initrd-$version $version。
注意:该命令initrd-$version是你给你要打包的版本命的名字,$version是你要打包的版本。
例:mkinitrd rd-2.6.39.1 2.6.39.1
三.安装内核
1.将编译后的Linux内核镜像文件bzImage复制到 x86平台的/boot/目录下:执行命令cp arch/x86/boot/bzImage /boot/vmlinuz-$version
命令解释:arch/x86/boot/bzImage是bzImage文件的位置
/boot/vmlinuz-$version是复制到boot目录下并给该内核版本命名为vmlinuz-$version
2.将编译后的Linux内核模块(即打包后的文件initrd-$version)复制到/boot/目录下:
执行命令cp initrd-$ersion /boot/
3.修改/etc/grup.conf
执行命令vi /etc/grup.conf,将内核版本改为你所复制的版本。
4.执行reboot重启系统,重启时按下回车键,选择你所安装的内核版本,重启成功,安装完成。
说明:
(1)复制到/boot/的原因:因为Linux系统启动是会从boot下找这些文件。
(2)为什么更换内核后Linux文件系统没有变?
因为用户空间(文件系统)存储在硬盘(或者flash)中,而内核文件存储在内存中,所以更换内核,文件系统不会变。无论以前的内核,还是现在的内核,其访问的是同一个文件系统。
四 清理内核:
1.make clean :该命令只清理编译内核产生的*.o中间文件
2.make distclean:该命令可以清理配置内核产生的.config和编译内核产生的*.o文件。