Comportamiento extraño de las teclas de función Fn en MSI Creator en Ubuntu 23.04

Comportamiento extraño de las teclas de función Fn en MSI Creator en Ubuntu 23.04

Actualmente tengo problemas con las teclas de función de mi MSI Creator 17 B11UG. Ha empeorado cada vez más con cada actualización de Ubuntu (actualmente 23.04) y tengo un interés particular en hacer que la cámara web vuelva a funcionar, ya que aparentemente se quedó atascada en el "estado de hardware deshabilitado". Algunas teclas de función funcionan (silencio, subir/bajar volumen, luz del teclado), algunas dejaron de funcionar después de la actualización, algunas registran errores en dmesg y algunas funcionan pero no se registran en showkey -k. La tabla detallada con una descripción de cómo se comportan actualmente las teclas de función:

Tabla de descripción de problemas de las teclas Fn

ACTUALIZACIÓN:Inicialmente creé una tabla de rebajas, que se veía muy bien en la vista previa, pero por alguna razón se confundió cuando la publiqué, así que creé una imagen en su lugar.

showkey -kdetecta absolutamente los mismos códigos si las teclas de función se presionan solas o junto con la tecla Fn. También verifiqué la configuración del BIOS y no hay ninguna configuración que cambie la forma en que funcionan las teclas Fn.

sudo udevadm info /dev/input/by-path/platform-i8042-serio-0-event-kbdme da esta salida:

P: /devices/platform/i8042/serio0/input/input3/event3
M: event3
R: 3
U: input
D: c 13:67
N: input/event3
L: 0
S: input/by-path/platform-i8042-serio-0-event-kbd
E: DEVPATH=/devices/platform/i8042/serio0/input/input3/event3
E: DEVNAME=/dev/input/event3
E: MAJOR=13
E: MINOR=67
E: SUBSYSTEM=input
E: USEC_INITIALIZED=5374008
E: KEYBOARD_KEY_a0=mute
E: KEYBOARD_KEY_ae=volumedown
E: KEYBOARD_KEY_b0=volumeup
E: KEYBOARD_KEY_b2=www
E: KEYBOARD_KEY_c2=ejectcd
E: KEYBOARD_KEY_df=sleep
E: KEYBOARD_KEY_e2=bluetooth
E: KEYBOARD_KEY_e4=f21
E: KEYBOARD_KEY_ec=email
E: KEYBOARD_KEY_ee=camera
E: KEYBOARD_KEY_f6=wlan
E: KEYBOARD_KEY_f7=brightnessdown
E: KEYBOARD_KEY_f8=brightnessup
E: KEYBOARD_KEY_f9=search
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_BUS=i8042
E: ID_SERIAL=noserial
E: ID_PATH=platform-i8042-serio-0
E: ID_PATH_TAG=platform-i8042-serio-0
E: XKBMODEL=pc105
E: XKBLAYOUT=us,ru
E: XKBVARIANT=,
E: XKBOPTIONS=grp:alt_shift_toggle,lv3:ralt_alt,compose:caps,terminate:ctrl_alt_bksp,grp_led:scroll
E: BACKSPACE=guess
E: LIBINPUT_DEVICE_GROUP=11/1/1:isa0060/serio0
E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-0-event-kbd
E: TAGS=:power-switch:
E: CURRENT_TAGS=:power-switch:

Todos los medios de diagnóstico (consulte la tabla anterior) aparentemente me dan resultados contradictorios, por ejemplo, F8 funciona y cambia las luces del teclado, pero showkeyno registra nada y dmesgregistra un error, algunas teclas generan Unknown event received, algunas Unknown key pressed, algunas ambas.

udevadm infoaparentemente apunta al hecho de que el teclado se identificó incorrectamente (ya que el resultado contiene, E: KEYBOARD_KEY_f9=searchpor ejemplo, y no tengo esa tecla), así que intenté jugar con /lib/udev/hwdb.d:

Yo edité /lib/udev/hwdb.d/90-keyboard-ubuntu.hwdb:

# Dell G16 microphone mute
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnDellG16*:*
 KEYBOARD_KEY_100150=f20

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*pnCreator17B11UG*:*
 KEYBOARD_KEY_ee=camera                                 # Fn+F6 camera disable

Es decir, agregué las dos últimas líneas, todo lo demás estaba ahí antes. Luego apliqué los cambios: systemd-hwdb updatey udevadm trigger --verbose --sysname-match="event*". Después de eso, aparentemente nada cambió en el comportamiento de la tecla F6. También probé algunas otras cosas aleatorias, como cambiar cameraa !camerau otras llaves hexagonales en lugar de KEYBOARD_KEY_ee, pero aparentemente no cambió nada.

Como ni showkey -kme dmesgdio ninguna indicación sobre cuál era el valor hexadecimal real de la tecla F6, intenté sudo evtest:

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:  Lid Switch
/dev/input/event1:  Sleep Button
/dev/input/event10: HDA NVidia HDMI/DP,pcm=7
/dev/input/event11: HDA NVidia HDMI/DP,pcm=8
/dev/input/event12: HDA NVidia HDMI/DP,pcm=9
/dev/input/event13: Video Bus
/dev/input/event14: Video Bus
/dev/input/event15: sof-hda-dsp Mic
/dev/input/event16: sof-hda-dsp Headphone
/dev/input/event17: sof-hda-dsp HDMI/DP,pcm=3
/dev/input/event18: sof-hda-dsp HDMI/DP,pcm=4
/dev/input/event19: sof-hda-dsp HDMI/DP,pcm=5
/dev/input/event2:  Power Button
/dev/input/event3:  AT Translated Set 2 keyboard
/dev/input/event4:  SynPS/2 Synaptics TouchPad
/dev/input/event5:    FX-2
/dev/input/event6:    FX-2 Keyboard
/dev/input/event7:  MSI WMI hotkeys
/dev/input/event8:  gpio-keys
/dev/input/event9:  HDA NVidia HDMI/DP,pcm=3
Select the device event number [0-19]: 7
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0
Input device name: "MSI WMI hotkeys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 148 (KEY_PROG1)
    Event code 149 (KEY_PROG2)
    Event code 224 (KEY_BRIGHTNESSDOWN)
    Event code 225 (KEY_BRIGHTNESSUP)
    Event code 240 (KEY_UNKNOWN)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
^C

Lo reconoció /dev/input/event7: MSI WMI hotkeys, pero en la prueba real, cuando presioné en secuencia todas las teclas de función (con o sin la tecla Fn), no produjo ningún resultado. Sin embargo, funciona con el teclado normal.

Agradecería mucho cualquier consejo sobre cómo investigar más a fondo o incluso cómo solucionar el problema. Como solución alternativa, también me interesarán sus sugerencias sobre cómo puedo habilitar mi cámara web alternativamente (es decir, imitar presionar Fn + F6 de alguna otra manera o tal vez algo parecido).

Respuesta1

Estoy en Creator 17 2020. Ubuntu 22.04:

Cuando hago el sudo evtestcomando, en mi MSI, descubrí que

event7: Teclas de acceso rápido de MSI WMI: no mostrarán códigos de clave

Event4: El teclado AT Translated Set 2 funcionará: le mostrará códigos de teclas

información relacionada