И все таки, почему не работает этот модуль так как надо на 2.4.28... Он запускаетя пишет скан коды в лог, но клава не работает как положено.Сканкоды пишет, а в самой системе ниче не нажимается - ПОЧЕМУ?Пусть не выгружается, только заработает.Помогите плиз!!! #include <linux/kernel.h> /* We're doing kernel work */ #include <linux/module.h> /* Specifically, a module */ #include <linux/sched.h> #include <linux/tqueue.h> #include <linux/interrupt.h> #include <asm/io.h> static void got_char(void *scancode) { printk("Scan Code %x %s.\n", (int) *((char *) scancode) & 0x7F, *((char *) scancode) & 0x80 ? "Released" : "Pressed"); } irqreturn_t irq_handler(int irq, void *dev_id, struct pt_regs *regs) { static unsigned char scancode; static struct tq_struct task ={ .routine=got_char, .data=&scancode }; unsigned char status; status = inb(0x64); scancode = inb(0x60); queue_task(&task, &tq_immediate); mark_bh(IMMEDIATE_BH); return IRQ_HANDLED; } int init_module() { free_irq(1, NULL); return request_irq(1, /* The number of the keyboard IRQ on PCs */ irq_handler, /* our handler */ SA_SHIRQ, "test_keyboard_irq_handler", NULL); } void cleanup_module() { free_irq(1, NULL); } MODULE_LICENSE("GPL");