Dasharo Performance: Custom fan curve
Test cases common documentation
Test setup
- Proceed with the Generic test setup: firmware.
- Proceed with the Generic test setup: OS installer.
- Proceed with the Generic test setup: OS installation.
- Proceed with the Generic test setup: OS boot from disk.
CFC001.001 Custom fan curve silent profile measure (Ubuntu)
Test description
The fan has been configured to follow a custom curve. This test aims to verify that the fan curve is configured correctly in silent profile and the fan spins up and down according to the defined values.
Test configuration data
FIRMWARE
= Dasharo
Test setup
- Proceed with the Test cases common documentation section.
- Install
stress-ng
on the DUT.
Test steps
- Power on the DUT.
- While the DUT is booting, hold the
BIOS_SETUP_KEY
to enter the UEFI Setup Menu. - Enter the
Dasharo System Features
menu using the arrow keys and Enter. - Enter the
Power Management Options
submenu. - Verify that the
Fan profile
field is set toSilent
- if not, using the arrow keys andEnter
, choose theSilent
option. - Press
F10
to save the changes. - If necessary - press
Y
to confirm saving the changes. - Go back to the main menu using the
ESC
key. - Select the
Reset
option to apply the settings and reboot. - Boot into the system.
- Log into the system by using the proper login and password.
-
Open the terminal window and run the following command:
stress-ng --cpu 16 --timeout 30m
-
Open the terminal window and run the following command to get the temperature:
cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/17761776:00/hwmon/hwmon3/temp1_input
The last three digits of the output are the value of the number after the decimal point. Example output
47000
means 47°C. -
In the terminal window run the following command to get the PWM value of the CPU fan:
cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/17761776:00/hwmon/hwmon3/pwm1
-
Repeat steps 13-14 a couple of times.
- Note the results.
Expected result
Keep in mind that the EC firmware is smoothing, i.e. the fans will enter the target speed with a delay.
The algorithm by which the EC calculates the speed is as follows:
- If the temperature is below the first one defined in the curve, set the speed to 0.
- If the temperature is above the last defined curve, set the maximum speed.
- If the temperature is equal to one of the temperatures of the points on the curve, set the speed from that point on the curve
-
If the temperature is between points on the curve:
slope = (right_point_speed - left_point_speed)/right_point_temperature - left_point_temperature) speed = slope*(temperature - left_point_temperature) + left_point_speed
Divide the PWM value by 2.55 to get the percentage to compare.
Example check for 30°C and 70 PWM values:
```text
expected_speed = ((30-25)/(65-0))*(30-0)+25 ≈ 27
actual_speed = 70/2.55 ≈ 27
```
Values expected_speed
and actual_speed
are strongly similar. This means
that the fan control is set correctly.
CFC002.001 Custom fan curve performance profile measure (Ubuntu)
Test description
The fan has been configured to follow a custom curve. This test aims to verify that the fan curve is configured correctly in the performance profile and the fan spins up and down according to the defined values.
Test configuration data
FIRMWARE
= Dasharo
Test setup
- Proceed with the Test cases common documentation section.
- Install
stress-ng
on the DUT.
Test steps
- Power on the DUT.
- While the DUT is booting, hold the
BIOS_SETUP_KEY
to enter the UEFI Setup Menu. - Enter the
Dasharo System Features
menu using the arrow keys and Enter. - Enter the
Power Management Options
submenu. - Verify that the
Fan profile
field is set toPerformance
- if not, using the arrow keys andEnter
, choose thePerformance
option. - Press
F10
to save the changes. - If necessary - press
Y
to confirm saving the changes. - Go back to the main menu using the
ESC
key. - Select the
Reset
option to apply the settings and reboot. - Boot into the system.
- Log into the system by using the proper login and password.
-
Open the terminal window and run the following command:
stress-ng --cpu 16 --timeout 30m
-
Open the terminal window and run the following command to get the temperature:
cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/17761776:00/hwmon/hwmon3/temp1_input
The last three digits of the output are the value of the number after the decimal point. Example output
47000
means 47°C. -
In the terminal window run the following command to get the PWM value of the CPU fan:
cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/17761776:00/hwmon/hwmon3/pwm1
-
Repeat steps 13-14 a couple of times.
- Note the results.
Expected result
Keep in mind that the EC firmware is smoothing, i.e. the fans will enter the target speed with a delay.
The algorithm by which the EC calculates the speed is as follows:
- If the temperature is below the first one defined in the curve, set the speed to 0.
- If the temperature is above the last defined curve, set the maximum speed.
- If the temperature is equal to one of the temperatures of the points on the curve, set the speed from that point on the curve
-
If the temperature is between points on the curve:
slope = (right_point_speed - left_point_speed)/right_point_temperature - left_point_temperature) speed = slope*(temperature - left_point_temperature) + left_point_speed
Divide the PWM value by 2.55 to get the percentage to compare.
Example check for 30°C and 79 PWM values:
```text
expected_speed = ((35-25)/(55-0))*(35-0)+25 ≈ 31
actual_speed = 79/2.55 ≈ 31
```
Values expected_speed
and actual_speed
are strongly similar. This means
that the fan control is set correctly.