From 87848d91c7b3dba9379237ba0bad31239f16e07a Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Mon, 27 Mar 2006 23:23:43 +0000 Subject: setlogcons, from Jan Kaszka. --- console-tools/Config.in | 6 ++++++ console-tools/Makefile.in | 1 + console-tools/setlogcons.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 console-tools/setlogcons.c (limited to 'console-tools') diff --git a/console-tools/Config.in b/console-tools/Config.in index bcc7c9b8d..34e83e194 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 f14e338e1..437bcd0ec 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 000000000..1f0ac524e --- /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 + * + * Based on setlogcons (kbd-1.12) by Andries E. Brouwer + * + * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + */ + +#include +#include +#include +#include +#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; +} -- cgit v1.2.3