Регулирование оборотов вентилятра RedmiBook 15 2022
Всем привет, хочу регулировать вентиляторы по своему, чтобы они не начинали шуметь при 38 градусов, как это работает через nbfc. Скорость оборотов вентиляторов никак не отображается (pwmconfig не видит, в винде ПО типа AIDA64 так же). Я так понял что придется самому дебажить как происходит управление через Embedded Controller.
Довольно быстро нашел регистры которые отображают текущие обороты (0x9B - 0x9E), но, скорей всего нужно записать еще в какой то регистр что управление нужно внешнее. Брутфорсом я пробовал с 0x00 по 0xAF писать с 0 по 255 и после каждой записи пробовать менять значение в регистре 0x9B и оно каждый раз там сбрасывалось.
Пробовал анализировать DSDT файл, но опыта в этом нет, нашел в структуре по смещению поля где значения вентяторов считывается, это соответсвенно F1HI, F1LO, F2HI, F2LO, но далее по коду нигде больше не упоминается использование этих переменных, так же пробовал искать и соседние названия переменных, толку нет. Могу выложить весь файл, но там 3Mb. Что можно еще попробовать?
OperationRegion(ECF2, SystemMemory, 0xFE0B0400, 0xFF)
Field(ECF2, ByteAcc, Lock, Preserve)
{
, 8,
, 8,
, 8,
Offset(0xF), //Offset(15),
, 1,
, 1,
, 1,
, 1,
, 1,
HKVC, 1,
, 1,
, 1,
EVMR, 8,
EVMN, 8,
EVT1, 8,
EVT2, 8,
HTKS, 8,
HTKE, 8,
, 8,
TSR1, 8,
TSR2, 8,
TSR3, 8,
TSR4, 8,
TSR5, 8,
TSR6, 8,
TSR7, 8,
TSR8, 8,
TSR9, 8,
LSTE, 1,
, 1,
, 1,
FNHK, 1,
, 1,
CRHK, 1,
OCFL, 1,
, 1,
CUMA, 1,
PJID, 1,
STPM, 1,
, 1,
, 4,
, 8,
GSTS, 8,
HKST, 8,
TOCP, 1,
CALK, 1,
NULK, 1,
, 1,
, 1,
WINK, 1,
, 2,
AST1, 8,
, 8,
SMPR, 8,
SMST, 8,
SMAD, 8,
SMCD, 8,
SDAT, 16,
SDA2, 16,
SDA4, 32,
SDA5, 32,
SDA6, 32,
SDA7, 32,
SDA8, 32,
SDA9, 32,
SDAA, 32,
SMCN, 8,
Offset(0x50), //Offset(80),
BS50, 32,
BS54, 32,
BS58, 32,
Offset(0x60), //Offset(96),
ECWR, 8,
PAWT, 8,
Offset(0x64), //Offset(100),
B1DC, 16,
Offset(0x68), //Offset(104),
B1FC, 16,
BTPT, 16,
B1CR, 16,
B1RC, 16,
B1VT, 16,
BALM, 16,
BCYC, 16,
Offset(0x78), //Offset(120),
B1DA, 16,
B1TP, 16,
BRSC, 8,
MIDL, 8,
MIDH, 8,
HIDL, 8,
HIDH, 8,
FWVL, 8,
FWVH, 8,
DAVL, 8,
DAVH, 8,
, 8,
BFUD, 16,
, 8,
, 8,
B1TE, 16,
B1TF, 16,
AWHG, 8,
AWLW, 8, //24 bytes
SMCE, 1,
FWEN, 1,
FUEN, 1,
, 5,
EDCC, 1,
ALSC, 1,
CDMB, 1,
CCSB, 1,
BTSM, 1,
BTCM, 1,
LBTM, 1,
CSBM, 1,
HYMS, 1,
HDME, 1,
HGMF, 1,
SWCS, 1,
, 1,
DCRC, 1,
ALSS, 1,
, 1,
IPEN, 1,
MBBD, 1,
SBBD, 1,
QCFG, 1,
QCEN, 1,
UCSA, 1,
, 1,
, 1,
EDCF, 1,
BTCF, 1,
HSMG, 1,
, 1,
BLEG, 1,
BTMF, 1,
ATOM, 1,
, 1,
PERM, 1,
TEMM, 1,
, 6,
BATM, 8,
BBHL, 8,
BBLP, 8,
BBHM, 8,
KBNL, 8,
F1HI, 8,
F1LO, 8,
F2HI, 8,
F2LO, 8, // Fans!
PABD, 8,
BBRU, 1,
BBRE, 1,
, 6,
, 8,
, 8,
, 1,
, 1,
, 1,
, 1,
, 4,
Offset(0xA8), //Offset(168),
RTC1, 32,
Offset(0xB0), //Offset(176),
RTC1, 128,
BVN1, 128,
Offset(0xE0), //Offset(224),
DGPU, 8,
SSDK, 8,
KBBL, 8,
BPWM, 8,
ITSM, 8,
, 8,
, 8,
ECTP, 8,
, 8,
, 8,
, 8,
Offset(0xF0), //Offset(240),
, 3,
, 1,
, 2,
, 1,
, 1,
}