Open Kinue72 opened 1 month ago
Thanks!
Do you have similar to photo keyboard layout or regular [ ctrl | fn | win | alt ]
Image took from NotebookCheck
After some investigation, when you hold FN, the keyboard led is the highlight key that supports the function. If swap in EC memory, it swaps the key, but the highlight is wrong. For example, my current FN is actually FN, but when I hold the left WIN key, it highlights but is still functional as a WIN key. The fn key has, but it is actual fn. When I opened MsiCenter in DnSpy, I found that this efi variable might store data for fn swap and power share MsiDCVarData-DD96BAAF-145E-4F56-B1CF-193256298E99
I don't think EFI vars is used as an interface to change settings, at least not directly. But it could be used to apply changes after reboot.
Settings being written to hardware via WMI interface, but EFI vars is like cache, I think
Via WMI interface on WMI2 devices, you can read/write EC RAM values. https://github.com/timschneeb/MsiEcRamEditor
DO NOT TRY TO WRITE ANYTHING TO EC IF YOU NOT 100% SURE WHAT YOU'RE DOING
But it only works for WMI2 devices, which are Intel 11+ gen and AMD 7 gen (only gaming series) CPU based devices
Windows has a way to log WMI requests, which look similar to SQL language SELECT queries. But it's messed. I've used this tool on my WMI1 device, but don't get anything interesting. On WMI2 should be better. https://github.com/Alois-xx/WMIWatcher
If you want to do deep dive into this check #98
All offsets are copy from MsiCenter except the UEFI variable one, maybe it refresh cache or something when reboot?
my current FN is actually FN, but when I hold the left WIN key, it highlights but is still functional as a WIN key
From some laptop videos I've learned that in some devices keyboard controller and EC is different microcontrollers, but for you looks like only RGB controller is separate. So you change settings in EC/KB-controller, but RGB controller do not received that changes and highlight older layout
All offsets are copy from MsiCenter except the UEFI variable one, maybe it refresh cache or something when reboot?
IDK, but on Linux I can't change EFI vars, for changing like boot order and other boot settings. This might work on Windows, but when I last time dumped these vars it was zeroed
But MSI Center also use registry and config files, so it shouldn't have problems with loosing data from this EFI vars
On the latest kernel or soon, you can use lm-sensors
to get a cooler RPM.
So your keyboard seems reporting backlight level, but when you change value in EC nothing happens?
So your keyboard seems reporting backlight level, but when you change value in EC nothing happens?
Yes, I see changed in EC memory but when write nothing happens.
I found that this efi variable might store data for fn swap and power share MsiDCVarData-DD96BAAF-145E-4F56-B1CF-193256298E99
Actually, BIOS may use this variable to communicate with MSI Center about these settings to keep them in sync.
But for me, when I swapped EC-WIN from MSI Center Pro or EC, this setting just vanished from BIOS
Does FN key highlighting works on Linux?
Does FN key highlighting works on Linux?
It works but it desync when I swap fn and win.
How your keyboard is detected? As USB device? Or USB only for backlight control. But if there are any USB devices, it may use SMBUS/I2C interface
How your keyboard is detected? As USB device? Or USB only for backlight control. But if there are any USB devices, it may use SMBUS/I2C interface
IDK, Here is my lsusb
Someone experimented with it in OpenRGB
on similar device https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/2642
Probably on FN-WIN swap something inside MSI Center or its backend triggers SteelSeries driver
Laptop Model
MSI GS66 12UGS
EC firmware version
16V5EMS1.107
EC memory dump
GPU
Intel & Nvidia
Is your keyboard RGB?
Per key RGB
Additional context
Both
rt_temp_address
andbs_fan_speed_address
are valid addresses but need tweak thebase_min
andbase_max
values. Keyboard backlighting control isn't working, it seems to be controlled by Steelseries GG. Also, FN key swap returns opposite values.