内核外模块编译步骤

1.       内核外模块编译步骤:

1)进入模块所在目录,在Makefile里面添加要编译的模块如:obj-m = test.o.

2make  -C $Kernel  M=`pwd` modules:把模块放到指定的内核下进行编译即在指定的内核下构建模块(注意模块要加载入哪个内核就在哪个内核中编译:比如我的开发板使用的内核版本为linux-2.6.28,modules就要到在linux-2.6.28下编译),其中$kernel=内核源文件的绝对路径,此处换成你的内核源文件的路径;`pwd`=表示模块当前绝对路径。不作修改,自动获取modules当前路径。即可生成.ko文件。

3make  -C $Kernel  M=`pwd` modules clean:清除编译好的文件.ko.o文件和相关生成的文件

4make  -C $Kernel  M=`pwd` modules_install  INSTALL_MOD_PATH=$NFSROOT:安装modules到指定的目录。

5)若以上操作比较频繁的时候,可以写一个bash shell脚本mkmod.sh执行 mv mkmod.sh  mkmod; chmod 755 mkmod修改它的权限,把mkmod拷贝到/usr/bin/目录下,只要执行mkmod, mkmod clean, mkmod install就可以完成以上操作过程,bash  shell 代码如下:

#!/bin/bash

KERNEL=/kernel/linux-2.6.28

#KERNEL=/lib/modules/`uname -r`/build

NFSROOT=/nfsroot

if [ $# -eq 0 ]

then

make -C $KERNEL M=`pwd` modules

elif [ "$1" == "clean" ]

then

make -C $KERNEL M=`pwd` modules clean

elif [ "$1" == "install" ]

then

make -C $KERNEL M=`pwd` modules

make -C $KERNEL M=`pwd` \

                    modules_install INSTALL_MOD_PATH=$NFSROOT

else

echo "Usage:"

echo "    mkmod"

echo "    mkmod clean"

echo "    mkmod install"

fi

发布了5 篇原创文章 · 获赞 7 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章