kbdcontrol: how to get us.iso on ukbd & en.iso on atkbd ?

Maksim Yevmenkin maksim.yevmenkin at gmail.com
Mon Mar 8 21:31:20 UTC 2010


On Mon, Mar 8, 2010 at 9:02 AM, Julian H. Stacey <jhs at berklix.com> wrote:
> Hi hackers@
> Am I missing something obvious, or is a bit more needed in man kbdcontrol ?

possibly the later :)

> What kbdcontrol[s] set an external USB keyboard (only)
> to eg American (or German etc), while leaving internal in English ?

well, it may or may not work, depending on whether you want or don't
want to use both keyboards at the same time

[...]

> su
> kbdcontrol -k /dev/ukbd0 -l de.iso
>        cannot open /dev/ukbd0: Device busy
>        setting keymap: Inappropriate ioctl for device
> kbdcontrol -k /dev/ukbd0 -l de.iso < /dev/console
>        cannot open /dev/ukbd0: Device busy
> kbdcontrol -A  /dev/ukbd0 -k /dev/kbdmux0
>        unable to obtain keyboard information: Inappropriate ioctl for device
>        cannot open /dev/kbdmux0: Device busy
> kbdcontrol -A  /dev/kbdmux0 -k /dev/ukbd0
>        unable to obtain keyboard information: Inappropriate ioctl for device
>        cannot open /dev/ukbd0: Device busy
> kbdcontrol -K < /dev/console
>        kbd1
>                kbdmux0, type:AT 101/102 (2)
> kbdcontrol -a ukbd1 -l uk.iso < /dev/console
>        kbd1
>                kbdmux0, type:AT 101/102 (2)
>        kbdcontrol: unable to (un)mux the keyboard: Invalid argument

well, you should be using keyboard name (not keyboard device node
name) in attach/detach, i.e. something like

% kbdcontrol -A ukbd0 < /dev/ttyv0

to detach ukbd0 from kbdmux. as you have realized, you can not do
anything to a keyboard if kbdmux has control over it. so, you need to
detach keyboard first. because kbdmux is essentially "master" keyboard
if you set keyboard map on kbdmux, it will set the same keyboard map
on all the "slave" keyboards. you might want to try

- detach keyboard from kbdmux

- set map on detached keyboard

- reattach keyboard to kbdmux

kbdmux does not set map on KBADDKBD ioctl(), so, in theory, it *might*
work. also, please keep in mind that kbdmux will always set "slave"
keyboard into K_RAW mode.

thanks,
max


More information about the freebsd-hackers mailing list