Help a noob: fan speed control and pwmconfig woes

Hello, everyone.

I’m a new user who has started using Manjaro since a couple months ago in my personal laptop, after using Kubuntu for years at work. My laptop is an Asus ROG laptop, which obviously came with Windows, and I chose Manjaro to fully migrate to Linux now.

While I haven’t had many issues, and the issues I’ve had I’ve been able to resolve on my own, there is the specific problem of the fan speed for which I haven’t been able to find a solution. My laptop is a GL553VE specifically, and its maximum supported fan speed is 5400 RPM, which it was able to reach in Windows, with a manual “fan boost” mode.

In Linux, however, it will just not go over 4800, and there’s no way to force it. Whenever I’m gaming, my GPU goes all the way up to 90ºC because of this, which is very much not ideal. I found this tool on Github (asus-fan-control by dominiksalvet), which has allowed me to automate the fan acceleration as the temperature goes up in a far more successful way than what came adjusted by default, but it does not change the maximum fan speed, which stays at 4800.

I’ve been following the Arch wiki article (archlinux wiki / Fan speed control) on controlling fan speeds, but I haven’t had success. Everything works until I have to use pwmconfig, which fails with an error: /usr/bin/pwmconfig: There are no pwm-capable sensor modules installed. I’ve searched around and I’ve found people who get this error as well, but in their case, it’s usually because sensors-detect is unable to detect their fan. In my case, the fan does show up, which is how I know the speed never passes over 4800.

This is the output of sensors right at this moment:

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +53.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +52.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +55.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +49.0°C  (high = +100.0°C, crit = +100.0°C)

pch_skylake-virtual-0
Adapter: Virtual device
temp1:        +42.5°C  

nvme-pci-0500
Adapter: PCI adapter
Composite:    +45.9°C  (low  = -20.1°C, high = +84.8°C)
                       (crit = +81.8°C)
Sensor 1:     +45.9°C  (low  = -20.1°C, high = +84.8°C)

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +50.0°C  

asus-isa-0000
Adapter: ISA adapter
cpu_fan:     2000 RPM

BAT0-acpi-0
Adapter: ACPI interface
in0:          16.05 V  
curr1:         0.00 A  

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +51.0°C  (crit = +98.0°C)

As you can see, the fan is shown as asus-isa-0000, and it has a cpu_fan property, which updates every time I type sensors, which tells me it’s working.

I don’t want to start doing things I don’t understand that could potentially damage my system (which I know is a real possibility when adjusting fan speed), and it’s the reason I’ve decided to ask for guidance here. But I know I also cannot just start gaming and let my GPU go over 90ºC, because it’ll also get damaged.

Before you ask, yes, I’ve made sure it’s not a dust problem: I’ve taken the laptop apart and I’ve cleaned everything thoroughly, making sure the heatsink has no dust collected, that there’s good airflow. I’ve cleaned the old thermal paste and have applied Arctic MX-5 thermal paste to the CPU and GPU just to be sure. It really is just the insufficient fan speed.

Any ideas of what I can do?

Welcome to the forum! :wave:

Please post your system info as outlined here:

What system information specifically? The output of inxi -Fazy?

and maybe;

mhwd-kernel -li

also refer (the entire article if need be);

https://wiki.archlinux.org/title/fan_speed_control#ASUS_laptops

The problem is I read the documentation, but it’s not working for me. That’s why I came here.

When I input what it says in the article (sudo echo 255 > /sys/devices/platform/asus-nb-wmi/hwmon/hwmon5/pwm1), it throws a “permission denied” error. So I instead try and get around it by using sudo echo 255 | sudo tee /sys/devices/platform/asus-nb-wmi/hwmon/hwmon5/pwm1 but it gives me “permission denied” as well. The rest requires me to use the pwmconfig command, but I stated in the OP that it doesn’t work for me, because pwmconfig thinks I have no devices, even though sensors clearly shows my fan and its current speed.

Using the sudo modprobe asus_fan command doesn’t work either, because it spits out another error: modprobe: ERROR: could not insert 'asus_fan': No such device.

I’m posting the output of inxi -Fazy and mhwd-kernel -li for completion’s sake anyways:
inxi -Fazy:

System:
  Kernel: 5.15.72-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.15-x86_64
    root=UUID=912654c3-ec3e-48f7-8825-4b21e096de59 rw quiet splash
    cryptdevice=UUID=33e77ac7-1665-4704-907c-fb3f954ffb6c:luks-33e77ac7-1665-4704-907c-fb3f954ffb6c
    root=/dev/mapper/luks-33e77ac7-1665-4704-907c-fb3f954ffb6c
    resume=/dev/mapper/luks-132d5efe-2e12-4223-be2d-f16273139409
    udev.log_priority=3
  Desktop: KDE Plasma v: 5.25.5 tk: Qt v: 5.15.6 wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: ASUSTeK product: GL553VE v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: GL553VE v: 1.0 serial: <superuser required>
    UEFI: American Megatrends v: GL553VE.308 date: 04/29/2019
