大部分程序员都研究内核模块编译,在当今社会Linux越来越成为主流,你是Linux系统的应用者么?本文为你详细介绍内核模块编译,为你在学习内核模块编译时起一定的作用。
1.进入新内核源代码目录
#cd /usr/src/kernels/linux-2.6.26.2
2.读取配置过程中生成配置文件,创建对应于配置的依赖关系树,从而决定哪些需要编译与哪些不需要编译
#make dep
3.完全删除上步留下来的文件,避免发生错误。(如果是新下载内核没有编译过,可以跳过)
#make clean
4.编译内核
#make bzImage
在上面的命令成功编译以后会在/usr/src/kernels/linux-2.6.26.2/arch/x86/boot/
目录下产生新内核的映像bzImage
5.编译可加载内核模块
#make modules
6.把生成的模块拷贝到需要的目录下
#make modules_install
7.生成模块间的依赖关系,这样在启动新内核以后,使用modprobe命令加载模块时候能够正确定模块。
#depmod
-a注意第5-7步,只有在进行内核配置时候选上了Enable loadable module support (CONFIG_MODULES)才是必要的。
经过以上的步骤终于生成了新的内核和模块,为了能够使用上新版内核,还要做以下工作。
- #cp /usr/src/kernels/linux-2.6.26.2/System.map /boot
- #cp /usr/src/kernels/linux-2.6.26.2/arch/x86/boot/bzImage /boot
- #cd /boot #mv bzImage vmlinuz-2.6.26
注意上面的前面两条命令没有像网上其他很多是帖子一样覆盖了原来内核的映像和内核符号隐射表。把新的直接放在/boot下面,这样能在新内核启动不了的情况下,可以启动新内核。希望通过本文对内核模块编译有所帮助。
【编辑推荐】