主题 : 文件系统移植出错 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 57098
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2011-10-18
最后登录: 2011-11-22
楼主  发表于: 2011-11-19 12:25

 文件系统移植出错



在迷你2440文件系统的移植过程中,遇到这样的问题,错误如下:
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem) on device 31:3.
Freeing init memory: 156K
Warning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
Backtrace:
[<c00341cc>] (dump_backtrace+0x0/0x10c) from [<c03297d0>] (dump_stack+0x18/0x1c)

r7:00000000 r6:00000000 r5:c001f180 r4:c0481b10
[<c03297b8>] (dump_stack+0x0/0x1c) from [<c0329820>] (panic+0x4c/0x114)
[<c03297d4>] (panic+0x0/0x114) from [<c002f598>] (init_post+0xa8/0x10c)
r3:00000000 r2:c386af00 r1:00000000 r0:c03dae2c
[<c002f4f0>] (init_post+0x0/0x10c) from [<c00084b4>] (kernel_init+0xe4/0x114)
r5:c001f180 r4:c04812a0

试了很多次,不懂是出了什么问题,各位帮解答一下
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-11-19 13:04
出现这种错误的可能性很多,说说你具体是怎么移植怎么操作的
级别: 新手上路
UID: 57098
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2011-10-18
最后登录: 2011-11-22
2楼  发表于: 2011-11-19 14:07
我按照别人网上的教程,下面是移植步骤

STEP 1:
创建根文件系统目录,主要包括以下目录:
/bin,/etc,/dev,/home,/lib,/mnt,/opt,/proc,/root,/sbin,/sys,/tmp,/usr,/var.
建一个名为root_2.6.31的文件夹 mkdir root_2.6.31
在该文件夹下创建以上目录 mkdir bin etc dev ……………
STEP 2:
获取busybox1.15.2源码,在http://www.busybox.net/downloads/找到busybox-1.15.2.tar.bz2这个压缩包,下载,解压:tar xjvf busybox-1.15.2
进入源码目录,修改Makefile
第164行,CROSS_COMPILE = arm-linux-
第190行,ARCH = arm
执行#make menuconfig进行配置busybox
配置完后,执行#make make install
然后就会在上一伎录下生成rootfs文件夹,里面包含几个文件夹/bin /sbin /usr linuxrc
把这些文件全部复制到刚建好的root_2.6.31目录下,
#cp –rf * ../root_2.6.31
2
STEP 3:
在dev目录下,创建两个设备节点:
#mknod console c 5 1
#mknod null c 1 3
进入etc目录,添加文件:
拷贝Busybox-1.15.2/examples/bootfloopy/etc/* 到当前目录下。
# cp –r ../../busybox-1.15.2/examples/bootfloopy/etc/* ./
包括文件:fstab init.d inittab profile
拷贝/etc/passwd, /etc/group, /etc/shadow到当前目录下。
# cp /etc/passwd ./
# cp /etc/group ./
# cp /etc/shadow ./
修改inittab文件:
内容如下:
console::sysint:/etc/init.d/rcS
ttyS0::respawn:-/bin/sh
s3c2410_serial0::askfirst:-/bin/sh
::once:/usr/sbin/telnetd –l /bin/login
::ctrlaltdel:/bin/umount –a -r
修改fstab文件,内容如下:
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
修改init.d/rcS文件,内容如下:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
3
umask 022
export PATH runlevel prevlevel
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock
/bin/hostname -F /etc/sysconfig/HOSTNAME
修改profile文件,内容如下:
# Ash profile
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
echo "Processing /etc/profile... "
echo "Done"
export USER LOGNAME PS1 PATH
新建sysconfig文件夹,在里面新建HOSTNAME文件,内容为:TX2440A
拷贝库文件:
进入lib目录,拷贝交叉编译器的库文件到lib目录下
#cp –f –a
4
/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib/*.so* ./
到这里,文件系统的框架已经做好,先制作成yaffs镜像,运行一下。
使用mkyaffs2image工具,制作yaffs镜像,这个工具是在yaffs2源码包中utils目录下的mkyaffs2image.c文件编译得到的,如果使用的是大页NAND,需要修改源码。
把编译好的可执行文件复制到/usr/bin目录下,#cp mkyaffs2image /usr/bin
制作文件系统镜像:#mkyaffs2image root_2.6.31 root_2.6.31.bin
如果文件系统能正常挂载,终端会打印出:
Please press Enter to activate this console. (按回车)
Processing /etc/profile...
Done
[root@TX2440A /]#
STEP 4:
在/mnt目录下创建以下文件夹,用来挂载NFS,SD卡和U盘
nfs sd udisk1 udisk2 udisk3 udisk4
挂载根文件系统
设置开发板IP地址:在init.d/rcS文件中加入:
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
route add default gw 192.168.1.1
在/etc/profile中加入:
alias ll=`ls -l`
alias mntnfs=`mount –t nfs –o nolock`
移植BOA服务器:参考《web服务器Boa移植手册》
移植 Madplay: 参考《madplay音乐播放器移植手册》
级别: 新手上路
UID: 57098
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2011-10-18
最后登录: 2011-11-22
3楼  发表于: 2011-11-19 14:09
我按照上面的方法移植,出现了问题,我按照mini2440的手册移植,也是没结果,还是出现问题,所以不懂出现什么问题,大概猜想是/etc目录构建的时候出了问题,但是改了好几回,串口也改了好几个,能力有限,只能请教了