diff options
Diffstat (limited to 'console-tools')
-rw-r--r-- | console-tools/Config.in | 6 | ||||
-rw-r--r-- | console-tools/Makefile.in | 1 | ||||
-rw-r--r-- | console-tools/setlogcons.c | 34 |
3 files changed, 41 insertions, 0 deletions
diff --git a/console-tools/Config.in b/console-tools/Config.in index bcc7c9b..34e83e1 100644 --- a/console-tools/Config.in +++ b/console-tools/Config.in @@ -72,4 +72,10 @@ config CONFIG_SETKEYCODES This program loads entries into the kernel's scancode-to-keycode map, allowing unusual keyboards to generate usable keycodes. +config CONFIG_SETLOGCONS + bool "setlogcons" + default n + help + This program redirects the output console of kernel messages. + endmenu diff --git a/console-tools/Makefile.in b/console-tools/Makefile.in index f14e338..437bcd0 100644 --- a/console-tools/Makefile.in +++ b/console-tools/Makefile.in @@ -21,6 +21,7 @@ CONSOLETOOLS-$(CONFIG_LOADKMAP) += loadkmap.o CONSOLETOOLS-$(CONFIG_OPENVT) += openvt.o CONSOLETOOLS-$(CONFIG_RESET) += reset.o CONSOLETOOLS-$(CONFIG_SETKEYCODES) += setkeycodes.o +CONSOLETOOLS-$(CONFIG_SETLOGCONS) += setlogcons.o ifneq ($(strip $(CONSOLETOOLS-y)),) libraries-y+=$(CONSOLETOOLS_DIR)$(CONSOLETOOLS_AR) diff --git a/console-tools/setlogcons.c b/console-tools/setlogcons.c new file mode 100644 index 0000000..1f0ac52 --- /dev/null +++ b/console-tools/setlogcons.c @@ -0,0 +1,34 @@ +/* + * setlogcons: Send kernel messages to the current console or to console N + * + * Copyright (C) 2006 by Jan Kiszka <jan.kiszka@web.de> + * + * Based on setlogcons (kbd-1.12) by Andries E. Brouwer + * + * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <fcntl.h> +#include <sys/ioctl.h> +#include "busybox.h" + +extern int setlogcons_main(int argc, char **argv) +{ + struct { + char fn; + char subarg; + } arg; + + arg.fn = 11; /* redirect kernel messages */ + arg.subarg = 0; /* to specified console (current as default) */ + + if (argc == 2) + arg.subarg = atoi(argv[1]); + + if (ioctl(bb_xopen("/dev/tty1", O_RDONLY), TIOCLINUX, &arg)) + bb_perror_msg_and_die("TIOCLINUX");; + + return 0; +} |