我为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。我做了,但结果是一样的。
我现在被卡住了......有人可以帮帮我吗?先感谢您。
在https://source.android.com/devices/tech/kernel.html上有一个建议的Linux配置选项列表,包括CONFIG_NETFILTER
。
我删除了与IPV6,INET6相关的所有配置。请记住仅禁用与IPV6相关的模块,而不禁用IPv4。
# CONFIG_IPV6 is not set
在那之后,我能够建立它。
也有效
CONFIG_IPV6 = Y
似乎构建尝试将IPv6配置为模块,但是如果内核中没有内置IPv6,则内核使用的函数不可用