I recently installed EOS on a laptop, which I don’t seem to have fan control over as I did some time ago with my desktop install . I understand that laptop drivers could be difficult, but I’m willing to give it a try.
I’m wondering what packages that aren’t already on the base drivers could I need for this installation not exclusively for fan control although it’s now my main focus and, if possible, for a method to know for any installation that may come in the future.
This time, I think I come a little better prepared with a hw-probe that will hopefully help pinpoint what I need and what’s not already included.
Also the outputs from sensors and sensors-detect, for what they’re worth:
outputs
vandraren@BLITZ ~
❯ sudo sensors-detect
[..]
Driver `coretemp':
* Chip `Intel digital thermal sensor' (confidence: 9)
vandraren@BLITZ ~
❯ sensors
ucsi_source_psy_USBC000:003-isa-0000
Adapter: ISA adapter
in0: 0.00 V (min = +0.00 V, max = +0.00 V)
curr1: 0.00 A (max = +0.00 A)
ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0: 0.00 V (min = +0.00 V, max = +0.00 V)
curr1: 0.00 A (max = +0.00 A)
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +25.0°C
BAT0-acpi-0
Adapter: ACPI interface
in0: 16.95 V
power1: 11.42 W
acpi_fan-isa-0000
Adapter: ISA adapter
fan1: N/A
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +43.0°C (high = +110.0°C, crit = +110.0°C)
Core 0: +37.0°C (high = +110.0°C, crit = +110.0°C)
Core 1: +37.0°C (high = +110.0°C, crit = +110.0°C)
Core 2: +37.0°C (high = +110.0°C, crit = +110.0°C)
Core 3: +37.0°C (high = +110.0°C, crit = +110.0°C)
Core 4: +37.0°C (high = +110.0°C, crit = +110.0°C)
Core 5: +39.0°C (high = +110.0°C, crit = +110.0°C)
Core 6: +38.0°C (high = +110.0°C, crit = +110.0°C)
Core 7: +38.0°C (high = +110.0°C, crit = +110.0°C)
Core 8: +38.0°C (high = +110.0°C, crit = +110.0°C)
Core 12: +38.0°C (high = +110.0°C, crit = +110.0°C)
Core 16: +37.0°C (high = +110.0°C, crit = +110.0°C)
Core 20: +36.0°C (high = +110.0°C, crit = +110.0°C)
Core 24: +38.0°C (high = +110.0°C, crit = +110.0°C)
Core 28: +36.0°C (high = +110.0°C, crit = +110.0°C)
Core 32: +41.0°C (high = +110.0°C, crit = +110.0°C)
Core 33: +41.0°C (high = +110.0°C, crit = +110.0°C)
ucsi_source_psy_USBC000:002-isa-0000
Adapter: ISA adapter
in0: 0.00 V (min = +0.00 V, max = +0.00 V)
curr1: 0.00 A (max = +0.00 A)
nvme-pci-0100
Adapter: PCI adapter
Composite: +37.9°C (low = -0.1°C, high = +85.8°C)
(crit = +86.8°C)
Sensor 1: +31.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +31.9°C (low = -273.1°C, high = +65261.8°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +32.0°C
acpi_fan-isa-0000
Adapter: ISA adapter
fan1: 0 RPM
Bink
March 18, 2026, 10:37pm
2
Sometimes there are hardware specific kernels, drivers or tools that can be installed. Might you share some details @Vandraren ?
inxi -SMGsxx --za
vandraren@BLITZ ~
❯ inxi -SMGsxx --za
System:
Kernel: 6.19.8-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
Desktop: KDE Plasma v: 6.6.3 tk: Qt v: N/A wm: kwin_wayland dm: SDDM
Distro: EndeavourOS base: Arch Linux
Machine:
Type: Laptop System: LG product: 15Z90ST-G.AD89B v: 0.1
serial: <superuser required> Chassis: type: 10 v: 0.1
serial: <superuser required>
Mobo: LG model: 15Z90ST v: FAB1 serial: <superuser required> part-nu: EVO
Firmware: UEFI vendor: Phoenix v: M3ZI0450 X64 date: 06/10/2024
Graphics:
Device-1: Intel Meteor Lake-P [Intel Arc Graphics] vendor: LG driver: i915
v: kernel arch: Xe-LPG ports: active: eDP-1 empty: DP-1,DP-2,DP-3
bus-ID: 00:02.0 chip-ID: 8086:7d55
Device-2: Luxvisions Innotech LGE Camera driver: uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 3-2:2 chip-ID: 30c9:005c
Display: wayland server: X.org v: 1.21.1.21 with: Xwayland v: 24.1.9
compositor: kwin_wayland driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
Monitor-1: eDP-1 model: Samsung 0x41ad res: 1920x1080 hz: 60 dpi: 142
diag: 395mm (15.5")
API: EGL v: 1.5 platforms: device: 0 drv: iris device: 1 drv: swrast gbm:
drv: iris surfaceless: drv: iris wayland: drv: iris x11: drv: iris
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 26.0.2-arch1.1
glx-v: 1.4 direct-render: yes renderer: Mesa Intel Arc Graphics (MTL)
device-ID: 8086:7d55 display-ID: :1.0
API: Vulkan v: 1.4.341 surfaces: N/A device: 0 type: integrated-gpu
driver: mesa intel device-ID: 8086:7d55
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Sensors:
System Temperatures: cpu: N/A mobo: N/A
Fan Speeds (rpm): cpu: 0
vandraren@BLITZ ~
❯ inxi -Fazy
System:
Kernel: 6.19.8-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
clocksource: tsc avail: acpi_pm
parameters: initrd=\8705289d9cdd44a594ee655d0915e5f7\6.19.8-arch1-1\initrd
nvme_load=YES nowatchdog rw rootflags=subvol=/@
root=UUID=cafb49a4-dc74-4c9a-be58-9159cf0d7269
systemd.machine_id=8705289d9cdd44a594ee655d0915e5f7
Desktop: KDE Plasma v: 6.6.3 tk: Qt v: N/A info: frameworks v: 6.24.0
wm: kwin_wayland vt: 1 dm: SDDM Distro: EndeavourOS base: Arch Linux
Machine:
Type: Laptop System: LG product: 15Z90ST-G.AD89B v: 0.1
serial: <superuser required> Chassis: type: 10 v: 0.1
serial: <superuser required>
Mobo: LG model: 15Z90ST v: FAB1 serial: <superuser required> part-nu: EVO
uuid: <superuser required> Firmware: UEFI vendor: Phoenix v: M3ZI0450 X64
date: 06/10/2024
Battery:
ID-1: BAT0 charge: 49.1 Wh (85.6%) condition: 57.4/60 Wh (95.6%)
power: 12.2 W volts: 16.63 min: 15.52 model: LG LGES LG type: Li-ion
serial: <filter> charging: status: discharging control: start: N/A
end: 100% cycles: 184
CPU:
Info: model: Intel Core Ultra 7 155H bits: 64 type: MST AMCP
arch: Meteor Lake level: v3 note: check built: 2023+ process: Intel 4 (7nm)
family: 6 model-id: 0xAA (170) stepping: 4 microcode: 0x28
Topology: cpus: 1x dies: 1 clusters: 9 cores: 16 threads: 22 mt: 6 tpc: 2
st: 10 smt: enabled cache: L1: 1.6 MiB desc: d-10x32 KiB, 6x48 KiB; i-16x64
KiB L2: 18 MiB desc: 9x2 MiB L3: 24 MiB desc: 1x24 MiB
Speed (MHz): avg: 400 min/max: 400/4500:4800:3800:2500 scaling:
driver: intel_pstate governor: powersave cores: 1: 400 2: 400 3: 400 4: 400
5: 400 6: 400 7: 400 8: 400 9: 400 10: 400 11: 400 12: 400 13: 400 14: 400
15: 400 16: 400 17: 400 18: 400 19: 400 20: 400 21: 400 22: 400
bogomips: 131788
Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities:
Type: gather_data_sampling status: Not affected
Type: ghostwrite status: Not affected
Type: indirect_target_selection status: Not affected
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: mmio_stale_data status: Not affected
Type: old_microcode status: Not affected
Type: reg_file_data_sampling status: Not affected
Type: retbleed status: Not affected
Type: spec_rstack_overflow status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: Enhanced / Automatic IBRS; IBPB: conditional;
PBRSB-eIBRS: Not affected; BHI: BHI_DIS_S
Type: srbds status: Not affected
Type: tsa status: Not affected
Type: tsx_async_abort status: Not affected
Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
Device-1: Intel Meteor Lake-P [Intel Arc Graphics] vendor: LG driver: i915
v: kernel alternate: xe arch: Xe-LPG process: Intel 4 (7nm+) built: 2023+
ports: active: eDP-1 empty: DP-1,DP-2,DP-3 bus-ID: 00:02.0
chip-ID: 8086:7d55 class-ID: 0300
Device-2: Luxvisions Innotech LGE Camera driver: uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2:2 chip-ID: 30c9:005c
class-ID: fe01 serial: <filter>
Display: wayland server: X.org v: 1.21.1.21 with: Xwayland v: 24.1.9
compositor: kwin_wayland driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
Monitor-1: eDP-1 model: Samsung 0x41ad built: 2023 res: mode: 1920x1080
hz: 60 scale: 100% (1) dpi: 142 gamma: 1.2 size: 344x194mm (13.54x7.64")
diag: 395mm (15.5") ratio: 16:9 modes: 1920x1080
API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
drv: iris x11: drv: iris
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 26.0.2-arch1.1
glx-v: 1.4 direct-render: yes renderer: Mesa Intel Arc Graphics (MTL)
device-ID: 8086:7d55 memory: 30.13 GiB unified: yes display-ID: :1.0
API: Vulkan v: 1.4.341 layers: 6 device: 0 type: integrated-gpu name: Intel
Arc Graphics (MTL) driver: mesa intel v: 26.0.2-arch1.1
device-ID: 8086:7d55 surfaces: N/A
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Intel Meteor Lake-P HD Audio vendor: LG
driver: sof-audio-pci-intel-mtl
alternate: snd_sof_pci_intel_mtl,snd_hda_intel bus-ID: 00:1f.3
chip-ID: 8086:7e28 class-ID: 0401
API: ALSA v: k6.19.8-arch1-1 status: kernel-api
tools: alsactl,alsamixer,amixer
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 1.6.2 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Meteor Lake PCH CNVi WiFi driver: iwlwifi v: kernel
bus-ID: 00:14.3 chip-ID: 8086:7e40 class-ID: 0280
IF: wlan0 state: up mac: <filter>
Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
Device-1: Intel AX211 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-10:3 chip-ID: 8087:0033
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.4
lmp-v: 13 status: discoverable: no pairing: no class-ID: 6c010c
Drives:
Local Storage: total: 953.87 GiB used: 167.2 GiB (17.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: SK Hynix model: HFS001TEJ9X101N
size: 953.87 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 51000A20 temp: 34.9 C
scheme: GPT
Partition:
ID-1: / raw-size: 951.87 GiB size: 951.87 GiB (100.00%)
used: 167.07 GiB (17.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /home raw-size: 951.87 GiB size: 951.87 GiB (100.00%)
used: 167.07 GiB (17.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-3: /var/log raw-size: 951.87 GiB size: 951.87 GiB (100.00%)
used: 167.07 GiB (17.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
compressor: zstd max-pool: 20%
ID-1: swap-1 type: file size: 512 MiB used: 0 KiB (0.0%) priority: -1
file: /swap/swapfile
Sensors:
System Temperatures: cpu: N/A mobo: N/A
Fan Speeds (rpm): cpu: 0
Info:
Memory: total: 32 GiB note: est. available: 30.85 GiB used: 3.26 GiB (10.6%)
Processes: 422 Power: uptime: 2m states: freeze,mem,disk suspend: s2idle
wakeups: 0 hibernate: platform avail: shutdown, reboot, suspend, test_resume
image: 12.29 GiB services: org_kde_powerdevil, power-profiles-daemon,
upowerd Init: systemd v: 259 default: graphical tool: systemctl
Packages: 1222 pm: pacman pkgs: 1213 libs: 334 tools: yay pm: flatpak
pkgs: 9 Compilers: gcc: 15.2.1 Shell: Bash v: 5.3.9 running-in: konsole
inxi: 3.3.40
most of the functionalities there are already working and I don’t see a specific mention to fan control, so I don’t think there is much point. Not a fan of downloading outside of a repository either.
So all I can do should be already doable?
check archwiki about sensors there are some Motherboards need extra modules/drivers
There is the lgfanmode.sh which would trigger silent fan mode.
As this is just a shell script and no binary, it’s not that critical.
I does relate to lg-laptop extra features which are already part of the kernel drivers.
I can’t tell for sure, but as there is this fan already detected:
acpi_fan-isa-0000
Adapter: ISA adapter
fan1: 0 RPM
You could check the output of cat /sys/devices/platform/lg-laptop/fan_mode which should return 0 for optimal 1 for silent and 2 for performance mode of the fan.
echo 2 > /sys/devices/platform/lg-laptop/fan_mode would change it to performance mode respectively. And this is more or less the same principle the shell script lgfanmode.sh is doing, but it would only switch between silent and optimal mode of the fan settings.
Also note that you should be able to access advanced bios settings via CTRL+ALT+SHIFT+F7. Which you may want to check for the individual fan curve settings which are associated with the individual modes.
But I can’t tell how reliable that would be, just referring it here, as found here .
That fan is indeed detected, but it doesn’t appear as a control for whatever reason. /sys/devices/platform/lg-laptop/fan_mode doesn’t seem to exist for me and I suppose that could be related to why. Thanks for all the explanation though.
I’ll have to try the bios settings. The fan does work on its own, so I’m assuming that’ll be it.