0

source.android.comからSamsungカーネルをダウンロードしてビルドしました。次に、最初にCWMリカバリイメージをインストールし、その後、Nexus S(Android 4.1.1)をルート化しました。ここで、単純なLoadable-Kernel-Module(LKM)を挿入したいのですが、insmod hello.koADBシェルにコマンドを書き込んでモジュールを挿入すると、2〜3秒後にデバイスが自動的に再起動します。

以下は私の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でSamsungカーネルをコンパイルし、このカーネルを使用してLKMをコンパイルしました。これが理由かもしれませんか?

4

1 に答える 1

0

次のコマンドを使用してNexusSのカーネルソースをダウンロードした後

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

フォルダが空になっているように見えます。これは、gitリモートブランチをチェックアウトする必要があるためです。`git branch -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は正しいカーネルバージョンでコンパイルされていなかったため、挿入のたびにデバイスを再起動していました。

于 2013-03-25T12:01:26.430 に答える