johnfanv2 / LenovoLegionLinux

Driver and tools for controlling Lenovo Legion laptops in Linux including fan control and power mode.
https://github.com/johnfanv2/LenovoLegionLinux
GNU General Public License v2.0
1.67k stars 60 forks source link

Program crashes when loading from preset on Lenovo Legion 5 15ARH05 #246

Open septicalls opened 3 months ago

septicalls commented 3 months ago

Problem Description

Fan curve monitoring works as expected. I simulated load by running a Blender 3D render and it did show an increase in temperate and fan speed. However when I click on the "Load from preset" button, I get the following error (when opened from terminal):

Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/legion_linux/legion_gui.py", line 881, in on_load_from_preset
    self.model.load_fancurve_from_preset(name)
  File "/usr/lib/python3.12/site-packages/legion_linux/legion.py", line 1475, in load_fancurve_from_preset
    self.fan_curve = self.fancurve_repo.load_by_name(name)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/legion_linux/legion.py", line 1093, in load_by_name
    return FanCurve.load_from_file(self._name_to_filename(name))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/legion_linux/legion.py", line 81, in load_from_file
    with open(filename, 'r', encoding=DEFAULT_ENCODING) as filepointer:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/etc/legion_linux/quiet-battery.yaml'
[1]    8367 IOT instruction  sudo legion_gui

When I later checked the /etc/legion_linux/ directory, I did not find any yaml file for the power profiles.

$ ls /etc/legion_linux 
settings.yaml

I have the lenovolegionlinux-dkms-git package installed from the AUR on the 6.10.6-arch1-1 kernel.

Model and Debug Info

Distribution: Arch Linux Model name: Lenovo Legion 5 15ARH05 CPU model: AMD Ryzen 5 4600H) GPU model: NVIDIA GTX 1650 Mobile Max-Q Keyboard backlight: single color with off/medium/bright Light in lid or logo: no Light at IO-Ports at back: no

Output of sudo dmidecode -t system. Please remove Serial Number and UUID for privacy:

# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: LENOVO
    Product Name: 82B5
    Version: Lenovo Legion 5 15ARH05
    Serial Number: [REDACTED]
    UUID: [REDACTED]
    Wake-up Type: Power Switch
    SKU Number: LENOVO_MT_82B5_BU_idea_FM_Legion 5 15ARH05
    Family: Legion 5 15ARH05

Handle 0x0020, DMI type 12, 5 bytes
System Configuration Options
    Option 1: String1 for Type12 Equipment Manufacturer
    Option 2: String2 for Type12 Equipment Manufacturer
    Option 3: String3 for Type12 Equipment Manufacturer
    Option 4: String4 for Type12 Equipment Manufacturer

Handle 0x002F, DMI type 32, 20 bytes
System Boot Information
    Status: No errors detected

Output of sudo dmidecode -t bios:

# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
    Vendor: LENOVO
    Version: EUCN37WW
    Release Date: 04/14/2022
    Address: 0xE0000
    Runtime Size: 128 kB
    ROM Size: 15488 kB
    Characteristics:
        PCI is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        Boot from CD is supported
        Selectable boot is supported
        EDD is supported
        Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
        Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
        5.25"/360 kB floppy services are supported (int 13h)
        5.25"/1.2 MB floppy services are supported (int 13h)
        3.5"/720 kB floppy services are supported (int 13h)
        3.5"/2.88 MB floppy services are supported (int 13h)
        8042 keyboard services are supported (int 9h)
        CGA/mono video services are supported (int 10h)
        ACPI is supported
        USB legacy is supported
        BIOS boot specification is supported
        Targeted content distribution is supported
        UEFI is supported
    BIOS Revision: 1.37
    Firmware Revision: 1.37

Handle 0x0021, DMI type 13, 22 bytes
BIOS Language Information
    Language Description Format: Long
    Installable Languages: 4
        en|US|iso8859-1
        fr|FR|iso8859-1
        ja|JP|unicode
        zh|TW|unicode
    Currently Installed Language: en|US|iso8859-1

