话说认识linux这么多年,平时工作内容比较杂,不是windows就是vxworks平台开发的切换,linux也是平时自学系统编程、内核驱动等理论,实践不多,把这次记录下来。
1、从网上www.kernel.org/pub/linux/kernel/v3.x 下载3.13.1内核
tar xvzf linux-3.13.1.tar.gz
2、解压
将下载后的linux-3.13.1.tar.gz通过U盘拷贝到系统目录,我的目录是/home/myjalo
3、编译内核
在下载的源码树根目录
$ make mrproper //该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以彰编译时
//未清理而残留的。对于第一次编译的代码来说,不存在这些残留文件,所以可以略过此步,但是
//如果该源代码以前被编译过,那么强烈建议执行此命令,否后面后面可能会出现未知的问题。
make menuconfig
//若无法使用menuconfig可能是ncurses包不全
//可以尝试apt-get update 更新源 然后apt-get install ncurses-*更新ncurses文件 //make menuconfig的设置可以直接读取当前设置然后保存当前设置
make -j4 //可以使用"-j<n>"参数,其中n=2*CPU个数,对于一般的单CPU系统,通常用是使用"-j2"参数,为编译过程分配两个任务,这样在进行磁盘
// IO操作时候,CPU就不会空闲了。
//高版本的内核中 执行make命令,实际上包含了make bzImage 、make module、mkinitramfs -o initrd.img-3.6.1 3.6.1,bzImage生成于源内核代码树
//的//arch/x86/boot/bzImage目录
make modules_install //安装内核模块。将所有编译得到的内核模块复制到/lib/modules/<dernel-version>/目录下面
make install //安装内核,复制生成的内核映映像到/boot目录。在内核编译完成后,源码树目录arch/i386/boot/中会生成一个bzImage文件,该文件被复制到/boot目录
//并命名为vmlinuz-3.13.1
//并生成initrd-<kernel-version>.img文件
//配置引导程序(GRUB或LILO)
重启进入新内核