diff --git a/conf.c b/conf.c index 8e98084b..92627a8e 100644 --- a/conf.c +++ b/conf.c @@ -65,10 +65,12 @@ void parse_kernel_cmdline(void) if (strstr(line, "finit_debug") || strstr(line, "--debug")) debug = 1; - +#ifdef KERNEL_QUIET if (!debug && strstr(line, "quiet")) - verbose = 0; - + quiet = 1; + else + quiet = 0; +#endif fclose(fp); } } diff --git a/configure b/configure index b675ebc8..d722cd1e 100755 --- a/configure +++ b/configure @@ -29,6 +29,7 @@ defaults() embedded=${embedded:=0} inetd=${inetd:=1} verbose=${verbose:=1} + kernel_quiet=${kernel_quiet:=1} static=${static:=0} disable_plugins=${disable_plugins:=0} } @@ -65,6 +66,11 @@ fi else echo "Quiet Finit : NO, verbose output (default)" fi + if [ $kernel_quiet -eq 1 ]; then + echo "Kernel Quiet : YES, silent after inital boot (default)" + else + echo "Kernel Quiet : NO" + fi if [ $static -ne 0 ]; then echo "Static Finit : YES" fi @@ -105,6 +111,7 @@ usage() echo " --enable-embedded Enable embedded defaults, BusBox getty, mdev etc." echo " --enable-debug Enable debug flags, '-O0, -g'" echo " --enable-quiet Quiet mode, reduce screen output to absolute minimum." + echo " --enable-kernel-quiet Like quiet, but after boot, using kernel cmdline quiet." echo " --enable-static Link statically. This disables a few features." echo " --disable-inetd Disable inetd support if not needed." echo " --disable-plugins Disable plugins" @@ -182,6 +189,10 @@ while [ "$*" != "" ]; do verbose=0 ;; + enable-kernel-quiet) + kernel_quiet=1 + ;; + enable-static) static=1 ;; @@ -275,6 +286,7 @@ if [ x"$heading" != x"" ]; then fi echo "#define VERBOSE_MODE $verbose" >> config.h +echo "#define KERNEL_QUIET $kernel_quiet" >> config.h echo "#define FINIT_FIFO \"$fifo\"" >> config.h echo "#define FINIT_CONF \"$config\"" >> config.h echo "#define FINIT_RCSD \"$rcsd\"" >> config.h diff --git a/finit.c b/finit.c index 7a83d3ff..2d3de132 100644 --- a/finit.c +++ b/finit.c @@ -38,6 +38,7 @@ #include "inetd.h" int debug = 0; +int quiet = KERNEL_QUIET; /* Delayed disable of verbose mode. */ int verbose = VERBOSE_MODE; int runlevel = 0; /* Bootstrap */ int cfglevel = RUNLEVEL; /* Fallback if no configured runlevel */ @@ -185,6 +186,10 @@ int main(int argc, char* argv[]) /* Start TTYs */ tty_runlevel(runlevel); + /* Disable verbose mode, if selected */ + if (quiet) + verbose = 0; + /* * Enter main loop to monior /dev/initctl and services */ diff --git a/finit.h b/finit.h index faf3adba..cf5f385d 100644 --- a/finit.h +++ b/finit.h @@ -88,6 +88,7 @@ struct init_request { }; extern int debug; +extern int quiet; extern int verbose; extern int runlevel; extern int cfglevel;