Output of sudo cat /sys/kernel/debug/legion/fancurve:

EC Chip ID: 8227
EC Chip Version: 2a4
legion_laptop features: fancurve powermode platformprofile platformprofilenotify minifancurve
legion_laptop ec_readonly: 0
ACPI CFG error: 0
ACPI CFG: 2081289494
temperature access method: 1
CPU temperature error: 0
CPU temperature: 41
CPU temperature EC error: 0
CPU temperature EC: 41
CPU temperature ACPI error: 0
CPU temperature ACPI: 41
CPU temperature WMI error: 0
CPU temperature WMI: 0
CPU temperature WMI2 error: -14
CPU temperature WMI2: 0
CPU temperature WMI3 error: -14
CPU temperature WMI3: 0
GPU temperature error: 0
GPU temperature: 46
GPU temperature EC error: 0
GPU temperature EC: 46
GPU temperature ACPI error: 0
GPU temperature ACPI: 46
GPU temperature WMI error: 0
GPU temperature WMI: 0
GPU temperature WMI2 error: -14
GPU temperature WMI2: 0
GPU temperature WMI3 error: -14
GPU temperature WMI3: 0
fan speed access method: 1
1 fanspeed error: 0
1 fanspeed: 1750
1 fanspeed EC error: 0
1 fanspeed EC: 1750
1 fanspeed ACPI error: 0
1 fanspeed ACPI: 1700
1 fanspeed WMI error: 0
1 fanspeed WMI: 1700
1 fanspeed WMI2 error: -14
1 fanspeed WMI2: 1700
1 fanspeed WMI3 error: -14
1 fanspeed WMI3: 1700
2 fanspeed error: 0
2 fanspeed: 1623
2 fanspeed EC error: 0
2 fanspeed EC: 1623
2 fanspeed ACPI error: 0
2 fanspeed ACPI: 1600
2 fanspeed WMI error: 0
2 fanspeed WMI: 1600
2 fanspeed WMI2 error: -14
2 fanspeed WMI2: 1600
2 fanspeed WMI3 error: -14
2 fanspeed WMI3: 1600
powermode access method: 3
powermode error: 0
powermode: 1
powermode EC error: 0
powermode EC: 2
powermode ACPI error: -5
powermode ACPI: 0
powermode WMI error: 0
powermode WMI: 1
has custom powermode: 1
ACPI rapidcharge error: 0
ACPI rapidcharge: 0
WMI backlight 2 state: 0
WMI backlight 3 state: -5
WMI light IO port: -5
WMI light Y logo/lid: -5
EC minifancurve feature enabled: 1
EC minifancurve on cool: true
EC lockfancontroller error: 0
EC lockfancontroller: false
fanfullspeed error: -22
fanfullspeed: 0
fanfullspeed EC error: 0
fanfullspeed EC: 0
EC fan curve current point id: 1
EC fan curve points size: 9
Current fan curve in hardware:
rpm1|rpm2|acceleration|deceleration|cpu_min_temp|cpu_max_temp|gpu_min_temp|gpu_max_temp|ic_min_temp|ic_max_temp
0    0   5   7   0   127     0   51  0   38
1700     1600    5   7   127     127     48  51  35  42
2000     1900    5   7   127     127     48  51  39  54
2100     2100    5   7   127     127     48  51  51  127
2300     2300    5   7   127     127     48  55  51  127
2600     2600    5   7   127     127     52  60  51  127
2900     2900    5   7   127     127     56  64  51  127
3500     3500    5   7   127     127     61  70  51  127
3800     3800    5   7   127     127     66  127     51  127
=====================
Current fan curve in hardware (WMI; might be empty)
rpm1|rpm2|acceleration|deceleration|cpu_min_temp|cpu_max_temp|gpu_min_temp|gpu_max_temp|ic_min_temp|ic_max_temp
=====================