• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
主题 : 2.6.34移植后挂载文件系统无法启动linuxrc原因估计 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 9683
精华: 0
发帖: 56
金钱: 325 两
威望: 92 点
综合积分: 112 分
注册时间: 2009-10-10
最后登录: 2017-09-13
楼主  发表于: 2010-06-13 00:44

 2.6.34移植后挂载文件系统无法启动linuxrc原因估计

我研究了一个星期无法成功移植2.6.34内核.
百般无奈.
曾在论坛里发过贴给狠狠的无视了- -!
今天也看到一位朋友和我一样的错误.
VFS: Mounted root (yaffs filesystem) on device 31:3.^M
Freeing init memory: 128K^M
Failed to execute /linuxrc.  Attempting defaults...^M
Kernel panic - not syncing: No init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.^M
Backtrace: ^M
[<c002cb2c>] (dump_backtrace+0x0/0x10c) from [<c03a8e78>] (dump_stack+0x18/0x1c)^M
r7:00000000 r6:c00219cc r5:c052f2d0 r4:c04f20b8^M
[<c03a8e60>] (dump_stack+0x0/0x1c) from [<c03a8ec8>] (panic+0x4c/0xd4)^M
[<c03a8e7c>] (panic+0x0/0xd4) from [<c0028584>] (init_post+0xc4/0x138)^M
r3:c3cd4b00 r2:00000000 r1:c0564000 r0:c04781dc^M
[<c00284c0>] (init_post+0x0/0x138) from [<c00084ec>] (kernel_init+0x11c/0x160)^M
r5:c0021f0c r4:c0021f0c^M
[<c00083d0>] (kernel_init+0x0/0x160) from [<c00457bc>] (do_exit+0x0/0x664)^M
r7:00000000 r6:00000000 r5:00000000 r4:00000000^M

很明显.yaffs已经成功挂载了..执行linuxrc文件失败.
之前也听说过yaffs无法使用压缩过的内核..
也看到一些前辈对于这样的问题采取是换文件系统.
于是综合各位前辈们的意见再编译一次内核.
这次细心点发现了一个问题.


内核里的压缩模式无法取消.


这就让我郁闷了.因为无法取消.
于是我把.config里的压缩内容注释掉.


但是在制作zImgae的时候.它又回来了.
一定需要我选择.


接着我把init下Kconfig里的gzip bzip2这些都注释掉.
结果直接提示我错误内核不完整.
我太菜了.
找不到其他办法取消.
导致我无法确认是不是因为这个引起的原因.
所以在这里请教前辈们.
[ 此帖被yayi在2010-06-13 00:53重新编辑 ]
级别: 侠客
UID: 9683
精华: 0
发帖: 56
金钱: 325 两
威望: 92 点
综合积分: 112 分
注册时间: 2009-10-10
最后登录: 2017-09-13
1楼  发表于: 2010-06-13 10:27
还是遭到了无视..
就不明白自己错在哪了..
能改的都改了.
2.6.33移植很成功.
2.6.34就不行.
郁闷大了.
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2010-06-13 10:35
文件系统的挂载和内核用哪种压缩方式完全没有关系,等执行到那里的时候,内核早就已经解压并且开始执行了。
至于你的问题,先确认一下文件系统里的执行档本身没有问题。最简单的办法是用一个静态编译的helloworld程序作为init,看能否成功执行。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 9683
精华: 0
发帖: 56
金钱: 325 两
威望: 92 点
综合积分: 112 分
注册时间: 2009-10-10
最后登录: 2017-09-13
3楼  发表于: 2010-06-13 10:43
版主的意思是说我弄个静态helloworld到文件系统里.然后在rc.S还是inittab里加个./helloworld?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2010-06-13 10:47

 回 3楼(yayi) 的帖子

放到文件系统的根目录下,在内核命令行上用init=/helloworld来指定
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 9683
精华: 0
发帖: 56
金钱: 325 两
威望: 92 点
综合积分: 112 分
注册时间: 2009-10-10
最后登录: 2017-09-13
5楼  发表于: 2010-06-13 10:50
自己太笨了..明白了..是不是把init=/helloworld?
我直接啥都不用,
就printf helloworld可以把?如果输出成功了是否代表文件系统有问题?
但是文件系统有问题的话..我换了linux-2.6.33就没有问题.
还有一个值得注意的是.在编译内核的时候又提示
worng:init/main.c错误什么的.
不过2.6.33也提示过..所以我也没什么在意
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
6楼  发表于: 2010-06-13 11:01
我直接啥都不用,
就printf helloworld可以把

是的,可以在printf()后面加上sleep(9999); 以免init进程终止退出后内核出现panic。

如果输出成功了是否代表文件系统有问题?

这表明
1) 你用的编译器ABI类型是正确的;
2) 文件系统的确已经成功挂载

下一步你可以把helloworld改成动态链接,如果运行不成功,说明问题出在共享库的动态链接上,如果成功了,说明问题出在你原来文件系统的/initrc本身
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 9683
精华: 0
发帖: 56
金钱: 325 两
威望: 92 点
综合积分: 112 分
注册时间: 2009-10-10
最后登录: 2017-09-13
7楼  发表于: 2010-06-13 11:09
共享库我是用友善自带的root_qt的,
存放在/lib下..保持和root_qt位置一致.
1)共享库出错了.我应该用什么共享库代替下?
2)linuxrc如果有问题需要怎么去处理?
我已经尝试过bu1.33 bu.161 bu1623个版本.
我用的编译器也是友善的4.3.2_EABI.
所以编译器一般没有问题.
有劳版主了..谢谢.
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
8楼  发表于: 2010-06-13 11:19

 回 7楼(yayi) 的帖子

先试,然后根据结果分析
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
9楼  发表于: 2010-06-13 11:22
引用第7楼yayi于2010-06-13 11:09发表的  :
共享库我是用友善自带的root_qt的,
存放在/lib下..保持和root_qt位置一致.
1)共享库出错了.我应该用什么共享库代替下?
2)linuxrc如果有问题需要怎么去处理?
我已经尝试过bu1.33 bu.161 bu1623个版本.
.......

顺便说一句,如果你提问题的时候能够多提供一些这样有用的信息,也许就不会那么容易被无视了。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go