Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Feb 2013 11:26:08 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-usb@freebsd.org, bug-followup@freebsd.org
Cc:        x11@freebsd.org
Subject:   usb/175731: detaching USB keyboard freezes other USB keyboards
Message-ID:  <201302111126.08104.hselasky@c2i.net>
In-Reply-To: <201302072140.r17Le1MG098491@freefall.freebsd.org>
References:  <201302072140.r17Le1MG098491@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302111126.08104.hselasky>