You are not logged in.
Hello Everyone,
I have installed Arch with KDE Plasma 5.23.5 and Linux kernel 5.16 on an HP Envy 15 ep-1020ca. The f8 key, here assigned as a microphone kill-switch, is dysfunctional on Linux -- but not entirely so.
Problem A: The key, when pressed on its own, does nothing.
Problem B: The LED light within the key does not turn on.
Complication 1: the key actually works in conjunction with Shift, Meta, FN, etc. It is only in isolation that the key does nothing.
Complication 2: The other kill-switch, the webcam kill-switch, works out of the box, including its LED.
I don't really know any relevant information for the LED right off the bat, but I can at least provide a good deal of relevant info for problem A
Two entries from
cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab83
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input4
U: Uniq=
H: Handlers=sysrq kbd leds event4
B: PROP=0
B: EV=120013
B: KEY=20000 20 0 0 1500f02100000 3803078f900d401 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7and
I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="HP WMI hotkeys"
P: Phys=wmi/input0
S: Sysfs=/devices/virtual/input/input18
U: Uniq=
H: Handlers=kbd event7
B: PROP=0
B: EV=33
B: KEY=4000000000 0 1000700000000 2102400 0 0
B: MSC=10
B: SW=20Are evidently keyboard related.
For the keyboard:
sudo evtest /dev/input/event4
Event: time 1642292662.134237, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1642292662.134237, -------------- SYN_REPORT ------------
Event: time 1642292662.191780, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1642292662.191780, -------------- SYN_REPORT ------------
Event: time 1642292662.203598, type 4 (EV_MSC), code 4 (MSC_SCAN), value 58
Event: time 1642292662.203598, -------------- SYN_REPORT ------------For the hotkeys:
sudo evtest /dev/input/event7
Event: time 1642292759.584058, type 4 (EV_MSC), code 4 (MSC_SCAN), value 270
Event: time 1642292759.584058, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 1
Event: time 1642292759.584058, -------------- SYN_REPORT ------------
Event: time 1642292759.584064, type 1 (EV_KEY), code 240 (KEY_UNKNOWN), value 0
Event: time 1642292759.584064, -------------- SYN_REPORT ------------sudo libinput debug-events --show-keycodes
event7 KEYBOARD_KEY +0.100s KEY_UNKNOWN (240) pressed
event7 KEYBOARD_KEY +0.100s KEY_UNKNOWN (240) releasedIt looks like f8 on its own is part of the hotkeys input and not the "keyboard" input (one wonders why these would exist separately?)
Moving on:
sudo dmesg -w
[ 6366.969105] atkbd serio0: Unknown key pressed (translated set 2, code 0x82 on isa0060/serio0).
[ 6366.969117] atkbd serio0: Use 'setkeycodes e002 <keycode>' to make it known.
[ 6367.068332] hp_wmi: Unknown key code - 0x270
[ 6367.076286] atkbd serio0: Unknown key released (translated set 2, code 0x82 on isa0060/serio0).
[ 6367.076290] atkbd serio0: Use 'setkeycodes e002 <keycode>' to make it known.This is a little weird that this is talking about translated set 2.Looking under the hood more I can tell you the following
cat /sys/class/input/input18/modalias
input:b0019v0000p0000e0000-e0,1,4,5,k8A,8D,94,99,E0,E1,E2,F0,166,ram4,lsfw5, and
cat /sys/class/input/input18/modalias
input:b0011v0001p0001eAB83-e0, 1,4,11,14,k71,72,73,74,75,76,77,79,7A,7B,7C,7D,7E,7F,80,8A,8C,8E,8F,98,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B7,B8,B9,D4,D9,E0,E1,E2,E3,EC,EE,F0,185,1D1,ram4,l0,1,2,sfwI think I bought my laptop from the Mandela Effect dimension -- I don't think its even possible to buy one anymore, and it seems it was only ever sold in Canada. It isn't even mentioned in the Arch wiki entry about HP. It's closest relative, the Envy 15 ep0020, cannot install any flavor of Linux due to having two NVMe hard-drives installed with no way to toggle RAID AHCI on and off.
All help is very much appreciated!
Offline
Probably similar to this...
https://bbs.archlinux.org/viewtopic.php?id=222318
Offline
Similar, no doubt. The workaround there pseudo-works -- though It still won't get me to the default expected behavior, which is to mute when pressing f8 WITHOUT some additional key.
Offline
https://wiki.archlinux.org/title/Map_sc … o_keycodes
Does
setkeycodes e002 KEY_MUTEget you the desired functionality?
Edit: if the symbol isn't resolved, try
setkeycodes e002 113Last edited by seth (2022-01-24 08:11:03)
Offline
setkeycodes e002 113 sets the key to mute speaker audio, so it's a step in the right direction -- the functionality sought being to mute the microphone input.
Thanks for your reply, seth!
Offline
Ah, sorry.
KEY_MICMUTE should be 248
Offline
Tragically,
setkeycodes e002 248 does nothing ![]()
Offline
Any changes to the evtest results?
Offline
Yes, actually!
sudo evtest sudo evtest /dev/input/event4
Event: time 1643042776.527640, type 4 (EV_MSC), code 4 (MSC_SCAN), value 82
Event: time 1643042776.527640, type 1 (EV_KEY), code 248 (KEY_MICMUTE), value 0
Event: time 1643042776.527640, -------------- SYN_REPORT ------------
Event: time 1643042776.532815, type 4 (EV_MSC), code 4 (MSC_SCAN), value 58
Event: time 1643042776.532815, -------------- SYN_REPORT ------------has changed. There is no change to input 6, the hotkeys.
Offline
So it's only about binding some action there (I guess the key also shows up in xev?)
Google yells https://nikhilwanpal.in/blog/mute-mic-w … f%20choice! at me.
Offline
What I can get out of xev, on the command line (the little window it opens does nothing at all under any circumstances), is:
KeyPress event, serial 44, synthetic NO, window 0x8c00001,
root 0x952, subw 0x0, time 12441209, (-1097,161), root:(2002,297),
state 0x0, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 44, synthetic NO, window 0x8c00001,
root 0x952, subw 0x0, time 12441209, (-1097,161), root:(2002,297),
state 0x0, keycode 248 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: Falsepresuming that I've run the setkeycode command already.
Vis a vis that last link: using the KDE custom shortcuts -- my initial attempt at solution -- doesn't fix the problem because a button press on its own doesn't seem to surface as an input of any kind, so I can't seem to bind it to a script.
Aggravatingly, showkey --scancodes does nothing when the button is pressed even after the setkeycode, though pressing, say, fn +f8 will return something.
Offline
The proper code shows up w/ an event in xev, but it's NoSymbol because the inet layout (the only reference) binds it to 256.
xmodmap -e 'keycode 248 = XF86AudioMicMute'should™ forward the map and allow you to bind the key (if it's not already)
Offline
Problem A solved! I'm guessing this needs to be run in a startup script to stay persistent, since it didn't even need sudo to run.
As ever seth, you are a blessing on this forum.
May I beg your ideas for problem B?
Offline
Can you control it w/ any of "xset led [1-32]"?
Edit: you probably want to set the keycode to 256 (instead of 248 to match the XF86 key in the inet layout) and inform https://github.com/systemd/systemd/issues about the hwdb requirements.
Last edited by seth (2022-01-25 16:18:50)
Offline
Sadly, none of those have any identifiable effects.
Offline
Did you try whether switching the mic on and off (w/ eg. alsamixer) has any impact on the LED?
We'll probably need to have a look at the sound chip,
lspci -kOffline
There's two, one of which is attached to the GPU, itself attached to HDMI.
0000:00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-H HD Audio Controller (rev 11)
Subsystem: Hewlett-Packard Company Device 88cc
Kernel driver in use: sof-audio-pci-intel-tgl
Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
...
0000:01:00.1 Audio device: NVIDIA Corporation Device 228e (rev a1)
Subsystem: Hewlett-Packard Company Device 88cc
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intelpresuming that the mic device is named "Capture", in alsamixer, turning it to zero has no LED effect.
Offline
ls -R /sys/class/sound/ctl-led
lsmod | grep ledEdit:
amixerLast edited by seth (2022-01-25 22:24:41)
Offline
ls -R /sys/class/sound/ctl-led fails because that file/directory doesn't exist. However,
lsmod | grep led
ledtrig_audio 16384 2 snd_hda_codec_generic,snd_sof seems to work fine.
Offline
ledtrig_audio is supposed to activate the led if the proper audio switch is made
cat /proc/asound/card*/codec* | grep Codec # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/sound/hd-audio/models.rst
amixer # for the microphone deviceOffline
cat /proc/asound/card*/codec* | grep Codec
Codec: Nvidia GPU 9f HDMI/DP
Codec: Realtek ALC245
Codec: Intel Tigerlake HDMIand:
amixer
...
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 65536
Front Left: Capture 65536 [100%] [off]
Front Right: Capture 65536 [100%] [off]Offline
That's not (necessarily) the microphone, please post the entire output of "amixer".
ALC245 is unfortunately not listed in the hd-audio/models.rst
Offline
Other output from amixer is -- by inspection and testing, the speakers -- but for completeness:
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 55670 [85%] [on]
Front Right: Playback 55706 [85%] [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 65536
Front Left: Capture 65536 [100%] [off]
Front Right: Capture 65536 [100%] [off]Offline
PA or Pipewire default?
aplay -l"amixer -c <n>" allows you to select the card.
Offline
Both PA and pipewire are present on the system but to my knowledge PA is default, since:
pactl info | grep -i 'server name'
Server Name: pulseaudiowhich would, I think, have mentioned the pipewire plugin to pulse if it were present.
aplay shows that these cards are up to something, when it comes to device numbering.
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 1: HDA Digital (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0I
Card 1 is active; card 0 won't play sound on the internal speakers.
Offline