On Thu, Jan 10, 2013 at 08:56:15AM -0800, Kent Fritz wrote:
> On Wed, Jan 9, 2013 at 5:34 PM, Stefan Sperling <[email protected]> wrote:
> > Shot in the dark: Does it not hang if you disable the pms driver
> > via boot -c? See the boot_config(8) man page.
> >
> > The RAMDISK_CD kernel doesn't have pms compiled in, and it might be
> > the next thing pckbd0 is trying to initialise in the GENERIC kernel.
>
> You must have night-vision goggles -- that did the trick. If there's
> anything I can do to help debug this further, let me know. Otherwise,
> I'm happy with the workaround.
Can you please try to find out which protocol probe routine is
responsible for hanging the machine?
There is a table of protocols in /usr/src/sys/dev/pckbc/pms.c.
In -current, it looks like this:
const struct pms_protocol pms_protocols[] = {
/* Generic PS/2 mouse */
{
PMS_STANDARD, 3,
NULL, pms_ioctl_mouse,
pms_sync_mouse,
pms_proc_mouse,
NULL
},
/* Microsoft IntelliMouse */
{
PMS_INTELLI, 4,
pms_enable_intelli,
pms_ioctl_mouse,
pms_sync_mouse,
pms_proc_mouse,
NULL
},
/* Synaptics touchpad */
{
PMS_SYNAPTICS, 6,
pms_enable_synaptics,
pms_ioctl_synaptics,
pms_sync_synaptics,
pms_proc_synaptics,
pms_disable_synaptics
},
/* ALPS touchpad */
{
PMS_ALPS, 6,
pms_enable_alps,
pms_ioctl_alps,
pms_sync_alps,
pms_proc_alps,
NULL
},
#ifdef notyet
/* Elantech touchpad (hardware version 1) */
{
PMS_ELANTECH_V1, 4,
pms_enable_elantech_v1,
pms_ioctl_elantech,
pms_sync_elantech_v1,
pms_proc_elantech_v1,
NULL
},
/* Elantech touchpad (hardware version 2) */
{
PMS_ELANTECH_V2, 6,
pms_enable_elantech_v2,
pms_ioctl_elantech,
pms_sync_elantech_v2,
pms_proc_elantech_v2,
NULL
},
#endif
/* Elantech touchpad (hardware version 3) */
{
PMS_ELANTECH_V3, 6,
pms_enable_elantech_v3,
pms_ioctl_elantech,
pms_sync_elantech_v3,
pms_proc_elantech_v3,
NULL
},
};
Perhaps start by removing the touchpad protocols first, since
they're most likely to be the cause of this problem.
You could comment out all the touchpad protocols like this:
const struct pms_protocol pms_protocols[] = {
/* Generic PS/2 mouse */
{
PMS_STANDARD, 3,
NULL, pms_ioctl_mouse,
pms_sync_mouse,
pms_proc_mouse,
NULL
},
/* Microsoft IntelliMouse */
{
PMS_INTELLI, 4,
pms_enable_intelli,
pms_ioctl_mouse,
pms_sync_mouse,
pms_proc_mouse,
NULL
},
#if 0 <-- add this here
/* Synaptics touchpad */
{
...skipping all the lines in-between...
pms_sync_elantech_v3,
pms_proc_elantech_v3,
NULL
},
#endif <-- add this here
};
If that doesn't hang it, move the #if 0 further down to the next
protocol, and try again.
Note that elantech v1 and elantech v2 are currently disabled
anyway (via #ifdef notyet) because the code hasn't yet been
tested on real hardware. (BTW, in case an eeepc owner is reading
this, you might have such a touchpad, so please try enabling
the v1 and v2 protocols to see if that makes the synaptics
driver attach in X and if the touchpad then works properly).
Once we know which protocol probe routine is causing the
problem we can dig further.