我目前在 MSI Creator 17 B11UG 上遇到功能鍵問題。每次 Ubuntu 更新(目前為 23.04)時情況都變得越來越糟,我對讓網路攝影機再次工作特別感興趣,因為它顯然只是陷入了「硬體禁用狀態」。一些功能鍵可以工作(靜音、音量增大/減小、鍵盤燈),一些功能鍵在升級後停止工作,一些功能鍵將錯誤記錄到 dmesg 中,還有一些功能鍵可以工作但無法在showkey -k
.詳細表格描述了功能鍵目前的行為方式:
更新:我最初創建了一個 Markdown 表格,預覽時看起來非常漂亮,但在發佈時由於某種原因被打亂,所以我創建了一個圖像。
showkey -k
如果單獨按下功能鍵或與 Fn 鍵一起按下,則偵測到完全相同的代碼。我還檢查了 BIOS 設置,沒有任何設置可以改變 Fn 鍵的工作方式。
sudo udevadm info /dev/input/by-path/platform-i8042-serio-0-event-kbd
給我這個輸出:
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:
所有的診斷手段(見上表)似乎給我矛盾的結果,例如F8工作並改變鍵盤燈,但showkey
沒有記錄任何內容並dmesg
記錄錯誤,一些鍵生成Unknown event received
,一些Unknown key pressed
,一些兩者。
udevadm info
顯然指出了鍵盤被錯誤識別的事實(例如輸出包含E: KEYBOARD_KEY_f9=search
但我沒有該鍵),所以我嘗試擺弄/lib/udev/hwdb.d
:
我編輯/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
也就是說,我添加了最後兩行,其他所有內容都在之前。然後我應用了更改:systemd-hwdb update
和udevadm trigger --verbose --sysname-match="event*"
。此後 F6 鍵的行為似乎沒有任何變化。我還嘗試了一些其他隨機的東西,例如更改camera
為!camera
或其他十六進制鍵而不是KEYBOARD_KEY_ee
,但它似乎沒有任何改變。
由於既showkey -k
沒有dmesg
給我任何關於 F6 鍵的實際十六進位值的指示,我嘗試了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
它識別了/dev/input/event7: MSI WMI hotkeys
,但在實際測試中,當我按順序按下所有功能鍵(帶或不帶 Fn 鍵)時,它沒有產生任何輸出。不過它可以與普通鍵盤配合使用。
我將非常感謝任何有關如何進一步調查甚至如何解決問題的建議。作為一種解決方法,我也會對您關於如何交替啟用網路攝影機的建議感興趣(即以其他方式模仿按 Fn + F6 或類似的方式)。
答案1
我使用的是 Creator 17 2020。
當我sudo evtest
在 MSI 上執行命令時,我發現
event7:MSI WMI 熱鍵 - 不會顯示鍵碼
事件 4:AT Translated Set 2 鍵盤將會成功 - 將向您顯示按鍵代碼