И все таки, почему не работает этот модуль так как надо на 2.4.28…
Он запускаетя пишет скан коды в лог, но клава не работает как положено.Сканкоды пишет, а в самой системе ниче не нажимается — ПОЧЕМУ?Пусть не выгружается, только заработает.Помогите плиз!!!
#include /* We’re doing kernel work */
#include /* Specifically, a module */
#include
#include
#include
#include
static void got_char(void *scancode)
{
printk(«Scan Code %x %s.\n»,
(int) *((char *) scancode) & 0×7F,
*((char *) scancode) & 0×80 ? «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(0×64);
scancode = inb(0×60);
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»);
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Ну так ты заменил обработчик стандартного драйвера на свой, по-этому и не работает. Есть такой faq linux-kernel-module-how-to, я читал его для версии 2.6, там был подобный пример и было написано, что если вы загрузите подобный модуль, то клава перестанет работать, но вы сможете увидеть что сам модуль работает. Правда я попробовал и у меня и клава работала и модуль, но я подумал что это фича более поздней версии ядра (faq о 2.6.0 был написан), не знаю так ли это.