Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c	(revision ff685c93ca4666ba47a3b747bd9da4268cc5aa47)
+++ kernel/arch/ia32/src/ia32.c	(revision 3014e2b2dbd2a91eca5a7cd089b6f4e0352ffda0)
@@ -45,5 +45,6 @@
 #include <genarch/drivers/ega/ega.h>
 #include <arch/drivers/vesa.h>
-#include <genarch/kbd/i8042.h>
+#include <genarch/drivers/i8042/i8042.h>
+#include <genarch/kbrd/kbrd.h>
 #include <arch/drivers/i8254.h>
 #include <arch/drivers/i8259.h>
@@ -148,6 +149,13 @@
 {
 	devno_t devno = device_assign_devno();
-	/* keyboard controller */
-	(void) i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD);
+
+	/*
+	 * Initialize the keyboard module and conect it to stdin. Then
+	 * initialize the i8042 controller and connect it to kbrdin. Enable
+	 * keyboard interrupts.
+	 */
+	kbrd_init(stdin);
+	(void) i8042_init((i8042_t *) I8042_BASE, devno, IRQ_KBD, &kbrdin);
+	trap_virtual_enable_irqs(1 << IRQ_KBD);
 
 	/*
