Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Mar 2006 18:45:32 +0100
From:      Marius Strobl <marius@alchemy.franken.de>
To:        Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
Cc:        cvs-src@freebsd.org, Scott Long <scottl@samsco.org>, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/dev/kbdmux kbdmux.c
Message-ID:  <20060301184532.A58089@newtrinity.zeist.de>
In-Reply-To: <bb4a86c70602271433g6a546df1iba2bbc9719039640@mail.gmail.com>; from maksim.yevmenkin@gmail.com on Mon, Feb 27, 2006 at 02:33:52PM -0800
References:  <200602252159.k1PLxT8G036312@repoman.freebsd.org> <4400D478.7060707@samsco.org> <bb4a86c70602251443i13879a2cw979596c60b86cd70@mail.gmail.com> <20060227194350.A57612@newtrinity.zeist.de> <bb4a86c70602271433g6a546df1iba2bbc9719039640@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 27, 2006 at 02:33:52PM -0800, Maksim Yevmenkin wrote:
> On 2/27/06, Marius Strobl <marius@alchemy.franken.de> wrote:
> > On Sat, Feb 25, 2006 at 02:43:11PM -0800, Maksim Yevmenkin wrote:
> > > Scott,
> > >
> > > [...]
> > >
> > > > So what do we need to do to get this enabled and running by default and
> > > > get rid of the USB keyboard hack in the loader, as well as make the
> > > > keyboard flags sane and predictable?
> > >
> >
> > <...>
> >
> > >
> > > i think this should do it. any comments?
> > >
> >
> > FYI, in order to make kbdmux(4) work on sparc64 the endian bugs in
> > the keyboard IOCTLs of syscons(4) and probably elsewhere need to
> > be fixed. In order to make it work with Sun RS232 keyboards (sparc64
> 
> could you please point me to the keyboard ioctl with the endian bugs
> you are talking about?

KBADDKBD, KDSETLED, probably some others don't work. E.g. trying to
configure kbdmux(4) for an AT and a USB keyboard with kbdcontrol(1)
on sparc64 I get:
follow# kldload kbdmux
follow# kbdcontrol -a ukbd0 < /dev/kbdmux0
kbd2
    kbdmux0, type:AT 101/102 (2)
WARNING pid 545 (kbdcontrol): ioctl sign-extension ioctl ffffffff80244b44
follow# kbdcontrol -k < /dev/kbdmux0 < /dev/ttyv0
kbd2
    kbdmux0, type:AT 101/102 (2)
kbdcontrol: unable to (un)mux the keyboard: Invalid argument
follow# kbdcontrol -a atkbd0 < /dev/ttyv0
kbd0
    atkbd0, type:AT 101/102 (2)
WARNING pid 547 (kbdcontrol): ioctl sign-extension ioctl ffffffff80244b44
kbdcontrol: unable to (un)mux the keyboard: Operation not supported by device
follow#

I think this is the same type of problem that was fixed for some other
IOCTLs in sys/dev/syscons/syscons.c rev. 1.403.

> 
> > uses AT, Sun RS232 and USB keyboards) kbdmux(4) needs to get rid of
> > the assumption that a slave keyboard driver returns AT keyboard
> > scancodes in K_RAW mode. The latter probably also applies to powerpc
> > once there is support for ADB keyboards.
> 
> imo, that is not just kbdmux(4) assumption. it seems like a more
> general assumption, i.e. ukbd(4), for example, translates usb
> scancodes into at scancodes by default.
> 
> we should make a decision which scancodes keyboard drivers should be
> returning and change kbdmux(4), syscons(4) etc. to support it.
> 

As others already pointed out the USB scancode set probably would be
a good choice for this. Unlike the AT scancode set it at least seems
to support a superset of the keys available on ADB, AT and Sun key-
boards.
Btw., do you know how the NetBSD keyboard multiplexing deals with
this? According to the xorg-server sources they use the respective
native scancodes for all of ADB, AT, USB and Sun keyboards.

> until then, i'm afraid, sun rs232 and powerpc adb keyboard drivers
> will have to translate their own scancodes into at scancodes (just
> like ukbd(4) does).
> 

I think it isn't worth the effort to change sunkbd(4) to translate
to AT scancodes until there's a final decision what scancode set
to use as it also means creating special keyboard rules for XKB to
make the Sun-specific keys work again in X and probably breaks POLA
when users have to change their xorg.conf in a stable branch in
order to make the keyboard work again.
Could you maybe change ukbd(4) to set its keyboard type to KB_101
when compiled with UKBD_EMULATE_ATSCANCODE and kbdmux(4) to only
accept KB_101 keyboard drivers (looks like atkbd(4) with KB_84
keyboards also won't work with kbdmux(4) anyway) as an interim
solution?

Marius

-- 
This mail was scanned by AntiVir Milter.
This product is licensed for non-commercial use.
See www.antivir.de for details.



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