Android金鱼armv7内核模块编译

时间:2014-08-05 16:23:50

标签: android arm kernel cross-compiling

我为android编译了金鱼armv7内核。

一切正常,我的编译内核在模拟器上运行良好。 我的问题是,我想在我的金鱼内核中插入一个内核模块(.ko)。 但是交叉编译“你好世界”#39;内核模块给了我一些错误。 所以我用Google搜索并发现我需要用

重新编译我的金鱼内核

' CONFIG_MODULES = Y'

选项已启用。 当我在互联网上阅读时,我在我的.config脚本中添加了以下行。

CONFIG_MODULES=y
CONFIG_MODULES_FORCE_LOAD=y
CONFIG_MODULES_UNLOAD=y
CONFIG_MODULES_FORCE_UNLOAD=y

但如果我使用这些选项重新编译我的金鱼内核,我会收到以下错误。

  LD      net/built-in.o
  LD      vmlinux.o
  MODPOST vmlinux.o
  GEN     .version
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
net/built-in.o: In function `tcp_nuke_addr':
activity_stats.c:(.text+0x4e4b4): undefined reference to `rt6_lookup'
activity_stats.c:(.text+0x4e5c4): undefined reference to `in6addr_any'
make: *** [.tmp_vmlinux1] Error 1
root@ubuntu:/disk2/android/kernel/goldfish# 

一些文档说我应该从脚本中删除CONFIG_NETFILTER = y。 我做了,但结果是一样的。

我现在被困住了......有人可以帮帮我吗? 提前谢谢你。

3 个答案:

答案 0 :(得分:0)

https://source.android.com/devices/tech/kernel.html上有一个建议的Linux配置选项列表,包括CONFIG_NETFILTER

答案 1 :(得分:0)

我删除了与IPV6,INET6相关的所有配置 请记住仅禁用与IPV6相关的模块,而不禁用IPv4。

# CONFIG_IPV6 is not set

之后我就能够构建它。

答案 2 :(得分:0)

也可以

CONFIG_IPV6 = y

似乎build尝试将IPv6配置为模块,但是如果IPv6不在内核中,则内核使用的功能将不可用