hi
 
I am thinking  that why my romfs is unable to be mounted as a root
device.
 
my kernel command line:(I have linked the romfs into the kernel
image,the address below is calculated automatically :)
 
root=/dev/ram0 initrd=0x0c0a235c,139k keepinitrd
 
and I have modified the makefile in which /dev/ram0 will be created.
 
what else I have missed?
 
and just read a article via
http://www.ucdot.org/article.pl?sid=03/01/11/1049210&mode=thread
<http://www.ucdot.org/article.pl?sid=03/01/11/1049210&mode=thread> 
(Phil Wilshire SDCS System Design & Consulting Services
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>  )
 
so I am wondering that the /dev/root(ROOT_DEV) was not created
successfully?because no blkmem.c in kernel 2.6,must I enable the MTD
option to make the kernel support romfs?they have any relation?
 
I will appreciate your comments!
 
thanks&regards
rui
 


________________________________

        From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] 
        Sent: Monday, May 14, 2007 5:31 PM
        To: uclinux-dev@uclinux.org
        Subject: [uClinux-dev] why init/do_mounts.c/mount_block_root
sys_mountreturn -EFAULT(-14)?
        
        
        hi guys
         
        I got the problem in the init/do_mounts.c
         
        static void __init mount_block_root(char *name, int flags)
        ....
        retry:
                for (p = fs_names; *p; p += strlen(p)+1) {
                        int err = sys_mount(name, "/root", p, flags,
root_mount_data);
        printk("VFS: tried fs_name = <%s> err= %d\n",p,err);
         
                        switch (err) {
                                case 0:
                                        printk("case 0\n");
                                        goto out;
                                case -EACCES:
                                        printk("case -EACCESS\n");
                                        flags |= MS_RDONLY;
                                        goto retry;
                                case -EINVAL:
                                case -EBUSY:
                                        printk("case -EBUSY &
EINVAL\n");
                                        continue;
                        }
                        /*
                         * Allow the user to distinguish between failed
open
                         * and bad superblock on root device.
                         */
                        printk ("VFS: Cannot open root device \"%s\" or
%s\n",
                                root_device_name, kdevname (ROOT_DEV));
        ...
         
        well,in a normal 2.4 kernel will get this result:
         
        *******
        VFS: test name = </dev/root> 
        VFS: fs_name = <ext2> 
        VFS: fs_name = <romfs> 
        VFS: root name <1f:00> 
        *******
        
        VFS: tried fs_name = <ext2> err= -22(-EINVAL,so it continue to
try mount romfs)
        case -EBUSY & EINVAL
        VFS: tried fs_name = <romfs> err= 0
        case 0
         
        but in a 2.6.9 kernel have this result:
         
        *******
         
        VFS: test name = </dev/root> 
         
        VFS: fs_name = <ext2> 
         
        VFS: fs_name = <romfs> 
         
        VFS: tried fs_name = <ext2> err= -14 (-EFAULT,it directly go to
the failure handle)
         
        VFS: Cannot open root device "ram0" or unknown-block(0,0)
         
        Please append a correct "root=" boot option
         
        Kernel panic - not syncing: 1VFS: Unable to mount root fs on
unknown-block(0,0)
         
        ***********************
        thanks!
        rui

_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to