zeule / asus-ec-sensors

Linux HWMON sensors driver for ASUS motherboards to get sensor readings from the embedded controller
GNU General Public License v2.0
46 stars 21 forks source link

Add MB ROG ZENITH II EXTREME ALPHA #31

Closed 40417256 closed 1 year ago

40417256 commented 1 year ago

Hello,

Could you add the following board to you code ? the diff is below. The following sensors were tested on mine:

asusec-isa-0000 Adapter: ISA adapter CPU Core: 974.00 mV CPU_Opt: 0 RPM VRM HS: 0 RPM Chipset: 3495 RPM Water_Flow: 0 RPM Chipset: +71.0°C
CPU: +47.0°C
Motherboard: +38.0°C
T_Sensor: +30.0°C
VRM: +41.0°C
Water_In: -40.0°C
Water_Out: -40.0°C
Water_Block_In: -40.0°C
Water_Block_Out: -40.0°C
T_sensor_2: +30.0°C
Extra_1: +30.0°C
Extra_2: -40.0°C
Extra_3: -40.0°C
CPU: 4.00 A

Will this eventually get into a kernel? How can I track this?

Thank you,

Eric

420,431d419 < static const struct ec_board_info board_info_zenith_ii_extreme_alpha = { < .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_T_SENSOR | < SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | < SENSOR_FAN_CPU_OPT | SENSOR_FAN_CHIPSET | SENSOR_FAN_VRM_HS | < SENSOR_FAN_WATER_FLOW | SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE | < SENSOR_SET_WATER_BLOCK | < SENSOR_TEMP_T_SENSOR_2 | SENSOR_TEMP_SENSOR_EXTRA_1 | < SENSOR_TEMP_SENSOR_EXTRA_2 | SENSOR_TEMP_SENSOR_EXTRA_3, < .mutex_path = ASUS_HW_ACCESS_MUTEX_SB_PCI0_SBRG_SIO1_MUT0, < .family = family_amd_500_series, < }; < 481,482d468 < DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG ZENITH II EXTREME ALPHA", < &board_info_zenith_ii_extreme_alpha),

zeule commented 1 year ago

Thank you, I will include this board model. Could you share the DSDT ACPI table dump, please? I can submit this the the mainline kernel for you. hwmon-next now targets 6.3, so it should be released with 6.3.

40417256 commented 1 year ago

You are welcome, here is the requested file.

dsdt.zip

zeule commented 1 year ago

Thanks! I'll check the board manual regarding the CPU_Opt fan, but does it really have the VRM HS fan?

40417256 commented 1 year ago

I have checked the CPU_Opt with a real fan and speed is reported correctly, it also has a VRM fan, hover you have to lower the values in QFan to get it starting (0 below 60C).

I also found what could look like a bug in your board definition. I use psensors and realised the chipset fan and temp could not be moved around the GUI. I renamed the label in the code and it is now working.

static const struct ec_sensor_info sensors_family_amd_500[] = { ... 201 EC_SENSOR("Chipset", hwmon_temp, 1, 0x00, 0x3a), 214 EC_SENSOR("Chipset", hwmon_fan, 2, 0x00, 0xb4),

so I changed 214 EC_SENSOR("Chipset_Fan", hwmon_fan, 2, 0x00, 0xb4),

It looks like there is the same code in for the 400 board series, but I cannot test.

zeule commented 1 year ago

I have checked the CPU_Opt with a real fan and speed is reported correctly, it also has a VRM fan, hover you have to lower the values in QFan to get it starting (0 below 60C).

Thank you for clarifying that!

I also found what could look like a bug in your board definition. I use psensors and realised the chipset fan and temp could not be moved around the GUI. I renamed the label in the code and it is now working.

Hmm.. libsensors says nothing about such limitations. hwmon /sys interface does not involve sensor labels at all. I will double check with libsensors, but I doubt duplicated labels are disallowed.

40417256 commented 1 year ago

It is certainly right, however psensor uses labels and there is a bug. The 2 sensors created cannot be moved around in the GUI i.e. if you move one around the second will ¨stick" with it and move too, unfortunately this package seems no more maintained.

sensor label | psensor modified name chipset | chipset temp chipset | chipset fan

When you re order psensor will use the sensor label and not its own modified name, therefore both will move around the GUI together.

zeule commented 1 year ago

Since the sensor set you provided is identical to the one for ROG ZENITH II EXTREME, I used the same definitions. I would appreciate if you test the change before I submit it upstream.

40417256 commented 1 year ago

Hello Eugene,

I am happy to report the change is working. I have one remark though you used in your code the same structure as the ROG ZENITH II EXTREME, pending we find a bug later on or a firmware update, this would impact both boards when fixing the code.

Eric

zeule commented 1 year ago

I am happy to report the change is working.

Thank you! I'll submit it upstream then. Perhaps you want your name (requires full name and email) in the commit message? In that case please drop me (grep -B4 asus-ec-sensors /usr/src/linux/MAINTAINERS) an email .

I have one remark though you used in your code the same structure as the ROG ZENITH II EXTREME, pending we find a bug later on or a firmware update, this would impact both boards when fixing the code.

That's why you copied the definition! I believe the probability of a breaking change from the ASUS side is negligible: they don't change sensor addresses in years and between board generations, and such a change would break their own software. And since we write nothing in EC registres, we should cause no problems in the worst case of the register address change. If you have other concerns, please share.