Message ID | 1344783205-2384-4-git-send-email-dh.herrmann@googlemail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 13/08/12 00:53, David Herrmann wrote: > Fblog displays all kernel log messages on all connected framebuffers. It > replaces fbcon when CONFIG_VT=n is selected. Its main purpose is to debug > boot problems by displaying the whole boot log on the screen. This patch > provides the first dummy module-init/deinit functions. > > As it uses all the font and fb functions I placed it in > drivers/video/console. However, this means that we need to move the check > for CONFIG_VT in Makefile/Kconfig from drivers/video into > drivers/video/console as fblog does not depend on CONFIG_VT. > > Signed-off-by: David Herrmann <dh.herrmann@googlemail.com> Hi David, Couple of comments below. ~Ryan > config VGA_CONSOLE > bool "VGA text console" if EXPERT || !X86 > - depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) > + depends on VT && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) > default y > help > Saying Y here will allow you to use Linux in text mode through a > @@ -45,7 +45,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE > screenfuls of scrollback buffer You could just place all of the CONFIG_VT options inside an if VT and then the new fblog options in the else case rather than modifying all of the (already overly long) depends statements. > +config FBLOG > + tristate "Framebuffer Kernel Log Driver" > + depends on !VT && FB > + default n Default n is not required, all options are default n unless otherwise specified. I don't think you need the dependency on FB either, since this file should only get included if CONFIG_FB is set? > + help > + This driver displays all kernel log messages on all connected > + framebuffers. It is mutually exclusive with CONFIG_FRAMEBUFFER_CONSOLE > + and CONFIG_VT. It was mainly created for debugging purposes when > + CONFIG_VT is not selected but you still want kernel boot messages on > + the screen. Do command line options exist to specify screens to write the debug log to? It might be a useful feature to have. ~Ryan -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Ryan On Mon, Aug 13, 2012 at 1:34 AM, Ryan Mallon <rmallon@gmail.com> wrote: > > config VGA_CONSOLE > > bool "VGA text console" if EXPERT || !X86 > > - depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && > > !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || > > ARCH_INTEGRATOR || ARCH_NETWINDER) > > + depends on VT && !4xx && !8xx && !SPARC && !M68K && !PARISC && > > !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || > > ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) > > default y > > help > > Saying Y here will allow you to use Linux in text mode through a > > @@ -45,7 +45,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE > > screenfuls of scrollback buffer > > You could just place all of the CONFIG_VT options inside an if VT and > then the new fblog options in the else case rather than modifying all of > the (already overly long) depends statements. Indeed, that sounds better. > > +config FBLOG > > + tristate "Framebuffer Kernel Log Driver" > > + depends on !VT && FB > > + default n > > Default n is not required, all options are default n unless otherwise > specified. I don't think you need the dependency on FB either, since > this file should only get included if CONFIG_FB is set? I will remove the default-line, but the FB-dependency is required. The "console/" directory includes also drivers like vgacon which do not depend on FB so it gets always included. > > + help > > + This driver displays all kernel log messages on all connected > > + framebuffers. It is mutually exclusive with > > CONFIG_FRAMEBUFFER_CONSOLE > > + and CONFIG_VT. It was mainly created for debugging purposes when > > + CONFIG_VT is not selected but you still want kernel boot > > messages on > > + the screen. > > Do command line options exist to specify screens to write the debug log > to? It might be a useful feature to have. See patch-7. However, I am not entirely happy with it. I will probably have to rethink the parameters. Thanks for reviewing. I will fix all these in the next series. Regards David -- To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 0217f74..e8fd53d 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -2448,10 +2448,7 @@ source "drivers/video/omap/Kconfig" source "drivers/video/omap2/Kconfig" source "drivers/video/exynos/Kconfig" source "drivers/video/backlight/Kconfig" - -if VT - source "drivers/video/console/Kconfig" -endif +source "drivers/video/console/Kconfig" if FB || SGI_NEWPORT_CONSOLE source "drivers/video/logo/Kconfig" diff --git a/drivers/video/Makefile b/drivers/video/Makefile index ee8dafb..9f8a7f0 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile @@ -11,7 +11,7 @@ fb-y := fbmem.o fbmon.o fbcmap.o fbsysfs.o \ modedb.o fbcvt.o fb-objs := $(fb-y) -obj-$(CONFIG_VT) += console/ +obj-y += console/ obj-$(CONFIG_LOGO) += logo/ obj-y += backlight/ diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index e2c96d0..7374362 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig @@ -6,7 +6,7 @@ menu "Console display driver support" config VGA_CONSOLE bool "VGA text console" if EXPERT || !X86 - depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) + depends on VT && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) default y help Saying Y here will allow you to use Linux in text mode through a @@ -45,7 +45,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE screenfuls of scrollback buffer config MDA_CONSOLE - depends on !M68K && !PARISC && ISA + depends on VT && !M68K && !PARISC && ISA tristate "MDA text console (dual-headed) (EXPERIMENTAL)" ---help--- Say Y here if you have an old MDA or monochrome Hercules graphics @@ -61,14 +61,14 @@ config MDA_CONSOLE config SGI_NEWPORT_CONSOLE tristate "SGI Newport Console support" - depends on SGI_IP22 + depends on VT && SGI_IP22 help Say Y here if you want the console on the Newport aka XL graphics card of your Indy. Most people say Y here. config DUMMY_CONSOLE bool - depends on VGA_CONSOLE!=y || SGI_NEWPORT_CONSOLE!=y + depends on VT && (VGA_CONSOLE!=y || SGI_NEWPORT_CONSOLE!=y) default y config DUMMY_CONSOLE_COLUMNS @@ -89,7 +89,7 @@ config DUMMY_CONSOLE_ROWS config FRAMEBUFFER_CONSOLE tristate "Framebuffer Console support" - depends on FB + depends on VT && FB select CRC32 help Low-level framebuffer-based console driver. @@ -122,16 +122,37 @@ config FRAMEBUFFER_CONSOLE_ROTATION config STI_CONSOLE bool "STI text console" - depends on PARISC + depends on VT && PARISC default y help The STI console is the builtin display/keyboard on HP-PARISC machines. Say Y here to build support for it into your kernel. The alternative is to use your primary serial port as a console. +config FBLOG + tristate "Framebuffer Kernel Log Driver" + depends on !VT && FB + default n + help + This driver displays all kernel log messages on all connected + framebuffers. It is mutually exclusive with CONFIG_FRAMEBUFFER_CONSOLE + and CONFIG_VT. It was mainly created for debugging purposes when + CONFIG_VT is not selected but you still want kernel boot messages on + the screen. + + This driver overwrites all other graphics output on the framebuffer as + long as it is active so the kernel log will always be visible. You + need to disable this driver via sysfs to be able to start another + graphics application. + + If unsure, say N. + + To compile this driver as a module, choose M here: the module will + be called fblog. + config FONTS bool "Select compiled-in fonts" - depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE + depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE || FBLOG help Say Y here if you would like to use fonts other than the default your frame buffer console usually use. @@ -158,7 +179,7 @@ config FONT_8x8 config FONT_8x16 bool "VGA 8x16 font" if FONTS - depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON + depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON || FBLOG default y if !SPARC && !FONTS help This is the "high resolution" font for the VGA frame buffer (the one diff --git a/drivers/video/console/Makefile b/drivers/video/console/Makefile index 9a52226..ec0e155 100644 --- a/drivers/video/console/Makefile +++ b/drivers/video/console/Makefile @@ -20,6 +20,7 @@ font-objs += $(font-objs-y) # Each configuration option enables a list of files. +obj-$(CONFIG_FBLOG) += fblog.o font.o fbdraw.o obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o font.o diff --git a/drivers/video/console/fblog.c b/drivers/video/console/fblog.c new file mode 100644 index 0000000..fb39737 --- /dev/null +++ b/drivers/video/console/fblog.c @@ -0,0 +1,41 @@ +/* + * Framebuffer Kernel Log Driver + * Copyright (c) 2012 David Herrmann <dh.herrmann@googlemail.com> + */ + +/* + * 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. + */ + +/* + * Framebuffer Kernel Log + * This driver prints the kernel log to all connected display devices. It + * replaces CONFIG_VT and cannot run simultaneously with it. It does not provide + * any virtual-terminal, though. It should only be used to get kernel boot + * messages to debug kernel errors. + * Hence, this driver is neither optimized for speed, nor does it provide any + * fancy features like colored text output. + * This driver forcibly writes to the framebuffer while active, therefore, you + * cannot run other graphics applications simultaneously. You need to disable + * all fblog instances before running other graphics applications. + */ + +#include <linux/module.h> + +static int __init fblog_init(void) +{ + return 0; +} + +static void __exit fblog_exit(void) +{ +} + +module_init(fblog_init); +module_exit(fblog_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("David Herrmann <dh.herrmann@googlemail.com>"); +MODULE_DESCRIPTION("Framebuffer Kernel Log Driver");
Fblog displays all kernel log messages on all connected framebuffers. It replaces fbcon when CONFIG_VT=n is selected. Its main purpose is to debug boot problems by displaying the whole boot log on the screen. This patch provides the first dummy module-init/deinit functions. As it uses all the font and fb functions I placed it in drivers/video/console. However, this means that we need to move the check for CONFIG_VT in Makefile/Kconfig from drivers/video into drivers/video/console as fblog does not depend on CONFIG_VT. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com> --- drivers/video/Kconfig | 5 +---- drivers/video/Makefile | 2 +- drivers/video/console/Kconfig | 37 +++++++++++++++++++++++++++++-------- drivers/video/console/Makefile | 1 + drivers/video/console/fblog.c | 41 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 13 deletions(-) create mode 100644 drivers/video/console/fblog.c