由于奇怪的模块循环,交叉编译的内核无法启动

时间:2012-08-31 22:35:25

标签: architecture linux-kernel cross-compiling

我正在尝试使用vortexX86DX处理器为嵌入式电路板准备优化的工具链/操作系统。

我的电脑架构是x86_64。所以我开始使用cross-NG编译交叉编译器。然后使用该编译器编译了使用Xenomai(用于rt内核模块)修补的linux 2.6.38.8。内核计划取代当前内核。目前,debian 6.0.4 i386的默认内核已安装在板上。

编译的内核无法使用此错误启动:

request_module: runaway loop modprobe binfmt-464c

我可以理解新内核的问题。只有在尝试加载用于加载不兼容elf的模块时,才会出现AFAIK以上错误。虽然这里没有不兼容性......用i586优化编译的内核(包含x86通用代码和elf仿真器)应该能够加载init的i386架构......

如果重要,编译内核的架构是:

file ./vmlinux.o 
./vmlinux.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped

2 个答案:

答案 0 :(得分:1)

用Google搜索:request_module: runaway loop modprobe binfmt-464c
它试图加载binfmt-464c,但是modprobe本身就是一个ELF,所以要运行modprobe,它首先需要binfmt-464c。可能的解决方案是将模块包含在内核构建中。

答案 1 :(得分:0)

以某种方式,您的交叉编译工具链会在某个地方生成i386预期之外的其他体系结构二进制文件。您不仅应检查内核,还应检查内核正在调用的“ init”,“ shell”和其他命令,因为其中一个不是i386,并且内核尝试加载模块以模拟并运行它。