[yocto] [PATCH][linux-yocto] mount_root: clarify error messages for when no rootfs found (V2)

Darren Hart dvhart at linux.intel.com
Tue Nov 15 12:19:26 PST 2011


The following is a modified version the patch at:

meta/cfg/kernel-cache/patches/boot/mount_root-clarify-error-messages-for-when-no-rootfs.patch

in the linux-yocto-3.0 git repository. This version adds KERN_EMERG
so that even using loglevel=1 at boot, the end user will see:

[    0.217462] VFS: Unable to mount root fs on unknown-block(8,2)
[    0.223457] User configuration error - no valid root filesystem found
[    0.230057] Kernel panic - not syncing: Invalid configuration from end user preg
[    0.238992] Pid: 1, comm: swapper Not tainted 3.0.4-yocto-standard+ #2
[    0.245691] Call Trace:                                                         
[    0.248218]  [<c04eddbc>] ? 0xc04eddbc                                          
[    0.252071]  [<c05549ad>] ? 0xc05549ad                                          
[    0.255928]  [<c05549fa>] ? 0xc05549fa                                          
[    0.259790]  [<c0554623>] ? 0xc0554623                                          
[    0.263650]  [<c0554b1c>] ? 0xc0554b1c                                          
[    0.267497]  [<c055472a>] ? 0xc055472a                                          
[    0.271344]  [<c04f0df6>] ? 0xc04f0df6                                          

Instead of just:

[    0.230057] Kernel panic - not syncing: Invalid configuration from end user preg
...

Which is arguably no better than what this patch originally attempted to address.

Paul, has this patch been sent upstream for inclusion? I don't see it in Linus' tree.

Thanks,

Darren

----------------------

To an end user who doesn't really know linux that well, a
message like:

  Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

may just look like cryptic computer speak indicating some
deep and complex problem, instead of the reality that they
have a simple local configuration problem.  Ideally it would
be nice to not use the misleading "panic" at all, but since
various panic notifiers are historically expecting to be
called when there is no valid rootfs, we can't change that.

So instead, this tries to make it 100% clear to folks of
any background that it is an end user configuration issue.

V2: Use KERN_EMERG so the printk context isn't lost when using loglevel

Signed-off-by: Paul Gortmaker <paul.gortmaker at windriver.com>
Signed-off-by: Darren Hart <dvhart at linux.intel.com>
---
 init/do_mounts.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/init/do_mounts.c b/init/do_mounts.c
index bb008d0..d24b8c7 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -270,7 +270,9 @@ retry:
 		printk("DEBUG_BLOCK_EXT_DEVT is enabled, you need to specify "
 		       "explicit textual name for \"root=\" boot option.\n");
 #endif
-		panic("VFS: Unable to mount root fs on %s", b);
+		printk(KERN_EMERG "VFS: Unable to mount root fs on %s\n", b);
+		printk(KERN_EMERG "User configuration error - no valid root filesystem found\n");
+		panic("Invalid configuration from end user prevents continuing");
 	}
 
 	printk("List of all partitions:\n");
@@ -282,7 +284,9 @@ retry:
 #ifdef CONFIG_BLOCK
 	__bdevname(ROOT_DEV, b);
 #endif
-	panic("VFS: Unable to mount root fs on %s", b);
+	printk(KERN_EMERG "VFS: Unable to mount root fs on %s\n", b);
+	printk(KERN_EMERG "User configuration error - no valid root filesystem found\n");
+	panic("Invalid configuration from end user prevents continuing");
 out:
 	putname(fs_names);
 }
-- 
1.6.5.2
-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



More information about the yocto mailing list