返回信息流从SDRAM启动Linux内核,同时配置Linux命令行参数使其通过NFS挂载根文件系统
出现下面这个错误,内核起不来
request_module: runaway loop modprobe binfmt-0000
这个是什么原因啊
【原因】uboot配置根文件系统挂载目录时,目录写错了。。。
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8546同步于 2010/5/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
内核启动遇到问题了,请教~~~已解决
media
2010/5/17镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
LZ最好把软硬件环境描述一下,然后把完整的日志贴上来分析一下
你这个报错直接在内核代码里也能找到
路径kernel/kmod.c 106行(request_module函数内)
以下是截取的部分内容
===========分割线开始==========
/* If modprobe needs a service that is in a module, we get a recursive
* loop. Limit the number of running kmod threads to max_threads/2 or
* MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
* would be to run the parents of this process, counting how many times
* kmod was invoked. That would mean accessing the internals of the
* process tables to get the command line, proc_pid_cmdline is static
* and it is not worth changing the proc code just to handle this case.
* KAO.
*
* "trace the ppid" is simple, but will fail if someone's
* parent exits. I think this is as good as it gets. --RR
*/
max_modprobes = min(max_threads/2, MAX_KMOD_CONCURRENT);
atomic_inc(&kmod_concurrent);
if (atomic_read(&kmod_concurrent) > max_modprobes) {
/* We may be blaming an innocent here, but unlikely */
if (kmod_loop_msg++ < 5)
printk(KERN_ERR
"request_module: runaway loop modprobe %s\n",
module_name);
atomic_dec(&kmod_concurrent);
return -ENOMEM;
}
===========分割线完毕==========
【 在 media 的大作中提到: 】
: 从SDRAM启动Linux内核,同时配置Linux命令行参数使其通过NFS挂载根文件系统
: 出现下面这个错误,内核起不来
: request_module: runaway loop modprobe binfmt-0000
: ...................
硬件是君正的4750,就是试着配下开发环境,板子上已经有Linux2.6.24的内核,根文件系统想通过NFS挂载,后来查到是由于根文件系统的位置,在uboot启动时设错了。。。
另外大牛好想知道很多调试,检错的方法, kernel/kmod.c是kernel 出错分析的文件????
【 在 hobby 的大作中提到: 】
: LZ最好把软硬件环境描述一下,然后把完整的日志贴上来分析一下
: 你这个报错直接在内核代码里也能找到
: 路径kernel/kmod.c 106行(request_module函数内)
: ...................
1、看来现在问题是解决了吧?是uboot启动内核的配置不对?
如果确定了问题原因,更新一下标题和主贴吧(已解决、问题原因和解决方法),一来总结一下能让自己的思路更清晰也加深印象,二来也能为碰到类似问题的同学提供帮助
2、如果是uboot环境变量设置的问题,我建议你再好好看看,其中不少环境变量的设置对uboot运行特别是引导内核有很重要的作用。有两个文档推荐:一个是uboot根目录下的readme,另外一个是linux源码中的documentation/kernel-parameter.txt。
PS:uboot,kernel代码等都带着大量的文档,进行移植或开发前有必要浏览一下其中的内容,特别是readme文件。
3、调试这个问题好大。。。
简单说来,我常这么做
分析打印信息=>有问题的地方到google里面搜索 或 在linux内核代码中搜索
因为普遍的问题google都能找到而且一般有直接的解决方法,而内核代码会给你最准确的答案(但是往往有点儿晦涩)。所以这两个方法结合使用
如果能初步定位问题,做做更改后(例如改uboot环境变量、调整内核编译配置)再重复上面步骤直到问题解决
如果定位不了问题,那就想办法或者更多的调试信息(例如打开代码中原有的调试开关、自己添加打印,利用调试器进行调试等),然后再重复上面步骤
这些东西一下两下也说不清,你可以从实际问题着手,慢慢学习体会。而且,论坛作为大家讨论的地方,如果是技术性讨论,比较适合的话题是具体的问题,如果问题太泛太大反而让人觉得不好说
当然,作为初学者,我觉得有些东西概念性的掌握和讨论下也是挺好的 :)
【 在 media 的大作中提到: 】
: 硬件是君正的4750,就是试着配下开发环境,板子上已经有Linux2.6.24的内核,根文件系统想通过NFS挂载,后来查到是由于根文件系统的位置,在uboot启动时设错了。。。
: 另外大牛好想知道很多调试,检错的方法, kernel/kmod.c是kernel 出错分析的文件????
忘了说,这个文件是个普通的kernel代码源文件
之所以找到这个文件,就是看你提的那句信息“request_module: runaway loop modprobe binfmt-0000 ”
这个信息就是这个文件里面的相应函数输出的
【 在 media 的大作中提到: 】
: 硬件是君正的4750,就是试着配下开发环境,板子上已经有Linux2.6.24的内核,根文件系统想通过NFS挂载,后来查到是由于根文件系统的位置,在uboot启动时设错了。。。
: 另外大牛好想知道很多调试,检错的方法, kernel/kmod.c是kernel 出错分析的文件????
赞,回答这么细致,谢谢。。
【 在 hobby 的大作中提到: 】
: 1、看来现在问题是解决了吧?是uboot启动内核的配置不对?
: 如果确定了问题原因,更新一下标题和主贴吧(已解决、问题原因和解决方法),一来总结一下能让自己的思路更清晰也加深印象,二来也能为碰到类似问题的同学提供帮助
: 2、如果是uboot环境变量设置的问题,我建议你再好好看看,其中不少环境变量的设置对uboot运行特别是引导内核有很重要的作用。有两个文档推荐:一个是uboot根目录下的readme,另外一个是linux源码中的documentation/kernel-parameter.txt。
: ...................