Untested stuff, produced as the reply to Jeremy Chadwick, see http://lists.freebsd.org/pipermail/freebsd-current/2008-November/000219.html This patch just sets legacy boot device protocol for the USB keyboard, so it acts as the plain old keyboard, mostly without any fancy stuff like additional controls and so on. Index: sys/dev/usb2/input/ukbd2.c =================================================================== RCS file: /s/cvs/fbsd/src/sys/dev/usb2/input/ukbd2.c,v retrieving revision 1.1 diff -u -r1.1 ukbd2.c --- sys/dev/usb2/input/ukbd2.c 4 Nov 2008 02:31:03 -0000 1.1 +++ sys/dev/usb2/input/ukbd2.c 7 Nov 2008 08:32:41 -0000 @@ -679,6 +679,16 @@ */ KBD_PROBE_DONE(kbd); + /* + * Set boot protocol. + */ + err = usb2_req_set_protocol(sc->sc_udev, &Giant, + sc->sc_iface_index, 0); + if (err != USB_ERR_NORMAL_COMPLETION) { + device_printf(dev, "set protocol failed"); + goto detach; + } + /* ignore if SETIDLE fails, hence it is not crucial */ err = usb2_req_set_idle(sc->sc_udev, &Giant, sc->sc_iface_index, 0, 0);