On Thu, Aug 26, 2021 at 12:30:56PM +0200, Marcus MERIGHI wrote: > >Synopsis: t460s hangs with hotplugged external usb keyboard > >Category: > >Environment: > System : OpenBSD 7.0 > Details : OpenBSD 7.0-beta (GENERIC.MP) #195: Mon Aug 23 23:41:21 > MDT 2021 > > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > > Architecture: OpenBSD.amd64 > Machine : amd64 > >Description: > When I hotplug my USB Keyboard the system hangs, the console > gets flooded with: > wskbd2: cannot load keymap, falling back to default > A hard shutdown (power button > 5s) is needed. > Hotplugging the keyboard used to work until recently. > If I plug the keyboard /before/ starting, it works. Therefore > the keyboard ("Cherry USB keyboard") is reported in the dmesg > below and works. > >How-To-Repeat: > Start the notebook and hotplug the keyboard. > >Fix: > None known to me.
Should be solved by the following commit: commit da425875dc1ba65b624bb01a56274feae09bb0a8 Author: anton <[email protected]> Date: Wed Aug 25 05:48:02 2021 +0000 Remove the KB_DEFAULT flag from the wskbd keymap layout. Presence of this flag will cause wskbd to discard the given keymap layout and instead favor the layout of the associated wsmux. This is not a problem while attaching ucc(4) during boot as the wsmux uses the default layout at this point. However, if the layout is changed using /etc/kbdtype from rc(8) during boot, attaching ucc(4) at this point would cause wskbd_attach() to get stuck in an infinite loop: wskbdX: cannot load keymap, falling back to default ... which in turn is caused by ucc(4) only providing a us layout and using anything else in /etc/kbdtype would not work. I missed this as I don't use /etc/kbdtype but cwen@ and Mazzurco Riccardo <mazzurco dot riccardo at protonmail dot com> reported the same problem. diff --git sys/dev/usb/ucc.c sys/dev/usb/ucc.c index cdd5d0f3c07..26f7393e16a 100644 --- sys/dev/usb/ucc.c +++ sys/dev/usb/ucc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ucc.c,v 1.9 2021/08/25 05:47:15 anton Exp $ */ +/* $OpenBSD: ucc.c,v 1.10 2021/08/25 05:48:02 anton Exp $ */ /* * Copyright (c) 2021 Anton Lindqvist <[email protected]> @@ -281,7 +281,7 @@ ucc_attach_wskbd(struct ucc_softc *sc) sc->sc_keydesc[0].map_size = sc->sc_maplen; sc->sc_keydesc[0].map = sc->sc_map; sc->sc_keymap.keydesc = sc->sc_keydesc; - sc->sc_keymap.layout = KB_US | KB_DEFAULT; + sc->sc_keymap.layout = KB_US; sc->sc_wskbddev = config_found(&sc->sc_hdev.sc_dev, &a, wskbddevprint); }
