Гость Опубликовано 8 июля, 2005 Жалоба Поделиться Опубликовано 8 июля, 2005 В книге The Linux Kernel Module Programming Guide Peter Jay Salzman Ori Pomerantz 2003-04-04 ver 2.4.0 (http://www.tldp.org/LDP/lkmpg/2.4/html/index.html) есть пример модуля котрый перехватывает прерывание клавиатуры(http://www.tldp.org/LDP/lkmpg/2.4/html/x1210.html#AEN1291). Если закоментировать макросы определения версий для ветки 2.0.х, то модуль(intrpt.c) компилируется под ядро 2.4.28. Но при запуске модуля(insmod intrpt.o) система падает Kernel Panic: Aiee, killing interrupt handler! In interrupt handler - not syncing Ведь вроде правильно прерывание захватывется. Меня интересует как правильно подправить модуль чтоб он правильно коректно работал(в лог писал сканкоды) под 2.4.28. void irq_handler(int irq, void *dev_id, struct pt_regs *regs) { ... } /* Initialize the module - register the IRQ handler */ 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); } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.