add the -c option, modified version of a patch from Bastian Blank
diff --git a/sysklogd/klogd.c b/sysklogd/klogd.c
index f2ab5ea..710bd5a 100644
--- a/sysklogd/klogd.c
+++ b/sysklogd/klogd.c
@@ -59,8 +59,8 @@
 	exit(TRUE);
 }
 
-static void doKlogd(void) __attribute__ ((noreturn));
-static void doKlogd(void)
+static void doKlogd(const char console_log_level) __attribute__ ((noreturn));
+static void doKlogd(const char console_log_level)
 {
 	int priority = LOG_INFO;
 	char log_buffer[4096];
@@ -76,6 +76,10 @@
 	/* "Open the log. Currently a NOP." */
 	klogctl(1, NULL, 0);
 
+	/* Set level of kernel console messaging.. */
+	if (console_log_level)
+		klogctl(8, NULL, console_log_level);
+
 	syslog_msg(LOG_SYSLOG, LOG_NOTICE, "klogd started: " BB_BANNER);
 
 	while (1) {
@@ -125,10 +129,23 @@
 	/* no options, no getopt */
 	int opt;
 	int doFork = TRUE;
+	unsigned char console_log_level = 7;
 
 	/* do normal option parsing */
-	while ((opt = getopt(argc, argv, "n")) > 0) {
+	while ((opt = getopt(argc, argv, "c:n")) > 0) {
 		switch (opt) {
+		case 'c':
+			if ((optarg == NULL) || (optarg[1] != '\0')) {
+				show_usage();
+			}
+			/* Valid levels are between 1 and 8 */
+			console_log_level = *optarg - '1';
+			if (console_log_level > 7) {
+				show_usage();
+			}
+			console_log_level++;
+			
+			break;
 		case 'n':
 			doFork = FALSE;
 			break;
@@ -145,7 +162,7 @@
 		error_msg_and_die("daemon not supported");
 #endif
 	}
-	doKlogd();
+	doKlogd(console_log_level);
 
 	return EXIT_SUCCESS;
 }