Re: [PATCH] Console: fall back to /dev/null when no console is availlable

From: Jörn Engel (joern_at_wohnheim.fh-wedel.de)
Date: 10/06/04

  • Next message: Chen, Kenneth W: "RE: Default cache_hot_time value back to 10ms"
    Date:	Wed, 6 Oct 2004 21:23:35 +0200
    To: Greg KH <greg@kroah.com>
    
    

    On Wed, 6 October 2004 11:19:58 -0700, Greg KH wrote:
    > On Wed, Oct 06, 2004 at 08:04:21PM +0200, J?rn Engel wrote:
    > > On Wed, 6 October 2004 10:38:23 -0700, Greg KH wrote:
    > > >
    > > > Your printk() calls need the proper KERN_* level.
    > >
    > > As does the original one. Which one would you like for both?
    >
    > KERN_WARNING perhaps?

    As in the patch below?

    > > > usually do not have a /dev/null this early in the boot process). Does
    > > > this mean we should add a /dev/null to the initramfs image, like the
    > > > /dev/console node we currently have there?
    > >
    > > Yes, that would fix the case. Is this a problem?
    >
    > I don't have a problem with doing that.

    Then please do so. :)

    Jörn

    -- 
    Premature optimization is the root of all evil.
    -- Donald Knuth
    Some userspace applications rely on the assumption that fd's 0, 1 and
    2 are always open and function as raw stdin, stdout and stderr,
    respectively.
    With no console registered, init get's called without those fd's
    already open.  Arguably, init should know better, handle that case and
    fix things before forking other processed.  But what about
    init=/bin/bash?  Ok, bash could be fixed as well, as could...
    Instead, this patch opens /dev/null when /dev/console doesn't work.
    It swallows all output and doesn't give much input, but programs can
    handle that just fine.
    Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
    ---
     main.c |    9 +++++++--
     1 files changed, 7 insertions(+), 2 deletions(-)
    --- linux-2.6.8cow/init/main.c~console	2004-10-05 20:46:40.000000000 +0200
    +++ linux-2.6.8cow/init/main.c	2004-10-06 21:14:43.000000000 +0200
    @@ -695,8 +695,13 @@
     	system_state = SYSTEM_RUNNING;
     	numa_default_policy();
     
    -	if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
    -		printk("Warning: unable to open an initial console.\n");
    +	if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) {
    +		printk(KERN_WARNING
    +			"Warning: unable to open an initial console.\n");
    +		if (sys_open("/dev/null", O_RDWR, 0) == 0)
    +			printk(KERN_WARNING
    +				"         Falling back to /dev/null.\n");
    +	}
     
     	(void) sys_dup(0);
     	(void) sys_dup(0);
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Chen, Kenneth W: "RE: Default cache_hot_time value back to 10ms"

    Relevant Pages