天嵌 ARM开发社区

 找回密码
 注册
查看: 5167|回复: 6

做根文件系统rootfs+内核kernel 出现的问题!

[复制链接]
sunhy1021 发表于 2009-10-22 16:08:58 | 显示全部楼层 |阅读模式
我自制了rootfs和kernel,有一些问题,列出如下:
分三种情况:
1、自制rootfs+光盘里的内核
2、光盘里的文件系统+自制kernel
3、自制rootfs+自制kernel
(注:所用的文件是busybox1.1.3和内核linux-2.6.25.8 (从官网上下载的),内核是按照最新版手册天嵌科技出品-Linux移植之Step By Step_V3.1_200900826.pdf 上做出来的)

第一:自制rootfs+光盘里的内核
启动信息如下:
前面的信息太长,省略一些
Booting Linux ...
Copy linux kernel from 0x001f0000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
Uncompressing Linux........................................................................................................................ done, booting the kernel.
Linux version 2.6.25.8 (root@EmbedSky) (gcc version 3.4.5) #4 Tue Apr 21 12:21:45 CST 2009
.***************省略了*************
s3c2410-rtc s3c2410-rtc: hctosys: invalid date/time
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 188K
eth0: link down

Please press Enter to activate this console.
成功启动,说明自制的rootfs是正确的。

第二:光盘里的文件系统+自制kernel
************前面的省略了******************
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 200K
cannot run '/etc/init.d/rcS': No such file or director

can't open /dev/tty2: No such file or director
can't open /dev/tty3: No such file or director
can't open /dev/tty4: No such file or director

问题:这是光盘里的文件系统,为什么会有cannot run '/etc/init.d/rcS': No such file or director这个错误呢??难道自制的内核有问题~~

第三:自制rootfs+自制kernel
************前面的省略了******************
TCP cubic registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 200K
Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

问题:在网上查了一些资料,也没查出个什么结果,希望得到版主的回复啊!

这些问题困扰了我几天啊~~~
亚瑟王 发表于 2009-10-22 16:34:21 | 显示全部楼层
1、你用光盘中的文件系统和内核试过了吗?
2、根据你的打印信息,(第三种)知道:开发板中没有文件系统(这个是根据提示信息最直观的),
3、想知道你用的什么编译器编译的内核镜像。3.1版本的移植手册里面用的是4.3.3的编译器,如果你使用的4.3.3的编译器,那么你文件系统就要使用4.3.3的编译器编译了,而你现在用的光盘里面提供的内核和文件系统是用3.4.5编译的,两者是不能混用的。
 楼主| sunhy1021 发表于 2009-10-22 17:44:34 | 显示全部楼层
问题补充:
我打包文件系统的时候是用命令 mkyaffsimage_2  rootfs rootfs.bin

看前面几个也是问文件系统的问题,设计到EABI,但是我没用到4.3.3编译器啊
亚瑟王 发表于 2009-10-24 16:03:36 | 显示全部楼层
你配置内核时是否选择了EABI的相关选项,这个配置在移植手册的约定章节讲解了。
 楼主| sunhy1021 发表于 2009-10-26 10:26:18 | 显示全部楼层
4# 亚瑟王

你说的:2、根据你的打印信息,(第三种)知道:开发板中没有文件系统(这个是根据提示信息最直观的)
我在第三种情况下,出现了如下的打印信息:
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 200
K   说明已经成功把文件系统挂载上去了啊!怎么说没有文件系统的呢???不明白亚瑟王说的意思!!

我用光盘里的文件系统和内核都试过了,就是上面我所列出的第一种和第一种情况,请亚瑟王看看咯!

所用的文件是busybox1.1.3和内核linux-2.6.25.8 (从官网上下载的),内核是按照最新版手册天嵌科技出品-Linux移植之Step By Step_V3.1_200900826.pdf 上做出来的,虽然是按照3.1版本的手册,但是我做内核和文件系统的时候,编译器用的都是3.4.5,就是要和光盘里内核、文件系统配套!
亚瑟王 发表于 2009-10-27 14:31:53 | 显示全部楼层
建议你用我们移植好的2.6.25.8的内核编译出来的镜像试试,然后再对比一下你自己移植的时候做的配置单。
ruoxuan2004 发表于 2009-10-31 00:08:26 | 显示全部楼层
建议整个开发工具链,源码都用最新的版本,最忌讳的就是一个版本很新,另外一个很旧,这样会出现一些兼容问题,因为内核与文件系统是成套使用的,这点在相关文档里面说得很清楚了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-17 08:37 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表