Subject: wsmux inject
To: None <tech-kern@netbsd.org>
From: Iain Hibbert <plunky@rya-online.net>
List: tech-kern
Date: 03/13/2006 22:07:35
Hi,
looking to inject events into wsmux from userland - have opened
"/dev/wsconsctl0" (wsmouse) and "/dev/wsconsctl1" (wskbd) for writing, and
injecting mouse events works fine, but keyboard events are vanishing in
the kernel. After enabling wsmux_debug, I get this:
wsmux_do_ioctl: wsmux1: enter sc=0xc091d100, cmd=80105760
wsmux1: inject
wsmux_do_ioctl: event ignored
which seems to be because
case WSMUXIO_INJECTEVENT:
/* Inject an event, e.g., from moused. */
DPRINTF(("%s: inject\n", sc->sc_base.me_dv.dv_xname));
evar = sc->sc_base.me_evp;
if (evar == NULL) {
/* No event sink, so ignore it. */
DPRINTF(("wsmux_do_ioctl: event ignored\n"));
return (0);
}
So, how can I make this event sink, is it somehow related to wscons
configuration? I have tried a few things but no joy.. relevant parts of
dmesg seem to be:
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
ums0 at uhidev0: 3 buttons and Z dir.
wsmouse1 at ums0 mux 0
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
and X is running on screen 5. I have tried a few variations on the theme
in my kernel config, the relevant parts of which seem to be:
pckbc0 at isa? # pc keyboard controller
pckbd* at pckbc? # PC keyboard
pms* at pckbc? # PS/2 mouse for wsmouse
wsdisplay* at vga? console ? kbdmux 1
wskbd* at pckbd? console ? mux 1
wsmouse* at pms? mux 0
ums* at uhidev? reportid ?
wsmouse* at ums? mux 0
ukbd* at uhidev? reportid ?
wskbd* at ukbd? console ? mux 1
pseudo-device wsmux # mouse & keyboard multiplexor
pseudo-device wsfont
..any clues there?
iain