From a0f0cb28f42868e1fd73a2abf27ddbf89ee30639 Mon Sep 17 00:00:00 2001 From: hygienic-books Date: Fri, 19 Dec 2025 00:46:16 +0100 Subject: [PATCH] feat(role): Add mainboard Asus PRIME A320I-K --- defaults/main.yml | 3 +++ ...e-it8655e-fans-1-2-3-bound-to-cpu-die-temp | 9 ++++++++ ...796d-s-fans-2-4-5-7-bound-to-cpu-die-temp} | 0 tasks/main.yml | 2 ++ tasks/mainboard-amd-am4-prime_a320i-k.yml | 21 +++++++++++++++++++ tasks/mainboard-amd-am5-b650m-hdv_m.2.yml | 10 ++++----- 6 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 files/etc/fancontrol-ite-it8655e-fans-1-2-3-bound-to-cpu-die-temp rename files/etc/{fancontrol-fans-2-4-5-7-bound-to-cpu-die-temp => fancontrol-nuvoton-nct6796d-s-fans-2-4-5-7-bound-to-cpu-die-temp} (100%) create mode 100644 tasks/mainboard-amd-am4-prime_a320i-k.yml diff --git a/defaults/main.yml b/defaults/main.yml index eb63cc7..966dce0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,6 +5,9 @@ packages_linux_sensors_all_families: packages_linux_sensors_archlinux: - 'lm_sensors' +packages_linux_sensors_archlinux_paru_ite_it8655e: + - 'lm_sensors-it87-git' + packages_linux_sensors_debian: - 'lm-sensors' - 'fancontrol' diff --git a/files/etc/fancontrol-ite-it8655e-fans-1-2-3-bound-to-cpu-die-temp b/files/etc/fancontrol-ite-it8655e-fans-1-2-3-bound-to-cpu-die-temp new file mode 100644 index 0000000..55eec71 --- /dev/null +++ b/files/etc/fancontrol-ite-it8655e-fans-1-2-3-bound-to-cpu-die-temp @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: MIT +INTERVAL=10 +FCTEMPS=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/temp1_input /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/temp1_input /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/temp1_input +FCFANS=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/fan1_input /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/fan2_input /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/fan3_input +MINTEMP=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=70 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=70 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=70 +MAXTEMP=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=90 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=90 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=90 +MINSTART=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=60 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=60 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=60 +MINSTOP=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=60 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=60 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=60 +MINPWM=/sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm1=60 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm2=60 /sys/devices/platform/it87.[[:print:]]*/hwmon/hwmon[[:print:]]*/pwm3=60 diff --git a/files/etc/fancontrol-fans-2-4-5-7-bound-to-cpu-die-temp b/files/etc/fancontrol-nuvoton-nct6796d-s-fans-2-4-5-7-bound-to-cpu-die-temp similarity index 100% rename from files/etc/fancontrol-fans-2-4-5-7-bound-to-cpu-die-temp rename to files/etc/fancontrol-nuvoton-nct6796d-s-fans-2-4-5-7-bound-to-cpu-die-temp diff --git a/tasks/main.yml b/tasks/main.yml index f4658be..de8b85a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,3 +1,5 @@ # SPDX-License-Identifier: MIT - import_tasks: 'mainboard-amd-am5-b650m-hdv_m.2.yml' when: 'ansible_facts[''product_name''] | lower == ''b650m-hdv/m.2''' +- import_tasks: 'mainboard-amd-am4-prime_a320i-k.yml' + when: 'ansible_facts[''board_name''] | lower == ''prime a320i-k''' diff --git a/tasks/mainboard-amd-am4-prime_a320i-k.yml b/tasks/mainboard-amd-am4-prime_a320i-k.yml new file mode 100644 index 0000000..72f1cb2 --- /dev/null +++ b/tasks/mainboard-amd-am4-prime_a320i-k.yml @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: MIT +- name: 'If mainboard is Asus PRIME A320I-K (with ITE IT8655E super I/O chip) and Arch Linux install Arch User Repository (AUR) packages for sensors and fan control' + when: 'ansible_facts[''os_family''] | lower == ''archlinux''' + kewlfft.aur.aur: + name: '{{ packages_linux_sensors_archlinux_paru_ite_it8655e }}' + state: 'present' + become: 'yes' + become_user: 'build' + +- name: 'If mainboard is Asus PRIME A320I-K (with ITE IT8655E super I/O chip) add fan control config' + loop_control: + loop_var: 'file' + index_var: 'i' + label: 'Store ''{{ file.dst }}'' {{ file.purpose_human_readable }}' + loop: + - { src: 'etc/fancontrol-ite-it8655e-fans-1-2-3-bound-to-cpu-die-temp', dst: '/etc/fancontrol', purpose_human_readable: 'to supply sane fan control settings' } + ansible.builtin.copy: + src: '{{ file.src }}' + dest: '{{ file.dst }}' + notify: + - 'Restart fancontrol.service' diff --git a/tasks/mainboard-amd-am5-b650m-hdv_m.2.yml b/tasks/mainboard-amd-am5-b650m-hdv_m.2.yml index 45a23cd..2232e74 100644 --- a/tasks/mainboard-amd-am5-b650m-hdv_m.2.yml +++ b/tasks/mainboard-amd-am5-b650m-hdv_m.2.yml @@ -1,29 +1,29 @@ # SPDX-License-Identifier: MIT -- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S SuperIO chip) and OS is a Linux flavor install Linux-specific packages for sensors and fan control' +- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S super I/O chip) and OS is a Linux flavor install Linux-specific packages for sensors and fan control' when: 'ansible_facts[''system''] | lower == ''linux''' ansible.builtin.package: name: '{{ packages_linux_sensors_all_families }}' state: 'present' -- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S SuperIO chip) and ''os_family'' is ''{{ ansible_facts[''os_family''] | lower }}'' install {{ ansible_facts[''os_family''] | lower }}-specific packages for sensors and fan control' +- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S super I/O chip) and ''os_family'' is ''{{ ansible_facts[''os_family''] | lower }}'' install {{ ansible_facts[''os_family''] | lower }}-specific packages for sensors and fan control' ansible.builtin.package: name: '{{ vars[''packages_linux_sensors_'' + ansible_facts[''os_family''] | lower] }}' state: 'present' -- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S SuperIO chip) add fan control config' +- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S super I/O chip) add fan control config' loop_control: loop_var: 'file' index_var: 'i' label: 'Store ''{{ file.dst }}'' {{ file.purpose_human_readable }}' loop: - - { src: 'etc/fancontrol-fans-2-4-5-7-bound-to-cpu-die-temp', dst: '/etc/fancontrol', purpose_human_readable: 'to supply sane fan control settings' } + - { src: 'etc/fancontrol-nuvoton-nct6796d-s-fans-2-4-5-7-bound-to-cpu-die-temp', dst: '/etc/fancontrol', purpose_human_readable: 'to supply sane fan control settings' } ansible.builtin.copy: src: '{{ file.src }}' dest: '{{ file.dst }}' notify: - 'Restart fancontrol.service' -- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S SuperIO chip) add kernel module config' +- name: 'If mainboard is ASRock B650M-HDV/M.2 (with Nuvoton NCT6796D-S super I/O chip) add kernel module config' loop_control: loop_var: 'file' index_var: 'i'