You are not logged in.
[SOLVED] I have an Acer Nitro 5 AN515-58-50HZ and I want to use nbfc-linux, I think it works by changing the values of the registers of the Embedded Controller but my EC is "locked".
How do I know this?
I dissembled the DSDT (Differentiated System Description Table) of my laptop and this is the result:
OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
Field (ERAM, ByteAcc, Lock, Preserve)
{
Offset (0x5F),
ERBD, 8,
SMPR, 8,
Offset (0x62)
}
And following the guide from How to create a NBFC config and in the Analyze your notebook's DSDT section we can see that the DSDT in the wiki says "NoLock" on the third parameter of the Field() function but mine says "Lock".
Here is the DSDT on the wiki, I am talking about.
// Low Pin Count bus
Device (LPCB)
{
// embedded controller 0
Device (EC0)
{
// EC register map
// OperationRegion (region_name, address_space_type, start_offset, region_size)
OperationRegion (ECRM, EmbeddedControl, 0x00, 0xFF)
Field (ECRM, ByteAcc, NoLock, Preserve)
{
// ...
Offset (0x22),
// name, bits
CRZN, 8, // 0x22: current (thermal) zone
THTA, 8,
HYST, 8,
CRIT, 8,
TEMP, 8, // 0x26: temperature
TENA, 8,
// ...
Offset (0x2E),
FRDC, 8, // 0x2E: fan read duty cycle
FTGC, 8, // 0x2F: fan target (duty) cycle
PLTP, 8,
Offset (0x32),
DTMP, 8,
// ...
}
}
}
And also changing the fan speed percent using
nbfc set -s 100
does not change anything because I cannot hear any signs of the fan ramping up.
Here is the output of the previous command.
Using 'Acer Nitro AN515-51' as model config
Using 'ECSysLinux' as EmbeddedControllerType
Using '/sys/class/hwmon/hwmon6/temp1_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp2_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp3_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp4_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp5_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp6_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp7_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp8_input' as temperature source
Using '/sys/class/hwmon/hwmon6/temp9_input' as temperature source
So, Is their a way for me to be able to control the fan speed? Hopefully without recompiling the DSDT myself.
Last edited by FosRex (2024-01-10 12:29:19)
Offline
[SOLVED] The issue was that we needed to set the value of 0x03 register of the Embedded Controller to 17(Fan Control) or 81(Fan Control + Battery Limit) to be able to control the fan speed. If anyone else is facing this issue then I would suggest to look in to #65, most of the actual development happened after this comment.
Last edited by FosRex (2024-01-10 12:29:39)
Offline