原标题:单独编译某个内核模块
对开发内核驱动和文件系统的人来说,经常需要编译某个内核模块。 当然从编译角度,有built-in kernel module和external kernel module之分。 怎么编译一个外部内核模块,google一下“hello world kernel module Makefile”吧。 这里我说下编译内核自带模块的坑... 我用的是SUSE Linux
1.安装源代码包
#zypper in kernel-source
2.要参考文件
#ls -l /usr/src/linux/README.SUSE
lrwxrwxrwx 1 root root 61 Dec 31 10:41 /usr/src/linux/README.SUSE -> ../../share/doc/packages/kernel-source-3.12.49-11/README.SUSE
这个文档介绍编译内核以及模块所需的软件包,概念,方法和步骤。 基本上也适用于其他Linux发型版。
贴出相关的一段:
3.坑
但是按照上面的步骤总是编译不出来.ko内核模块:
原因是配置文件默认没有选择OCFS2,所以要手动make menuconfig,把ocfs2选上, 再试就可以了。具体步骤:
cd /usr/src/linux-obj/x86_64/default
make menuconfig 选择ocfs2
make s
make -C /lib/modules/3.12.49-11-default/build M=`pwd` modules
责任编辑: