启动文件系统时出现错误:Warning: unable to open an initial console.

————————————————————————————————

(一)启动文件系统时出现错误:Warning: unable to open an initial console.

————————————————————————————————

具体错误:

yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: auto selecting yaffs2
s3c-nand: ECC uncorrectable error detected
block 109 is bad
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 140K
Warning: unable to open an initial console.

原因查找:

 1)删掉下载的文件系统中的/dev/console和/dev/null

重新建立

mknod –m 660 console c 5 1

mknod –m 660 null c 1 3

2)你的根文件系统上需要建/dev/console

3)你的rootfs真的是cramfs吗? 如果是jffs2, 那么command line里设置一下 rootfstype=jffs2看看

4)现在我加了支持devfs选项编译核,启动中是没了: 
warning:unable to open an initial console 
且多了: 
Mounted devfs on /dev 
可就仅此而已,后面什么也没有了!敲键盘反映全是乱七八糟的字符!

************

最终原因:

************

在建立根文件系统的目录时,跳过了一些步骤。

进入opt/mini2440/fs,创建一个shell的脚本用于构建根文件系统的各个目录。create_rootfs_bash,平且改变执行的权限。

#chmod +x create_rootfs_bash

在kernel目录下,运行./create_rootfs_bash,其脚本的内容如下:

#!/bin/sh
echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs
echo "--------Create root,dev....----------"
mkdir root dev etc boot tmp var sys proc lib mnt home usr
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules
echo "make node in dev/console dev/null"  //这几行的作用是创建console控制台,而我在制作根目录时刚好没有做这个工作。
mknod -m 600 dev/console c 5 1
mknod -m 600 dev/null c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp
chmod 1777 tmp
chmod 1777 var/tmp
echo "-------make direction done---------"
具体如下图所示:

启动文件系统时出现错误:Warning: unable to open an initial console._第1张图片


 经过以上改变后,根文件系统制作成功,启动界面如下图:



有用的链接:

http://www.lslnet.com/linux/dosc1/43/linux-300515.htm

http://topic.csdn.net/u/20110317/09/8f75cc2a-5c58-40cc-91c8-a356c9a77b48.html

参考文章:yaffs2根文件系统移植至MINI2440

http://blog.csdn.net/yeyuangen/article/details/6698000


你可能感兴趣的:(启动文件系统时出现错误:Warning: unable to open an initial console.)