【问题标题】:Inserting Loadable-Kernel-Module in Nexus S Reboots it在 Nexus S 中插入 Loadable-Kernel-Module 会重新启动它
【发布时间】:2013-03-13 13:03:52
【问题描述】:

我已经从 source.android.com 下载了三星内核并构建了它。然后首先我安装了 CWM 恢复映像,然后将我的 Nexus S (Android 4.1.1) 植根。现在我想将简单的 Loadable-Kernel-Module (LKM) 插入其中,但是当我通过在 ADB shell 上写入 insmod hello.ko 命令插入我的模块时,设备会在 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 编译了三星内核,并使用这个内核编译了我的 LKM。可能是这个原因?

【问题讨论】:

  • 没人帮我吗?来吧...

标签: android linux linux-kernel


【解决方案1】:

使用以下命令为 Nexus S 下载内核源代码后

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 没有使用正确的内核版本编译,因此在每次插入时都重新启动设备。

【讨论】:

    猜你喜欢
    • 2022-10-03
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2017-01-23
    • 2018-10-19
    相关资源
    最近更新 更多