Bug 39532

Summary: Laptop keyboard stops working when USB keyboard is disconnected
Product: xorg Reporter: momchil
Component: Input/KeyboardAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: momchil
Version: unspecified   
Hardware: Other   
OS: FreeBSD   
Whiteboard: 2011BRB_Reviewed
i915 platform: i915 features:
Attachments:
Description Flags
xorg.conf none

Description momchil 2011-07-25 12:57:41 UTC
Created attachment 49535 [details]
xorg.conf

Hi,

my laptop keyboard stops working when my USB keyboard is disconnected.Here is the scenario:

1) boot the laptop without USB keyboard - laptop keyboard works
2) connect a USB keyboard to the laptop - laptop keyboard works, USB keyboard works
3) disconnect USB keyboard - laptop keyboards does not work
4) reconnect USB keyboard - both work
5) disconnect USB keyboard - laptop keyboards does not work

Here are some log entries:

(II) config/hal: Adding input device product 0x0023
(II) LoadModule: "kbd"
(II) Loading /usr/local/lib/xorg/modules/input/kbd_drv.so
(II) Module kbd: vendor="X.Org Foundation"
        compiled for 1.7.7, module version = 1.5.0
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 7.0
(**) product 0x0023: always reports core events
(**) Option "Protocol" "standard"
(**) product 0x0023: Protocol: standard
(**) Option "XkbRules" "base"
(**) product 0x0023: XkbRules: "base"
(**) Option "XkbModel" "pc105"
(**) product 0x0023: XkbModel: "pc105"
(**) Option "XkbLayout" "us"
(**) product 0x0023: XkbLayout: "us"
(**) Option "CustomKeycodes" "off"
(**) product 0x0023: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "product 0x0023" (type: KEYBOARD)
(II) config/hal: Adding input device AT Keyboard
(**) AT Keyboard: always reports core events
(**) Option "Protocol" "standard"
(**) AT Keyboard: Protocol: standard
(**) Option "XkbRules" "base"
(**) AT Keyboard: XkbRules: "base"
(**) Option "XkbModel" "pc105"
(**) AT Keyboard: XkbModel: "pc105"
(**) Option "XkbLayout" "us"
(**) AT Keyboard: XkbLayout: "us"
(**) Option "CustomKeycodes" "off"
(**) AT Keyboard: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "AT Keyboard" (type: KEYBOARD)

so it is adding both keyboards correctly, but when I disconnect the USB one:

(II) config/hal: removing device product 0x0023
(II) UnloadModule: "kbd"

connecting USB kb again:

(II) config/hal: Adding input device product 0x0023
(**) product 0x0023: always reports core events
(**) Option "Protocol" "standard"
(**) product 0x0023: Protocol: standard
(**) Option "XkbRules" "base"
(**) product 0x0023: XkbRules: "base"
(**) Option "XkbModel" "pc105"
(**) product 0x0023: XkbModel: "pc105"
(**) Option "XkbLayout" "us"
(**) product 0x0023: XkbLayout: "us"
(**) Option "CustomKeycodes" "off"
(**) product 0x0023: CustomKeycodes disabled
(II) XINPUT: Adding extended input device "product 0x0023" (type: KEYBOARD)

disconnecting again:

(II) config/hal: removing device product 0x0023
(II) UnloadModule: "kbd"

so I think that unloading the kbd module when my other keyboard is still present is not the correct behaviour. I will be happy if you could send me a quick fix.

Thank you
Comment 1 momchil 2012-01-22 09:01:00 UTC
here is some more info:

USB keyboard attached
~ % xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ PS/2 Mouse                              	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ AT Keyboard                             	id=6	[slave  keyboard (3)]
    ↳ KEYBOARD                                	id=8	[slave  keyboard (3)]

USB keyboard detached

~ % xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ PS/2 Mouse                              	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ AT Keyboard                             	id=6	[slave  keyboard (3)]

USB keyboard reattached again

~ % xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ PS/2 Mouse                              	id=7	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ AT Keyboard                             	id=6	[slave  keyboard (3)]
    ↳ KEYBOARD                                	id=8	[slave  keyboard (3)]
Comment 2 Adam Jackson 2018-06-12 19:10:40 UTC
Mass closure: This bug has been untouched for more than six years, and is not
obviously still valid. Please reopen this bug or file a new report if you continue to experience issues with current releases.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.