This is a discussion on USB4BSD (USB2): Microsoft 4000 keyboard unusable - FreeBSD ; So this weekend, as a result of some insane disk/controller/ZFS problems I experienced, followed by reproducible kernel wedging when trying to copy data to a USB flash drive, I thought I'd take the plunge and give CURRENT a shot. All ...
So this weekend, as a result of some insane disk/controller/ZFS
problems I experienced, followed by reproducible kernel wedging when
trying to copy data to a USB flash drive, I thought I'd take the plunge
and give CURRENT a shot. All went well, and so I decided to switch
over to the USB2 stack to help test.
Everything built (csup date: 2008/11/06 ~2200 PST) fine, no issues --
until I noticed my USB keyboard didn't function any longer.
During boot0/boot2/loader, the keyboard functions (as expected, re: USB
Legacy option is enabled in my BIOS), and the keyboard LEDs are lit as
expected. The kernel loads, some drivers initialise, and the LEDs go
off. Once the USB2 stack loads, the keyboard LEDs turn back up, but as
stated, no keypresses are registered. I was forced to hook up a PS/2
Situation is the same no matter if I try to enter single-user or not.
Disabling atkbd/atkbdc via hints made no difference (other than killing
my ability to use a real PS/2 keyboard), and disabling kbdmux also made
In multi-user (with kbdmux enabled), I also tried doing what the
last section of kbdcontrol(1) recommended, but I witnessed a series of
errors during open() or ioctl(), and of course the USB keyboard still
did not function.
icarus# kbdcontrol -K < /dev/console
kbdmux0, type:AT 101/102 (2)
icarus# kbdcontrol -a atkbd0 < /dev/kbdmux0
/dev/kbdmux0: Device busy.
icarus# kbdcontrol -a ukbd0 < /dev/kbdmux0
/dev/kbdmux0: Device busy.
icarus# kbdcontrol -k /dev/kbdmux0 < /dev/console
kbdcontrol: cannot open /dev/kbdmux0: Device busy
The keyboard in question is a Microsoft Natural Ergonomic 4000. This
keyboard is known for being a real pain in the ass, since some of the
multimedia keys, and the infamous F-Lock key, are HID-controlled, while
alphanumeric are USB keyboard class controlled. (For sake of example,
Linux has a *huge* web page dedicated to dealing with this keyboard
dmesg and ls -l /dev/u* are below.
Let me know if I can enable something to help debug this; if remote
access is needed (once multi-user is up), I can provide it.
usbus0: 12Mbps Full Speed USB v1.0
ushub0: 2 ports with 2 removable, self powered
usbus1: 12Mbps Full Speed USB v1.0
ushub1: 2 ports with 2 removable, self powered
usbus2: 12Mbps Full Speed USB v1.0
ushub2: 2 ports with 2 removable, self powered
usbus3: 12Mbps Full Speed USB v1.0
ushub3: 2 ports with 2 removable, self powered
usbus4: 480Mbps High Speed USB v2.0
ushub4: 8 ports with 8 removable, self powered
at ata0-master UDMA33
at ata2-master SATA150
at ata3-master SATA300
at ata4-master SATA300
at ata5-master SATA300
SMP: AP CPU #1 Launched!
Trying to mount root from ufs:/dev/ad4s1a
kbd2 at ukbd0
Symlink: uhid0 -> usb0.2.1.16
$ ls -l /dev/u*
crw------- 1 root wheel 0, 87 6 Nov 23:26 /dev/ukbd0
lrwxr-xr-x 1 root wheel 6 6 Nov 23:26 /dev/urandom -> random
crwxrwxrwx 1 root operator 0, 67 6 Nov 23:26 /dev/usb
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
email@example.com mailing list
To unsubscribe, send any mail to "firstname.lastname@example.org"