ljf112621 发表于 2007-1-12 14:55:07

一个很奇怪的问题,不知道原因何在,向高手请教!

我的开发板在启动过程中,有70%左右的几率会出现一下问题:
.......
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
NET: Registered protocol family 1
NET: Registered protocol family 17
eth0: DSPCFG accepted after 0 usec.
eth0: link up.
eth0: Setting full-duplex based on negotiated link capability.
IP-Config: Complete:
      device=eth0, addr=10.3.37.217, mask=255.255.255.0, gw=10.3.37.254,
   host=iptv10, domain=, nis-domain=(none),
   bootserver=10.3.37.121, rootserver=10.3.37.121, rootpath=
Looking up port of RPC 100003/2 on 10.3.37.121
Looking up port of RPC 100005/1 on 10.3.37.121
VFS: Mounted root (nfs filesystem) readonly.
Freeing unused kernel memory: 148k freed
到这里,就死机了.

若正常情况下:
接下来应该会出现以下信息:
Algorithmics/MIPS FPU Emulator v1.5
再下来就是开始执行文件系统的启动脚本了.

我用的是2.6.17内核,MIPS架构,跟踪发现,执行到
run_init_process("/sbin/init")的时候就死了(具体在init/main.c中),开始怀疑是文件系统问题,所以做了一个测试脚本test.sh.里面加了一些输出打印
然后在run_init_process("/sbin/init")之前就执行
run_init_process("/test.sh"),发现在其他板子上可以输出test信息,而这块板子不行.
所以就跟踪run_init_process代码,发现它定义如下
static void run_init_process(char *init_filename)
{
        argv_init = init_filename;
        execve(init_filename, argv_init, envp_init);
}
但是却无法找到execve在哪里定义.无法继续往下查找

由于用 同样的kernel和文件系统,在其他板子上就不会出这个问题,所以可以确认是该板子硬件问题.
但是不知道问题出在何处,特向各位高手请教!

volans 发表于 2007-1-15 10:34:39

查查你的晶震是不是旱错了……

ljf112621 发表于 2007-1-16 12:34:05

好的,我试试,谢谢LS的啊

st963432 发表于 2007-2-4 18:42:33

你的nfs为什么是只读的

ljf112621 发表于 2007-2-9 20:34:07

显示是只读的,但是我在文件系统的启动脚本里面remount了,是可以写的,这个没关系
页: [1]
查看完整版本: 一个很奇怪的问题,不知道原因何在,向高手请教!