Score:4

Control the fans on Dell XPS 9315

zw flag

How do I control the fan on the XPS 9315 on my Ubuntu 22.04 machine?

One my previous XPS I could i8kutils, but it does not seem to work anymore.

I have done the following:

  1. Disabled secure boot.
  2. Used dell-bios-fan-control to take control of the fans.
  3. Installed lm-sensors using apt and ran sensors-detect.
  4. Installed i8kutils using apt and enabled the kernel module.
  5. Output from i8kctl:
1.0 1.8 GWXXXXX -1 -1 -1 -1 -1 -1 -1
  1. sensors | grep fan does not return anything.

Here is the output from sensors-detect and sensors:

❯ sudo sensors-detect
# sensors-detect version 3.6.0
# System: Dell Inc. XPS 9315 (laptop)
# Board: Dell Inc. 00KRKP
# Kernel: 5.19.0-32-generic x86_64
# Processor: 12th Gen Intel(R) Core(TM) i7-1250U (6/154/4)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): YES
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           No
AMD Family 16h thermal sensors...                           No
AMD Family 17h thermal sensors...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
Intel digital thermal sensor...                             Success!
    (driver `coretemp')
Intel AMB FB-DIMM thermal sensor...                         No
Intel 5500/5520/X58 thermal sensor...                       No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): YES
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     Yes
Found unknown chip with ID 0xfe00
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (YES/no): YES
Probing for `National Semiconductor LM78' at 0x290...       No
Probing for `National Semiconductor LM79' at 0x290...       No
Probing for `Winbond W83781D' at 0x290...                   No
Probing for `Winbond W83782D' at 0x290...                   No

Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): YES
Found unknown SMBus adapter 8086:51a3 at 0000:00:1f.4.
Sorry, no supported PCI bus adapters found.

Next adapter: SMBus I801 adapter at efa0 (i2c-0)
Do you want to scan it? (YES/no/selectively): YES

Next adapter: Synopsys DesignWare I2C adapter (i2c-1)
Do you want to scan it? (YES/no/selectively): YES
Adapter doesn't support all probing functions.
Some addresses won't be probed.

Next adapter: Synopsys DesignWare I2C adapter (i2c-2)
Do you want to scan it? (YES/no/selectively): YES
Adapter doesn't support all probing functions.
Some addresses won't be probed.
Client at address 0x2c can not be probed - unload all client drivers first!

Next adapter: i915 gmbus dpa (i2c-3)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus dpb (i2c-4)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus dpc (i2c-5)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus tc1 (i2c-6)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus tc2 (i2c-7)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus tc3 (i2c-8)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus tc4 (i2c-9)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus tc5 (i2c-10)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: i915 gmbus tc6 (i2c-11)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: AUX A/DDI A/PHY A (i2c-12)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: AUX B/DDI B/PHY B (i2c-13)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: AUX USBC1/DDI TC1/PHY TC1 (i2c-14)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: AUX USBC2/DDI TC2/PHY TC2 (i2c-15)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: AUX USBC3/DDI TC3/PHY TC3 (i2c-16)
Do you want to scan it? (yes/NO/selectively): NO

Next adapter: AUX USBC4/DDI TC4/PHY TC4 (i2c-17)
Do you want to scan it? (yes/NO/selectively): NO


Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
coretemp
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!

Do you want to add these lines automatically to /etc/modules? (yes/NO)NO

Unloading cpuid... OK

❯ cat /etc/modules                                                            
# Reads CPU temp sensors
coretemp
# Reads Dell SMM BIOS table
i8k
❯ sensors
ucsi_source_psy_USBC000:001-isa-0000
Adapter: ISA adapter
in0:          14.30 V  (min =  +5.00 V, max = +14.30 V)
curr1:         3.68 A  (max =  +0.75 A)

nvme-pci-e100
Adapter: PCI adapter
Composite:    +31.9°C  (low  =  -0.1°C, high = +82.8°C)
                       (crit = +84.8°C)
Sensor 1:     +36.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)

ucsi_source_psy_USBC000:002-isa-0000
Adapter: ISA adapter
in0:           5.00 V  (min =  +5.00 V, max =  +5.00 V)
curr1:         0.00 A  (max =  +1.50 A)

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

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +29.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +25.0°C  (high = +100.0°C, crit = +100.0°C)
Core 4:        +25.0°C  (high = +100.0°C, crit = +100.0°C)
Core 8:        +27.0°C  (high = +100.0°C, crit = +100.0°C)
Core 9:        +27.0°C  (high = +100.0°C, crit = +100.0°C)
Core 10:       +27.0°C  (high = +100.0°C, crit = +100.0°C)
Core 11:       +27.0°C  (high = +100.0°C, crit = +100.0°C)
Core 12:       +24.0°C  (high = +100.0°C, crit = +100.0°C)
Core 13:       +24.0°C  (high = +100.0°C, crit = +100.0°C)
Core 14:       +24.0°C  (high = +100.0°C, crit = +100.0°C)
Core 15:       +24.0°C  (high = +100.0°C, crit = +100.0°C)

BAT0-acpi-0
Adapter: ACPI interface
in0:          12.72 V  
curr1:       1000.00 uA 
aq flag
post the output of sensors-detect, probably not going to show much since it's a laptop but we'll see.
aq flag
`Found unknown chip with ID 0xfe00` that indicates it doesn't know what driver to use for the SuperI/O chip. If this were a desktop, I'd say that is the problem, but it's a laptop. That could be the issue, it may be unrelated, either way I can't find any resolution for 0xfe00.
aq flag
Did you try `sudo modprobe i8k force=1`? Does that get anything useful to appear in `sensors`
user1938742 avatar
zw flag
Yes, unfortunately I've done that... Ran ``sudo modprobe i8k force=1`` again just now and double-checked the output from ``sensors`` and ``i8kctl`` but no luck.
Brian Pursley avatar
kg flag
Same problem (Dell XPS 13 9315 and Ubuntu 22.04), and I think it has something to do with dell_smm_hwmon, not necessarily i8k because when I run `sudo modprobe -v i8k` without `force=1`, I get the error: `modprobe: ERROR: could not insert 'dell_smm_hwmon': No such device`. If I use `force=1` the modprobe completes successfully, but all readings are `-1`.
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.