usb/175731: detaching USB keyboard freezes other USB keyboards
Hans Petter Selasky
hselasky at c2i.net
Mon Feb 11 10:30:01 UTC 2013
The following reply was made to PR usb/175731; it has been noted by GNATS.
From: Hans Petter Selasky <hselasky at c2i.net>
To: freebsd-usb at freebsd.org,
bug-followup at freebsd.org
Cc: x11 at freebsd.org
Subject: usb/175731: detaching USB keyboard freezes other USB keyboards
Date: Mon, 11 Feb 2013 11:26:08 +0100
On Thursday 07 February 2013 22:40:01 Hans Petter Selasky wrote:
> The following reply was made to PR usb/175731; it has been noted by GNATS.
>
Hi,
You should look into HAL and xf86-input-keyboard ports. I don't have time to
debug this currently.
To prevent KBD X11 driver unload by /usr/ports/x11-drivers/xf86-input-keyboard
change this in the source code:
{
- xf86AddInputDriver(&KBD, NULL, 0);
+ xf86AddInputDriver(&KBD, module, 0);
return module;
}
The problem is deeper. When X11 sees that the keyboard is gone it
issues some IOCTLs on /dev/console, like the keyboard MODE and then no more
keys are received. See using ktrace on Xorg. This is a shared device receiving
key-presses for all keyboards as far as I can see and it should only be
programmed once. This is currently not handled.
Inside the file referenced below code is present to set "x11_driver" to "kbd".
Probably changing this will affect the outcome too:
/usr/local/share/hal/fdi/policy/10osvendor/10-x11-input.fdi
How to reproduce:
Plug two USB keyboards using a HAL enabled Xorg server. Unplug one keyboard.
Input from the other keyboard disappears until some other keyboard device is
plugged again!
--HPS
More information about the freebsd-usb
mailing list