假設在/root/code下建乙個hello.c的原始檔(**如下)。
/**************以下原始碼***************/
#include
#include
static int hello_init(void)
static int hello_exit(void)
module_init(hello_init);
module_exit(hello_exit);
module_author("[email protected]");
module_license("gpl");
/***************************************/
在同乙個資料夾下建立乙個名為makefile的檔案(內容如下)。
obj-m :=hello.o
在終端下輸入如下的命令:
make -c /usr/src/kernels/2.6.21-1.3194.fc7-i686/ subdirs=$pwd modules
注意:/usr/src/kernels/2.6.21-1.3194.fc7-i686/這個目錄僅僅是我核心所在的路徑(根據不同的情況要作修改的哦),我用的是fedora7的系統。
會發現code資料夾下多了好多的檔案,這裡面有乙個.ko的檔案,就是我們想要的檔案啦。
這時候確保滑鼠在虛擬機器裡面,同時按住ctrl和f1再按下alt鍵(順序很重要哦,要是先按ctrl和alt就回到xp環境下啦)。進入字元介面,用命令在裡面找到/root/code目錄。在終端下輸入命令:
insmod hello.ko
會發現在下面列印了一行字「hello world」,表明模組載入成功。
再輸入命令:
rmmod hello.ko
會發現下面列印了「good bye」,表明模組已經解除安裝。
要返回圖形介面,可以按alt+f7返回圖形介面。
這應該是linux不能稱得上驅動的驅動了,呵呵。
學習中……
linux編譯單獨乙個模組makefile寫法
單個檔案編譯乙個模組 ifneq kernelrelease obj m mini2440 leds.o else kdir opt friendlyarm mini2440 linux 2.6.32.2 all make c kdir m pwd modules arch arm cross co...
編譯乙個核心模組
1,編寫hello.c include include module license gpl static int init hello init void static void exit hello exit void module init hello init module exit hel...
linux第乙個驅動模組編譯
我們的源程式是乙個簡單的程式 include include module license dual bsd gpl static int hello init void static void hello exit void module init hello init module exit h...