dell / libsmbios

library for interacting with Dell SMBIOS tables
Other
192 stars 39 forks source link

Unable to execute some smbios commands on Linux 6.11 #147

Open insiderser opened 1 month ago

insiderser commented 1 month ago
❯ sudo smbios-thermal-ctl --set-thermal-mode=balanced
Helper function to Set Thermal Mode
ERROR: Could not execute SMI.

Common problems are:

    -- 'SMM Mitigations' is enabled in BIOS setup.
        Run kernel 4.15 or later with 
        dell-smbios-wmi enabled.
         or 
        Disable 'SMM mitigations' in BIOS setup.

    -- Insufficient permissions to perform operation.
       Try running as a more privileged account.
          Linux  : run as 'root' user
          Windows: run as 'administrator' user

    -- dell-smbios-wmi driver not loaded 
       Try loading the dell-smbios-wmi driver 
          Linux : modprobe dell-smbios-wmi 

    -- Call filtered by Linux kernel 
       Some functionality is natively supported 
       by the Linux kernel 

    -- dcdbas device driver not loaded.
       Try loading the dcdbas driver
          Linux  : modprobe dcdbas
❯ sudo modprobe dell-smbios-wmi
modprobe: FATAL: Module dell-smbios-wmi not found in directory /lib/modules/6.11.2-arch1-1

Commands that output this error:

Commands that seem to work (or at least they don't show this error):

smbios-thermal-ctl works on Linux 6.6.52 LTS. Doesn't work on 6.11.1 and 6.11.2. Worked on Linux 6.10 with BIOS 1.30.0.

❯ sudo smbios-sys-info-lite
Libsmbios:    2.4.3
System ID:    0x098F
Service Tag:  DJ6FF63
Express Service Code: 29457824907
Asset Tag:  Not Specified
Product Name: XPS 17 9700
BIOS Version: 1.31.0
Vendor:       Dell Inc.
Is Dell:      1
OEM String 1: Dell System
OEM String 2: 1[098F]
OEM String 3: 3[1.0]
OEM String 4: 12[www.dell.com]
OEM String 5: 14[1]
OEM String 6: 15[11]
OEM String 7: 27[29457824907]

Might be related to https://www.phoronix.com/news/Dell-PC-Driver-For-Linux-6.11. But sudo modprobe dell-pc doesn't fix this issue.

Alan-J-Bibins commented 1 month ago

I also have the exact same issue on my arch system, it is specific to the 6.11 kernel since I had no issues on the 6.6.52 lts kernel, or the prior 6.10 kernel.

> sudo smbios-sys-info-lite
Libsmbios:    2.4.3
System ID:    0x0BF7
Service Tag:  1V15PY3
Express Service Code: 4053180315
Asset Tag:  Not Specified
Product Name: Dell G15 5530
BIOS Version: 1.19.0
Vendor:       Dell Inc.
Is Dell:      1
OEM String 1: Dell System
OEM String 2: 1[0BF7]
OEM String 3: 3[1.0]
OEM String 4: 12[www.dell.com]
OEM String 5: 14[1]
OEM String 6: 15[0]
OEM String 7: 27[4053180315]
freudFlintstone commented 1 month ago

Same issue on a XPS 13 9320, running Ubuntu 24.10 with kernel 6.11.0-8

Excigma commented 1 month ago

I believe functionality for smbios-thermal-ctl has been merged into the kernel. You can use sysfs to change the settings instead: under /sys/firmware/acpi/, see platform_profile and platform_profile_choices.

Previously, I had a script calling smbios-thermal-ctl when I changed the profile in tuned so that the fan/thermal profile would change, however, it seems to be automatically done now :)

Note the error message saying:

    -- Call filtered by Linux kernel 
       Some functionality is natively supported 
       by the Linux kernel

It's filtered here: https://github.com/torvalds/linux/blame/ae90f6a6170d7a7a1aa4fddf664fbd093e3023bc/drivers/platform/x86/dell/dell-smbios-base.c#L80

It was added in this commit: https://github.com/torvalds/linux/commit/996ad412981024a9bb90991ab195685d37187bbd

I'm not sure about smbios-lcd-brightness or smbios-wireless-ctl, as I don't use it. Searching in the Kernel's code seems to show that smbios-wireless-ctl's functionality is implemented here: https://github.com/torvalds/linux/blob/81983758430957d9a5cb3333fe324fd70cf63e7e/drivers/platform/x86/dell/dell-laptop.c#L399