blob: 2ea36f0397c1f3df51ff431e59675fc1d84203ba
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * setlogcons: Send kernel messages to the current console or to console N |
4 | * |
5 | * Copyright (C) 2006 by Jan Kiszka <jan.kiszka@web.de> |
6 | * |
7 | * Based on setlogcons (kbd-1.12) by Andries E. Brouwer |
8 | * |
9 | * Licensed under GPLv2 or later, see file LICENSE in this source tree. |
10 | */ |
11 | //config:config SETLOGCONS |
12 | //config: bool "setlogcons" |
13 | //config: default y |
14 | //config: select PLATFORM_LINUX |
15 | //config: help |
16 | //config: This program redirects the output console of kernel messages. |
17 | |
18 | //applet:IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP)) |
19 | |
20 | //kbuild:lib-$(CONFIG_SETLOGCONS) += setlogcons.o |
21 | |
22 | //usage:#define setlogcons_trivial_usage |
23 | //usage: "[N]" |
24 | //usage:#define setlogcons_full_usage "\n\n" |
25 | //usage: "Redirect the kernel output to console N. Default:0 (current console)" |
26 | |
27 | #include "libbb.h" |
28 | |
29 | int setlogcons_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
30 | int setlogcons_main(int argc UNUSED_PARAM, char **argv) |
31 | { |
32 | struct { |
33 | char fn; |
34 | char subarg; |
35 | } arg = { |
36 | 11, /* redirect kernel messages */ |
37 | 0 /* to specified console (current as default) */ |
38 | }; |
39 | |
40 | if (argv[1]) |
41 | arg.subarg = xatou_range(argv[1], 0, 63); |
42 | |
43 | xioctl(xopen(VC_1, O_RDONLY), TIOCLINUX, &arg); |
44 | |
45 | return EXIT_SUCCESS; |
46 | } |
47 |