Android金鱼armv7内核模块编译

问题描述 投票:0回答:3

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

一切正常,我编译的内核在模拟器上工作正常。我的问题是,我想在我的金鱼内核中插入一个内核模块(.ko)。但是交叉编译'hello world'内核模块会给我一些错误。所以我用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。我做了,但结果是一样的。

我现在被卡住了......有人可以帮帮我吗?先感谢您。

android arm kernel cross-compiling
3个回答
0
投票

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


0
投票

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

# CONFIG_IPV6 is not set

在那之后,我能够建立它。


0
投票

也有效

CONFIG_IPV6 = Y

似乎构建尝试将IPv6配置为模块,但是如果内核中没有内置IPv6,则内核使用的函数不可用

© www.soinside.com 2019 - 2024. All rights reserved.