Всем привет, хочу регулировать вентиляторы по своему, чтобы они не начинали шуметь при 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,
}