I think J?rgen mentioned hitting this when he was testing the jumping mouse
issue, and the WOS RE's hit it today on two of their machines testing the
newly built nv_119 images. It looks like it will hit any machine in which
the path to the PS/2 keyboard & mouse reported when walking the devinfo tree
contains "pci" - I don't know if that basically means all PC's or not, but
there's a simple workaround, and possibly a simple fix.
-alan-
-------- Original Message --------
*Synopsis*: non-USB mice and keyboards not usable in Xorg after installing
nvx_119
CR 6861767 changed on Jul 17 2009 by alan.coopersmith at sun.com
=== Field ============ === New Value ============= === Old Value =============
Evaluation New Note
Status 5-Cause Known 3-Accepted
====================== =========================== ===========================
*Change Request ID*: 6861767
*Synopsis*: non-USB mice and keyboards not usable in Xorg after installing
nvx_119
Product: solaris
Category: utility
Subcategory: hal
Type: Defect
Subtype:
Status: 5-Cause Known
Substatus:
Priority: 1-Very High
Introduced In Release:
Introduced In Build:
Keywords:
=== *Description* ============================================================
While testing Nevada 119 on a couple of x86 systems with non-Sun mice and
keyboards,
everything worked fine until after the install was complete and the system
rebooted.
I was able to type in input before the install started, but after the system
rebooted,
the keyboard and mouse were unresponsive. I plugged in a USB Sun mouse and
keyboard
and was able to continue on, but I believe these other devices should still be
supported.
The systems are 'rat', a V60x and 'jetstream-re', a V40z. Here are the devices
hooked up to them:
rat:
Microsoft IntelliMouse 1.1A PS/2 Compatible mouse
IBM keyboard - Model: KB-9910
jetstream-re:
Logitech mouse - Model: M-S48a
Gateway keyboard - Model: G9900H
Attached are the Xorg.0.logs, Xerrors logs, and output from lshal on each
system.
*** (#1 of 2): 2009-07-17 15:03:30 GMT+00:00
This was introduced in snv_119 by 6855537, in which Xorg switched completely
to HAL to discover input devices. Unfortunately, HAL in snv_119 is only
reporting USB mice & keyboards as input devices, and not PS/2 mice and
keyboards.
As can be seen in the following portion of lshal output from these machines,
while HAL recognizes the PS/2 mice & keyboards are there, it is not adding the
info.capabilities property settings of input.mouse and input.keys that
are needed for Xorg to know they are input devices:
udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/keyboard_0_0'
pci.subsys_product_id = 0 (0x0) (int)
pci.subsys_vendor_id = 0 (0x0) (int)
pci.product_id = 0 (0x0) (int)
pci.vendor_id = 0 (0x0) (int)
info.subsystem = 'pci' (string)
info.solaris.driver = 'kb8042' (string)
solaris.devfs_path = '/pci at 0,0/isa at 1f/i8042 at 1,60/keyboard at 0'
(string)
info.product = 'System keyboard' (string)
info.udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/keyboard_0_
0' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60_0' (str
ing)
udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0'
pci.subsys_product_id = 0 (0x0) (int)
pci.subsys_vendor_id = 0 (0x0) (int)
pci.product_id = 0 (0x0) (int)
pci.vendor_id = 0 (0x0) (int)
info.subsystem = 'pci' (string)
info.solaris.driver = 'mouse8042' (string)
solaris.devfs_path = '/pci at 0,0/isa at 1f/i8042 at 1,60/mouse at 1'
(string)
info.product = 'Logitech PS/2-style Mouse' (string)
info.udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0'
(string)
info.parent = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60_0' (str
ing)
*** (#2 of 2): 2009-07-17 18:26:57 GMT+00:00 alan.coopersmith at sun.com
=== *Public Comments* ========================================================
=== *Comments* ===============================================================
Note that the attached lshal outputs were taken after switching from PS/2 to
USB keyboards/mice so that Wendy could login, and won't show the PS/2 state
of the machine.
*** (#1 of 1): 2009-07-17 18:26:57 GMT+00:00 alan.coopersmith at sun.com
=== *Evaluation* =============================================================
This appears to be because of the order in which HAL runs through the device
handlers when walking the devinfo tree - for these devices, the PCI card handler
is being used, since it's ahead of keyboard and mouse in the probe order and
these devices have pci in their device path:
udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/keyboard_0_0'
udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0'
This is why lshal shows PCI vendor & subsystem ids for them in the lshal output.
Moving the generic/unknown pci device handler to after the keyboard & mouse
handlers
causes lshal to show the expected output:
udi =
'/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/keyboard_0_0_logicaldev_input'
input.x11_options.XkbVariant = '' (string)
input.x11_options.XkbLayout = 'us' (string)
input.x11_options.XkbModel = 'sun_type6_usb' (string)
input.x11_driver = 'kbd' (string)
input.x11_options.XkbRules = 'base' (string)
input.originating_device = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_
1_60/keyboard_0_0' (string)
input.device = '/dev/kbd' (string)
info.category = 'input' (string)
info.subsystem = 'input' (string)
info.capabilities = {'input', 'input.keyboard', 'input.keys', 'button'} (strin
g list)
info.solaris.driver = 'kb8042' (string)
solaris.devfs_path = '/pci at 0,0/isa at 1f/i8042 at 1,60/keyboard at 0'
(string)
info.product = 'System keyboard' (string)
info.udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/keyboard_0_
0_logicaldev_input' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60_0' (str
ing)
udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0_logicald
ev_input'
input.x11_driver = 'mouse' (string)
input.originating_device = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_
1_60/mouse_1_0' (string)
input.device = '/dev/mouse' (string)
info.category = 'input' (string)
info.subsystem = 'input' (string)
info.capabilities = {'input', 'input.mouse'} (string list)
info.solaris.driver = 'mouse8042' (string)
solaris.devfs_path = '/pci at 0,0/isa at 1f/i8042 at 1,60/mouse at 1'
(string)
info.product = 'Logitech PS/2-style Mouse' (string)
info.udi = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60/mouse_1_0_l
ogicaldev_input' (string)
info.parent = '/org/freedesktop/Hal/devices/pci_0_0/isa_1f/i8042_1_60_0' (str
ing)
The diffs for this change is simply:
diff --git a/usr/src/cmd/hal/hald/solaris/devinfo.c
b/usr/src/cmd/hal/hald/solaris/devinfo.c
--- a/usr/src/cmd/hal/hald/solaris/devinfo.c
+++ b/usr/src/cmd/hal/hald/solaris/devinfo.c
@@ -136,12 +136,12 @@
&devinfo_floppy_handler,
&devinfo_usb_handler,
&devinfo_ieee1394_handler,
- &devinfo_pci_handler,
&devinfo_lofi_handler,
&devinfo_acpi_handler,
&devinfo_power_button_handler,
&devinfo_keyboard_handler,
&devinfo_mouse_handler,
+ &devinfo_pci_handler,
&devinfo_default_handler,
NULL
};
I'll leave it up to the hal team to determine if this is the best fix, but
certainly "generic pci card" seems more generic than the other devices, and
the list is supposed to put generic devices later than specific ones.
*** (#1 of 1): 2009-07-17 21:28:21 GMT+00:00 alan.coopersmith at sun.com
=== *Suggested Fix* ==========================================================
=== *Workaround* =============================================================
Tell Xorg to not rely exclusively on HAL for finding input devices
by creating an /etc/X11/xorg.conf file that contains:
Section "ServerFlags"
Option "AllowEmptyInput" "False"
EndSection
[Add to existing xorg.conf if you already have one. If you don't have one,
the above three lines are all you need to have - the rest will be taken from
default settings in current Xorg releases.]
*** (#1 of 1): 2009-07-17 18:26:57 GMT+00:00 alan.coopersmith at sun.com
=== *Justification* ==========================================================
PS/2 keyboards & mice need to work, especially for laptop users, since most
laptops use PS/2 for the builtin keyboard & trackpad.
alan.coopersmith at sun.com 2009-07-17 18:26:57 GMT
=== *Additional Details* =====================================================
Targeted Release: solaris_nevada
Commit To Fix In Build:
Fixed In Build:
Integrated In Build:
Verified In Build:
See Also: 6778270, 6855537
Duplicate of:
--
-Alan Coopersmith- alan.coopersmith at sun.com
Sun Microsystems, Inc. - X Window System Engineering