首先请区别一下Linux内核的编译和内核模块的编译。
顶层Makefile文件(在源代码根目录下的Makefile文件)负责产生内核映像vmlinuz和模块。顶层Makefile根据内核配置,递归编译内核代码下所有子目录里的文件,最终建立内核文件映像。每个子目录下有个Makefile文件,根据上级目录的makefile配置编译指定的代码文件。这些Makefile使用.config文件配置的数据构建各种文件列表,最终生成目标文件或者内嵌模块。
编译配置好之后,进入Linux源文件所在的文件夹
使用make bzImage命令完成内核编译,此时会生成vmlinuz文件
make modules编译内核需要的模块
make modules_install安装模块到/lib/modules目录
make install安装内核文件到/boot目录
安装过程会自动修改GRUB启动菜单
PC更换Linux内核版本
1.去www.kernel.org上下载linux-2.6.37.tar.bz2。解压。
2.建立符号链接
#ln -s /home/orisun/Download/linux-2.6.37 /usr/src/linux-2.6.37
3.内核编译配置
#cd /usr/src/linux-2.6.37
#make mrproper <--删除以前的.o文件,第一次运行其实这步可以省略
#make menuconfig
#make dep <--建立依赖关系,第一次运行其实这步可以省略
#make clean <--删除没用的文件
4.编译
#make bzImage <--编译内核
#make modules <--编译模块
#make modules_install <--安装模块
#make install <--建立initrd(加载LKM用的程序)
5.更改GRUB
#new-kernel-pkg –install –mkinitrd –depmod 2.6.37 <--写入grub.conf
6.重启,选择运行新的内核
#shutdown -r now
编译开发板的Linux内核