* [PATCH] Add keyboard blink driver
@ 2007-04-12 15:27 Andi Kleen
2007-04-12 19:10 ` Andrew Morton
2007-04-18 12:11 ` Pavel Machek
0 siblings, 2 replies; 5+ messages in thread
From: Andi Kleen @ 2007-04-12 15:27 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel
Add a blink driver for debugging
Simple driver that blinks the keyboard LEDs when loaded. Useful
for checking that the kernel is still alive or for crashdumping.
The kdump kernel currently typically doesn't give any feedback
on the screen because it often cannot reinitialize the graphics
state. This patch allows it to at least show blinking lights
like panic.
Signed-off-by: Andi Kleen <ak@suse.de>
---
drivers/misc/Kconfig | 9 +++++++++
drivers/misc/Makefile | 1 +
drivers/misc/blink.c | 26 ++++++++++++++++++++++++++
3 files changed, 36 insertions(+)
Index: linux/drivers/misc/Kconfig
===================================================================
--- linux.orig/drivers/misc/Kconfig
+++ linux/drivers/misc/Kconfig
@@ -107,4 +107,13 @@ config MSI_LAPTOP
If you have an MSI S270 laptop, say Y or M here.
+config BLINK
+ tristate "Keyboard blink driver"
+ help
+ Driver that when loaded will blink the keyboard LEDs continuously.
+ This is useful for debugging and for kernels that cannot necessarily
+ output something to the screen like kexec kernels to give the user
+ a visual indication that the kernel is doing something.
+
+
endmenu
Index: linux/drivers/misc/Makefile
===================================================================
--- linux.orig/drivers/misc/Makefile
+++ linux/drivers/misc/Makefile
@@ -11,3 +11,4 @@ obj-$(CONFIG_LKDTM) += lkdtm.o
obj-$(CONFIG_TIFM_CORE) += tifm_core.o
obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
obj-$(CONFIG_SGI_IOC4) += ioc4.o
+obj-$(CONFIG_BLINK) += blink.o
Index: linux/drivers/misc/blink.c
===================================================================
--- /dev/null
+++ linux/drivers/misc/blink.c
@@ -0,0 +1,26 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/timer.h>
+#include <linux/jiffies.h>
+
+static void do_blink(unsigned long data);
+
+static DEFINE_TIMER(blink_timer, do_blink, 0 ,0);
+
+static void do_blink(unsigned long data)
+{
+ static long count;
+ panic_blink(count++);
+ blink_timer.expires = jiffies + msecs_to_jiffies(1);
+ add_timer(&blink_timer);
+}
+
+static int blink_init(void)
+{
+ printk(KERN_INFO "Enabling keyboard blinking\n");
+ do_blink(0);
+ return 0;
+}
+
+module_init(blink_init);
+
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Add keyboard blink driver
2007-04-12 15:27 [PATCH] Add keyboard blink driver Andi Kleen
@ 2007-04-12 19:10 ` Andrew Morton
2007-04-12 19:28 ` Andi Kleen
2007-04-18 12:11 ` Pavel Machek
1 sibling, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2007-04-12 19:10 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel
On Thu, 12 Apr 2007 17:27:27 +0200
Andi Kleen <ak@novell.com> wrote:
> Add a blink driver for debugging
>
> Simple driver that blinks the keyboard LEDs when loaded. Useful
> for checking that the kernel is still alive or for crashdumping.
> The kdump kernel currently typically doesn't give any feedback
> on the screen because it often cannot reinitialize the graphics
> state. This patch allows it to at least show blinking lights
> like panic.
OK..
> --- /dev/null
> +++ linux/drivers/misc/blink.c
> @@ -0,0 +1,26 @@
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/timer.h>
> +#include <linux/jiffies.h>
> +
> +static void do_blink(unsigned long data);
> +
> +static DEFINE_TIMER(blink_timer, do_blink, 0 ,0);
> +
> +static void do_blink(unsigned long data)
> +{
> + static long count;
> + panic_blink(count++);
> + blink_timer.expires = jiffies + msecs_to_jiffies(1);
> + add_timer(&blink_timer);
> +}
> +
> +static int blink_init(void)
> +{
> + printk(KERN_INFO "Enabling keyboard blinking\n");
> + do_blink(0);
> + return 0;
> +}
> +
> +module_init(blink_init);
panic_blink is NULL in lots of setups. `modprobe blink' will be deadly.
I wonder if this facility would be more effective if it were to use
schedule_delayed_work(). That way, we're using more of the kernel and it
will more reliably detect kernel deadness.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Add keyboard blink driver
2007-04-12 19:10 ` Andrew Morton
@ 2007-04-12 19:28 ` Andi Kleen
2007-04-12 19:37 ` Andrew Morton
0 siblings, 1 reply; 5+ messages in thread
From: Andi Kleen @ 2007-04-12 19:28 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Thursday 12 April 2007 21:10:28 Andrew Morton wrote:
> On Thu, 12 Apr 2007 17:27:27 +0200
> Andi Kleen <ak@novell.com> wrote:
>
> > Add a blink driver for debugging
> >
> > Simple driver that blinks the keyboard LEDs when loaded. Useful
> > for checking that the kernel is still alive or for crashdumping.
> > The kdump kernel currently typically doesn't give any feedback
> > on the screen because it often cannot reinitialize the graphics
> > state. This patch allows it to at least show blinking lights
> > like panic.
>
> OK..
>
> > --- /dev/null
> > +++ linux/drivers/misc/blink.c
> > @@ -0,0 +1,26 @@
> > +#include <linux/kernel.h>
> > +#include <linux/module.h>
> > +#include <linux/timer.h>
> > +#include <linux/jiffies.h>
> > +
> > +static void do_blink(unsigned long data);
> > +
> > +static DEFINE_TIMER(blink_timer, do_blink, 0 ,0);
> > +
> > +static void do_blink(unsigned long data)
> > +{
> > + static long count;
> > + panic_blink(count++);
> > + blink_timer.expires = jiffies + msecs_to_jiffies(1);
> > + add_timer(&blink_timer);
> > +}
> > +
> > +static int blink_init(void)
> > +{
> > + printk(KERN_INFO "Enabling keyboard blinking\n");
> > + do_blink(0);
> > + return 0;
> > +}
> > +
> > +module_init(blink_init);
>
> panic_blink is NULL in lots of setups. `modprobe blink' will be deadly.
Oops sorry -- i must somehow have sent an old patch. I had fixed this of course
Ahh, quilt refresh was missing.
See the new patch.
> I wonder if this facility would be more effective if it were to use
> schedule_delayed_work(). That way, we're using more of the kernel and it
> will more reliably detect kernel deadness.
Hmm, maybe
-Andi
Add a blink driver for debugging
Simple driver that blinks the keyboard LEDs when loaded. Useful
for checking that the kernel is still alive or for crashdumping
Signed-off-by: Andi Kleen <ak@suse.de>
---
drivers/misc/Kconfig | 9 +++++++++
drivers/misc/Makefile | 1 +
drivers/misc/blink.c | 26 ++++++++++++++++++++++++++
3 files changed, 36 insertions(+)
Index: linux-2.6.21-rc6-test/drivers/misc/Kconfig
===================================================================
--- linux-2.6.21-rc6-test.orig/drivers/misc/Kconfig
+++ linux-2.6.21-rc6-test/drivers/misc/Kconfig
@@ -122,4 +122,13 @@ config SONY_LAPTOP
Read <file:Documentation/sony-laptop.txt> for more information.
+config BLINK
+ tristate "Keyboard blink driver"
+ help
+ Driver that when loaded will blink the keyboard LEDs continuously.
+ This is useful for debugging and for kernels that cannot necessarily
+ output something to the screen like kexec kernels to give the user
+ a visual indication that the kernel is doing something.
+
+
endmenu
Index: linux-2.6.21-rc6-test/drivers/misc/Makefile
===================================================================
--- linux-2.6.21-rc6-test.orig/drivers/misc/Makefile
+++ linux-2.6.21-rc6-test/drivers/misc/Makefile
@@ -12,3 +12,4 @@ obj-$(CONFIG_TIFM_CORE) += tifm_c
obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
obj-$(CONFIG_SGI_IOC4) += ioc4.o
obj-$(CONFIG_SONY_LAPTOP) += sony-laptop.o
+obj-$(CONFIG_BLINK) += blink.o
Index: linux-2.6.21-rc6-test/drivers/misc/blink.c
===================================================================
--- /dev/null
+++ linux-2.6.21-rc6-test/drivers/misc/blink.c
@@ -0,0 +1,27 @@
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/timer.h>
+#include <linux/jiffies.h>
+
+static void do_blink(unsigned long data);
+
+static DEFINE_TIMER(blink_timer, do_blink, 0 ,0);
+
+static void do_blink(unsigned long data)
+{
+ static long count;
+ if (panic_blink)
+ panic_blink(count++);
+ blink_timer.expires = jiffies + msecs_to_jiffies(1);
+ add_timer(&blink_timer);
+}
+
+static int blink_init(void)
+{
+ printk(KERN_INFO "Enabling keyboard blinking\n");
+ do_blink(0);
+ return 0;
+}
+
+module_init(blink_init);
+
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Add keyboard blink driver
2007-04-12 19:28 ` Andi Kleen
@ 2007-04-12 19:37 ` Andrew Morton
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Morton @ 2007-04-12 19:37 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel
On Thu, 12 Apr 2007 21:28:08 +0200
Andi Kleen <ak@novell.com> wrote:
> > I wonder if this facility would be more effective if it were to use
> > schedule_delayed_work(). That way, we're using more of the kernel and it
> > will more reliably detect kernel deadness.
>
> Hmm, maybe
??
> +static void do_blink(unsigned long data)
> +{
> + static long count;
> + if (panic_blink)
> + panic_blink(count++);
> + blink_timer.expires = jiffies + msecs_to_jiffies(1);
> + add_timer(&blink_timer);
> +}
> +
> +static int blink_init(void)
> +{
> + printk(KERN_INFO "Enabling keyboard blinking\n");
> + do_blink(0);
> + return 0;
> +}
Would it be better to just not start the timer at all if panic_blink==0?
That would improve life rather a lot for people who link this into vmlinux
but don't have i8042.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Add keyboard blink driver
2007-04-12 15:27 [PATCH] Add keyboard blink driver Andi Kleen
2007-04-12 19:10 ` Andrew Morton
@ 2007-04-18 12:11 ` Pavel Machek
1 sibling, 0 replies; 5+ messages in thread
From: Pavel Machek @ 2007-04-18 12:11 UTC (permalink / raw)
To: Andi Kleen; +Cc: akpm, linux-kernel
Hi!
> Add a blink driver for debugging
>
> Simple driver that blinks the keyboard LEDs when loaded. Useful
> for checking that the kernel is still alive or for crashdumping.
For checking if kernel is alive/crashdumping... can user just do
setleds +caps; sleep 1; setleds -caps; ... ? You can even have morse
code :-).
Besides, we now have led support framework in kernel, that can do
blinking by itself etc.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-04-18 12:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-12 15:27 [PATCH] Add keyboard blink driver Andi Kleen
2007-04-12 19:10 ` Andrew Morton
2007-04-12 19:28 ` Andi Kleen
2007-04-12 19:37 ` Andrew Morton
2007-04-18 12:11 ` Pavel Machek
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.