內核外模塊編譯步驟

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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章