我已经从source.android.com下载了三星的内核并构建了它。然后,我首先安装了CWM恢复映像,然后将我的Nexus (Android4.1.1)作为根。现在,我想在其中插入简单的可加载内核模块(LKM),但是当我通过在亚行外壳上写入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");
}我不知道这是怎么回事。它没有显示错误信息或其他任何信息,只需在重新启动后重新启动并开始正常运行。
编辑
我用Android2.2编译了三星内核,并使用这个内核编译了我的LKM。这就是原因吗?
发布于 2013-03-25 12:01:26
使用以下命令下载Nexus的内核源代码后
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分支用于jelly 4.1.2。这就是为什么我LKM没有用正确的内核版本进行编译,因此在每次插入时都重新启动设备。
https://stackoverflow.com/questions/15386166
复制相似问题