Re:Jak posilat data PS/2 klavesnici?
tropikhajma na seznam.cz
tropikhajma na seznam.cz
Pátek Prosinec 1 15:15:12 CET 2006
> Je v linuxu nejaka moznost, jak poslat data do ps/2 klavesnice?
> Tj. bez nutnosti vlastniho zasahu do jadra?
já jsem to kdysi pro testování udělal vytvořením vlastního jadernýho modulu, pro úsporu místa vynechávám tu hromadu #include
jedinej problém je, že strašně záleží na tom, jak je to implementovaný na motherboardu, některý chipy pouštěj do klávesnice jenom něco
#define KEYBOARD_IRQ 1
#define KBD_STATUS_REG 0x64
#define KBD_CNTL_REG 0x64
#define KBD_DATA_REG 0x60
#define kbd_read_input() inb(KBD_DATA_REG)
#define kbd_read_status() inb(KBD_STATUS_REG)
#define kbd_write_output(val) outb(val, KBD_DATA_REG)
#define kbd_write_command(val) outb(val, KBD_CNTL_REG)
MODULE_DESCRIPTION("My kernel module");
MODULE_AUTHOR("tropikhajma (tropikhajma na seznam.cz)");
MODULE_LICENSE("$LICENSE$");
static int aaa_init_module(void)
{
printk( KERN_DEBUG "Module aaa init\n" );
unsigned char status = inb(KBD_DATA_REG);
printk( KERN_INFO "%c",status);
printk( KERN_INFO "\n");
unsigned char bajt = 0;
while (bajt < 25){
outb(24, KBD_DATA_REG);
msleep(1000);
++bajt;
}
return 0;
}
static void aaa_exit_module(void)
{
printk( KERN_DEBUG "Module aaa exit\n" );
}
module_init(aaa_init_module);
module_exit(aaa_exit_module);
Další informace o konferenci Linux