dasharo-issues
dasharo-issues copied to clipboard
Microphone mute Fn key doesn't work in Windows
Component
Dasharo firmware
Device
NovaCustom V54 14th Gen, NovaCustom V56 14th Gen
Dasharo version
v0.9.0
Dasharo Tools Suite version
No response
Test case ID
No response
Brief summary
The microphone mute Fn key doesn't work, regardless of the OS
How reproducible
100% reproducible.
How to reproduce
- Open a sound recording application like Audacity.
- Recording the sound while keep talking.
- Try to interrupt the recording with Fn + 4 (microphone mute)
Expected behavior
The microphone gets muted.
Actual behavior
The microphone doesn't mute.
Screenshots
No response
Additional context
If possible, this Fn shortcut may be enabled for:
- NV41 Series (12th Gen only)
- V54x Series (Meteor Lake, all variants)
- V56x Series (Meteor Lake, all variants)
It is not needed for other laptop series.
Solutions you've tried
No response
Added firmware side fix in https://github.com/Dasharo/ec/pull/62/commits/c93707e5bf44d967c10f76c6804a4be3abf2fe81
Need to add a quirk to systemd hwdb, something like this: https://github.com/systemd/systemd/blob/d1b04f47e32bd1012ae2e3e6ac9159702463bf15/hwdb.d/60-keyboard.hwdb#L787
but using the actual micmute scancode that is generated on V5x0Tx. A temporary fix can be added to post-install steps.
Yes, that needs to be done
I've additionally enabled the Fn key for NV41 ADL in https://github.com/Dasharo/ec/pull/63/commits/12d626f3ea1fc16c2ad89d2ec0e560121111d5a4 and added the quirks for NV41 ADL and V5x to systemd in https://github.com/systemd/systemd/pull/34183/commits/40ef5cc669f1d6d9a1854909c4dcd8e68f20f1ea . The combination works as expected now:
I've additionally enabled the Fn key for NV41 ADL in Dasharo/ec@12d626f and added the quirks for NV41 ADL and V5x to systemd in systemd/systemd@40ef5cc . The combination works as expected now [ ... ]
Amazing! Hopefully, the same can easily be done on the V54 Series (-TU and NVIDIA variants), as well as the V56 Series (-TU and NVIDIA variants), while it's being skipped for the other variants.
I will close the issue once it has been integrated in a release.
On the firmware side this is integrated in rc5 for nvidia models. The fix is also implemented for -TU models, but it's not included in any release for those models yet.
On V540TND v0.9.1-rc5 adding the change works https://github.com/Dasharo/dasharo-issues/issues/1006#issuecomment-2344096304
You only need to add the line:
KEYBOARD_KEY_81=f20
to /etc/udev/hwdb.d/60-keyboard.hwdb under evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNX_TND_TNE:*, run udevadm trigger and reboot. Then the mic mute key works perfectly.
Just to clarify, manually adding the line shouldn't be necessary after the next systemd release, which should happen in a week or two. Then, just keeping the OS updated should do it.
Great progress!
Is it also possible to enable this for Windows? It is not working on a V560TND running rc5.
On V540TND v0.9.1-rc7, I could not get the button to work with this fix:
On V540TND v0.9.1-rc5 adding the change works #1006 (comment)
You only need to add the line:
KEYBOARD_KEY_81=f20to
/etc/udev/hwdb.d/60-keyboard.hwdbunderevdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNX_TND_TNE:*, runudevadm triggerand reboot. Then the mic mute key works perfectly.
With or without it, shortcut does not toggle the state.
I think the udev rule might not be correct, but the EC is sending the correct scancode, so it's probably an OS issue
After adding the rule, you have to run:
sudo systemd-hwdb update
sudo udevadm trigger
after doing this, the key is now correctly mapped to KEY_F20. Now re-login to Gnome and the key should work.
To get it working on Windows, we could fork https://github.com/coolstar/croskeyboard4 and rework it to support our keycodes instead
To get it working on Windows, we could fork https://github.com/coolstar/croskeyboard4 and rework it to support our keycodes instead
- Let's do so and add a Post installation step in the docs, just like for Linux.
I assume that this doesn't need any changes on the firmware side, we badly need the initial release.
no, on firmware side there are no changes required. It's purely a Windows driver issue
Ok so let's work on that after the firmware release.
note: It may be possible to use the ACPI Generic Button Device for this
Platform: novacustom V560TU OS: Windows 11
Running binary form one of the more recent workflows windows recognizes Fn+4 as ,,some function key" (for example on 0.9.0 release you could still type 4 in text field even with Fn+4) it is not muting the mic though. I guess this behavior is not firmware related then?
This behavior is because Windows does not recognize the scancode. It might be possible to do some hackery with ACPI Generic Button device to get the key to generate a valid HID event, but that's a bit of a larger project
I've looked at a couple of driverless options for Windows:
- Intel HID Event Filter: Does not support the micmute HID usage
- ACPI Generic Button device: Windows driver only supports GPIO buttons, Linux driver does not support the micmute HID usage, ACPI spec says it should work but in reality it doesn't
We're only left with one option, which is our own Windows driver, specifically a keyboard filter driver. I suppose a good starting point would be Coolstar's croskeyboard driver. I haven't looked into distributing Windows drivers through Windows Update yet, but I believe it's a whole large process that requires payment
I've looked at a couple of driverless options for Windows:
* Intel HID Event Filter: Does not support the micmute HID usage * ACPI Generic Button device: Windows driver only supports GPIO buttons, Linux driver does not support the micmute HID usage, ACPI spec says it should work but in reality it doesn'tWe're only left with one option, which is our own Windows driver, specifically a keyboard filter driver. I suppose a good starting point would be Coolstar's croskeyboard driver. I haven't looked into distributing Windows drivers through Windows Update yet, but I believe it's a whole large process that requires payment
We have decided to postpone this for now and work on this later on.
This issue is still present on novacustom v540tu on v1.0.0-rc2.
This issue is still present on novacustom v560tnd on v1.0.0-rc3
This will be listed as a known issue in v1.0.0.