Battery:
  ID-1: BAT0 charge: 24.1 Wh (96.0%) condition: 25.1/48.2 Wh (52.1%)
    volts: 16.3 min: 14.4 model: Simplo SDI ICR18650 type: Li-ion
    serial: <filter> status: charging cycles: 33
CPU:
  Info: model: Intel Core i7-7700HQ bits: 64 type: MT MCP arch: Kaby Lake
    gen: core 7 level: v3 note: check built: 2018 process: Intel 14nm family: 6
    model-id: 0x9E (158) stepping: 9 microcode: 0xF0
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB
    L3: 6 MiB desc: 1x6 MiB
  Speed (MHz): avg: 800 min/max: 800/3800 scaling: driver: intel_pstate
    governor: powersave cores: 1: 800 2: 800 3: 800 4: 800 5: 800 6: 800 7: 800
    8: 800 bogomips: 44817
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: retbleed mitigation: IBRS
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl and seccomp
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: IBRS, IBPB: conditional, RSB filling,
    PBRSB-eIBRS: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel HD Graphics 630 vendor: ASUSTeK driver: i915 v: kernel
    arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: eDP-1
    empty: HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:591b class-ID: 0300
  Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] vendor: ASUSTeK
    driver: nvidia v: 515.76 alternate: nouveau,nvidia_drm non-free: 515.xx+
    status: current (as of 2022-10) arch: Pascal code: GP10x
    process: TSMC 16nm built: 2016-21 pcie: gen: 1 speed: 2.5 GT/s lanes: 16
    link-max: gen: 3 speed: 8 GT/s bus-ID: 01:00.0 chip-ID: 10de:1c8c
    class-ID: 0302
  Device-3: Realtek USB2.0 HD UVC WebCam type: USB driver: uvcvideo
    bus-ID: 1-6:2 chip-ID: 0bda:57f5 class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.4 compositor: kwin_x11 driver: X:
    loaded: modesetting,nvidia unloaded: nouveau alternate: fbdev,nv,vesa
    dri: iris gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: eDP-1 model: LG Display 0x046f built: 2016 res: 1920x1080
    hz: 60 dpi: 142 gamma: 1.2 size: 344x194mm (13.54x7.64") diag: 395mm (15.5")
    ratio: 16:9 modes: 1920x1080
  OpenGL: renderer: Mesa Intel HD Graphics 630 (KBL GT2) v: 4.6 Mesa 22.1.7
    direct render: Yes
Audio:
  Device-1: Intel CM238 HD Audio vendor: ASUSTeK driver: snd_hda_intel
    v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a171 class-ID: 0403
  Sound API: ALSA v: k5.15.72-1-MANJARO running: yes
  Sound Server-1: JACK v: 1.9.21 running: no
  Sound Server-2: PulseAudio v: 16.1 running: yes
  Sound Server-3: PipeWire v: 0.3.58 running: yes
Network:
  Device-1: Intel Wireless 7265 driver: iwlwifi v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:095a class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK driver: r8168 v: 8.050.03-NAPI modules: r8169 pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 03:00.0 chip-ID: 10ec:8168
    class-ID: 0200
  IF: enp3s0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb v: 0.8
    bus-ID: 1-8:3 chip-ID: 8087:0a2a class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Drives:
  Local Storage: total: 1.6 TiB used: 827.56 GiB (50.6%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Toshiba model: N/A
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: 57XA4104 temp: 49.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: HGST (Hitachi) model: HTS721010A9E630
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 7200 serial: <filter> rev: A3J0 scheme: GPT
  ID-3: /dev/sdb maj-min: 8:16 vendor: Western Digital
    model: WDS500G2B0A-00SM50 size: 465.76 GiB block-size: physical: 512 B
    logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 00WD
    scheme: GPT
Partition:
  ID-1: / raw-size: 229.37 GiB size: 224.71 GiB (97.97%) used: 67.81 GiB
    (30.2%) fs: ext4 dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-33e77ac7-1665-4704-907c-fb3f954ffb6c
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 472 KiB
    (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/dm-1 maj-min: 254:1
    mapped: luks-132d5efe-2e12-4223-be2d-f16273139409
Sensors:
  System Temperatures: cpu: 58.0 C pch: 45.5 C mobo: N/A
  Fan Speeds (RPM): cpu: 2100
Info:
  Processes: 271 Uptime: 9m wakeups: 1 Memory: 31.24 GiB used: 2.6 GiB (8.3%)
  Init: systemd v: 251 default: graphical tool: systemctl Compilers:
  gcc: 12.2.0 alt: 11 clang: 14.0.6 Packages: 1477 pm: pacman pkgs: 1454
  libs: 400 tools: pamac,yay pm: flatpak pkgs: 23 Shell: Zsh v: 5.9
  default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.22

mhwd-kernel -li:

Currently running: 5.15.72-1-MANJARO (linux515)
The following kernels are installed in your system:
   * linux515
   * linux519