applying patch for bug 72:

0000072: Add applet to redirect console output via ioctl(..., TIOCCONS)  
applet name changed to setconsole, since suse has a very similar
utility.  better to treat differences as bugs than invent a new command.
This commit is contained in:
Paul Fox 2005-08-01 18:12:30 +00:00
parent 41a72ecd19
commit fc2256a6ca
6 changed files with 95 additions and 0 deletions

View File

@ -26,6 +26,9 @@ Laurence Anderson <l.d.anderson@warwick.ac.uk>
Jeff Angielski <jeff@theptrgroup.com> Jeff Angielski <jeff@theptrgroup.com>
ftpput, ftpget ftpput, ftpget
Enrik Berkhan <Enrik.Berkhan@inka.de>
setconsole
Edward Betts <edward@debian.org> Edward Betts <edward@debian.org>
expr, hostid, logname, whoami expr, hostid, logname, whoami

View File

@ -31,6 +31,13 @@ config CONFIG_DUMPKMAP
This program dumps the kernel's keyboard translation table to This program dumps the kernel's keyboard translation table to
stdout, in binary format. You can then use loadkmap to load it. stdout, in binary format. You can then use loadkmap to load it.
config CONFIG_SETCONSOLE
bool "setconsole"
default n
help
This program redirects the system console to another device,
like the current tty while logged in via telnet.
config CONFIG_LOADFONT config CONFIG_LOADFONT
bool "loadfont" bool "loadfont"
default n default n

View File

@ -28,6 +28,7 @@ CONSOLETOOLS_DIR-$(CONFIG_CHVT) += chvt.o
CONSOLETOOLS_DIR-$(CONFIG_CLEAR) += clear.o CONSOLETOOLS_DIR-$(CONFIG_CLEAR) += clear.o
CONSOLETOOLS_DIR-$(CONFIG_DEALLOCVT) += deallocvt.o CONSOLETOOLS_DIR-$(CONFIG_DEALLOCVT) += deallocvt.o
CONSOLETOOLS_DIR-$(CONFIG_DUMPKMAP) += dumpkmap.o CONSOLETOOLS_DIR-$(CONFIG_DUMPKMAP) += dumpkmap.o
CONSOLETOOLS_DIR-$(CONFIG_SETCONSOLE) += setconsole.o
CONSOLETOOLS_DIR-$(CONFIG_LOADFONT) += loadfont.o CONSOLETOOLS_DIR-$(CONFIG_LOADFONT) += loadfont.o
CONSOLETOOLS_DIR-$(CONFIG_LOADKMAP) += loadkmap.o CONSOLETOOLS_DIR-$(CONFIG_LOADKMAP) += loadkmap.o
CONSOLETOOLS_DIR-$(CONFIG_OPENVT) += openvt.o CONSOLETOOLS_DIR-$(CONFIG_OPENVT) += openvt.o

View File

@ -0,0 +1,74 @@
/* vi: set sw=4 ts=4: */
/*
* setconsole.c - redirect system console output
*
* Copyright (C) 2004,2005 Enrik Berkhan <Enrik.Berkhan@inka.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdio.h>
#include <getopt.h>
#include "busybox.h"
static const struct option setconsole_long_options[] = {
{ "reset", 0, NULL, 'r' },
{ 0, 0, 0, 0 }
};
#define OPT_SETCONS_RESET 1
int setconsole_main(int argc, char **argv)
{
int con;
unsigned long flags;
const char *device = "/dev/tty";
bb_applet_long_options = setconsole_long_options;
flags = bb_getopt_ulflags(argc, argv, "r");
if (argc - optind > 1)
bb_show_usage();
if (argc - optind == 1) {
if (flags & OPT_SETCONS_RESET)
bb_show_usage();
device = argv[optind];
} else {
if (flags & OPT_SETCONS_RESET)
device = "/dev/console";
}
if (-1 == (con = open(device, O_RDONLY))) {
bb_perror_msg_and_die("open %s", device);
}
if (-1 == ioctl(con, TIOCCONS)) {
bb_perror_msg_and_die("ioctl TIOCCONS");
}
return EXIT_SUCCESS;
}
/*
Local Variables:
c-file-style: "linux"
c-basic-offset: 4
tab-width: 4
End:
*/

View File

@ -552,6 +552,9 @@
#ifdef CONFIG_SEQ #ifdef CONFIG_SEQ
APPLET(seq, seq_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) APPLET(seq, seq_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
#endif #endif
#ifdef CONFIG_SETCONSOLE
APPLET(setconsole, setconsole_main, _BB_DIR_SBIN, _BB_SUID_NEVER)
#endif
#ifdef CONFIG_SETKEYCODES #ifdef CONFIG_SETKEYCODES
APPLET(setkeycodes, setkeycodes_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) APPLET(setkeycodes, setkeycodes_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER)
#endif #endif

View File

@ -2351,6 +2351,13 @@
"\tFIRST\tLAST\n" \ "\tFIRST\tLAST\n" \
"\tFIRST\tINCREMENT\tLAST" "\tFIRST\tINCREMENT\tLAST"
#define setconsole_trivial_usage \
"[-r|--reset] [DEVICE]"
#define setconsole_full_usage \
"Redirects system console output to DEVICE (default: /dev/tty).\n\n" \
"Options:\n" \
"\t-r\tReset output to /dev/console."
#define setkeycodes_trivial_usage \ #define setkeycodes_trivial_usage \
"SCANCODE KEYCODE ..." "SCANCODE KEYCODE ..."
#define setkeycodes_full_usage \ #define setkeycodes_full_usage \