2013-03-13 63 views
0

我已經從source.android.com下載了三星內核並構建它。然後,我首先安裝了CWM Recovery鏡像,然後根植了我的Nexus S(Android 4.1.1)。現在我想插入簡單的可加載內核模塊(LKM),但是當我通過在ADB外殼上寫入insmod hello.ko命令來插入我的模塊時,在2-3秒後設備會自動重新啓動。在Nexus S中插入可加載內核模塊重新啓動它

以下是我的LKM代碼。

#include <linux/module.h> 
#include <linux/kernel.h> 


int init_module(void) 
{ 
    printk(KERN_INFO "Hello android kernel...\n"); 
    return 0; 
} 

void cleanup_module(void) 
{ 
    printk(KERN_INFO "Goodbye android kernel...\n"); 
} 

我不知道什麼問題。它顯示沒有錯誤信息或其他任何只是重新啓動並重新啓動後開始正常運行。

編輯

我已經編譯內核的三星採用Android 2.2,並使用這個內核編譯我的LKM。這可能是原因?

+0

在這裏沒人能幫我嗎?來吧... – rami 2013-03-15 16:06:33

回答

0

下載內核源爲Nexus S的使用下面的命令

git clone https://android.googlesource.com/kernel/samsung.git

文件夾之後顯示爲空。這是因爲我們必須簽出git遠程分支。 通過編寫`的Git分支-r」顯示遠程分支機構

origin/HEAD -> origin/master
origin/android-samsung-2.6.35-gingerbread
origin/android-samsung-3.0-ics-mr1
origin/android-samsung-3.0-jb
origin/android-samsung-3.0-jb-mr0
origin/master

下列表中我的錯誤是,我選擇origin/android-samsung-3.0-ics-mr1分支,但origin/android-samsung-3.0-jb分支用於糖豆4.1.2。這就是爲什麼我LKM沒有使用正確的內核版本進行編譯,因此在每次插入時重新啓動設備。