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.45k stars 51 forks source link

support: IdeaPad Gaming 3 15ARH7 (2022) #92

Open cfrstr opened 1 year ago

cfrstr commented 1 year ago

Model and Debug Info

Distribution: Fedora Model name: IdeaPad Gaming 3 15ARH7 CPU model: AMD Ryzen 7 6800H GPU model: NVIDIA RTX 3050TI Mobile Keyboard backlight: White with off/med/high Light in lid or logo: no Light at IO-Ports at back: no only for power

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

# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.4.0 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
    Manufacturer: LENOVO
    Product Name: 82SB
    Version: IdeaPad Gaming 3 15ARH7
    Serial Number: redacted
    UUID: redacted
    Wake-up Type: Power Switch
    SKU Number: LENOVO_MT_82SB_BU_idea_FM_IdeaPad Gaming 3 15ARH7
    Family: IdeaPad Gaming 3 15ARH7

Handle 0x001B, 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 0x002A, DMI type 32, 20 bytes
System Boot Information
    Status: No errors detected

Output pf sudo dmidecode -t bios:

# dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 3.4.0 present.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
    Vendor: LENOVO
    Version: JNCN44WW(V2.04)
    Release Date: 04/10/2023
    Address: 0xE0000
    Runtime Size: 128 kB
    ROM Size: 32 MB
    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.44
    Firmware Revision: 1.44

Handle 0x001C, 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:

cat: /sys/kernel/debug/legion/fancurve: No such file or directory

Output of sudo make forcereloadmodule:

[Sun Aug  6 02:05:57 2023] legion_laptop: legion_laptop exit
[Sun Aug  6 02:05:57 2023] legion_laptop: legion_laptop starts loading
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: legion_laptop platform driver probing
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 82SB; DMI_BIOS_VERSION:JNCN44WW(V2.04)
[Sun Aug  6 02:05:57 2023] legion_laptop: Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 82SB; DMI_BIOS_VERSION:JNCN44WW(V2.04)
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: is_denied: 0; is_allowed: 0; do_load_by_list: 0; do_load: 1
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: legion_laptop is forced to load.
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: legion_laptop is forced to load and would otherwise be not loaded
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: Using configuration for system: GKCN
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: Could not evaluate ACPI _STA
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: Could not init ACPI access: -5
[Sun Aug  6 02:05:57 2023] legion_laptop: Unloading legion shared
[Sun Aug  6 02:05:57 2023] legion_laptop: Unloading legion shared done
[Sun Aug  6 02:05:57 2023] legion PNP0C09:00: legion_laptop not loaded for this device
[Sun Aug  6 02:05:57 2023] legion: probe of PNP0C09:00 failed with error -5
bash -c "./issue-warning.sh"
  If you have a 2022 or 2023 model, please help testing the new features 'here'
  If you have a light in the lid (Y-logo) or at the IO-ports (all Legion 7), please help testing controlling it 'here' 

WMI/ACPI ETC: https://github.com/cfrstr/15ARH7

johnfanv2 commented 1 year ago

I added your model. Please get the newest code again and try again. Then, please provide the following output for further debugging:

sudo cat /sys/kernel/debug/legion/fancurve
sudo cat /sys/kernel/debug/legion/ecmemoryram | hexdump -C
sudo cat /sys/kernel/debug/legion/ecmemory | hexdump -C

and the dmesg output after loading the module (only the new stuff is needed after loading and not the complete log). I looked at the ACPI disassembly and WMI output. It does not provide all the features of the Legion output but we can try to get as most as possible.

cfrstr commented 1 year ago

sudo cat /sys/kernel/debug/legion/fancurve

EC Chip ID: 0
EC Chip Version: 0
legion_laptop features: fancurve powermode platformprofile platformprofilenotify minifancurve
legion_laptop ec_readonly: 0
ACPI CFG error: 0
ACPI CFG: 4228186128
temperature access method: 3
CPU temperature error: 0
CPU temperature: 0
CPU temperature EC error: 0
CPU temperature EC: 0
CPU temperature ACPI error: -5
CPU temperature ACPI: 0
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: 35
GPU temperature EC error: 0
GPU temperature EC: 0
GPU temperature ACPI error: -5
GPU temperature ACPI: 0
GPU temperature WMI error: 0
GPU temperature WMI: 35
GPU temperature WMI2 error: -14
GPU temperature WMI2: 35
GPU temperature WMI3 error: -14
GPU temperature WMI3: 35
fan speed access method: 3
1 fanspeed error: 0
1 fanspeed: 0
1 fanspeed EC error: 0
1 fanspeed EC: 0
1 fanspeed ACPI error: -5
1 fanspeed ACPI: 0
1 fanspeed WMI error: 0
1 fanspeed WMI: 0
1 fanspeed WMI2 error: -14
1 fanspeed WMI2: 0
1 fanspeed WMI3 error: -14
1 fanspeed WMI3: 0
2 fanspeed error: 0
2 fanspeed: 0
2 fanspeed EC error: 0
2 fanspeed EC: 0
2 fanspeed ACPI error: -5
2 fanspeed ACPI: 0
2 fanspeed WMI error: 0
2 fanspeed WMI: 0
2 fanspeed WMI2 error: -14
2 fanspeed WMI2: 0
2 fanspeed WMI3 error: -14
2 fanspeed WMI3: 0
powermode access method: 3
powermode error: 0
powermode: 2
powermode EC error: 0
powermode EC: 0
powermode ACPI error: -5
powermode ACPI: 0
powermode WMI error: 0
powermode WMI: 2
has custom powermode: 0
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: 0
EC minifancurve on cool: error
EC lockfancontroller error: 0
EC lockfancontroller: false
EC fanfullspeed error: false
EC fanfullspeed status: 0
EC fan curve current point id: 0
EC fan curve points size: 0
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
=====================
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
=====================

sudo cat /sys/kernel/debug/legion/ecmemoryram | hexdump -C

00000000  00 00 00 01 00 00 00 00  01 00 80 00 00 06 57 10  |..............W.|
00000010  00 00 27 26 2d 28 26 24  00 00 00 00 40 62 00 00  |..'&-(&$....@b..|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000060  00 80 16 17 0e 00 46 05  00 01 05 00 00 00 00 00  |......F.........|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000080  00 00 00 00 02 00 00 00  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 c6 40 00 c0 00  23 00 00 08 00 2a 00 00  |....@...#....*..|
000000b0  00 2b 00 00 23 00 00 00  00 00 00 0f 00 7a 00 00  |.+..#........z..|
000000c0  00 02 73 09 1c 00 fa 3d  50 3c 70 17 80 18 27 1d  |..s....=P<p...'.|
000000d0  4d 0a 4c 0a 6f 0a 80 18  73 02 59 11 00 00 ec 56  |M.L.o...s.Y....V|
000000e0  00 00 00 80 0f 7f 0f 80  0f 7d 0f 00 00 00 00 00  |.........}......|
000000f0  00 00 00 00 00 00 c0 44  0a 0d 00 4a 00 00 00 00  |.......D...J....|
00000100  00 00 00 03 00 15 05 00  46 00 44 5c 17 50 5c 20  |........F.D\.P\ |
00000110  50 5c 20 50 5c 20 50 5c  20 50 5c 20 50 5c 20 52  |P\ P\ P\ P\ P\ R|
00000120  66 24 5e 69 24 00 00 00  00 00 03 00 15 00 00 46  |f$^i$..........F|
00000130  00 44 5c 17 50 5c 20 50  5c 20 50 5c 20 50 5c 20  |.D\.P\ P\ P\ P\ |
00000140  50 5c 20 50 5c 20 52 66  24 5e 69 24 00 00 00 00  |P\ P\ Rf$^i$....|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 01 01 01 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000500  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000510  00 00 02 ff ff 00 00 f0  30 10 00 80 00 00 03 00  |........0.......|
00000520  38 0e 21 00 00 00 00 f0  be c9 22 6f 02 00 24 84  |8.!......."o..$.|
00000530  04 70 02 00 00 ff 50 f2  71 00 40 10 08 00 db 00  |.p....P.q.@.....|
00000540  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000580  5a a5 00 00 00 00 00 00  00 00 00 59 b1 00 00 00  |Z..........Y....|
00000590  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005a0  00 00 10 80 00 00 21 05  06 05 06 05 06 05 00 00  |......!.........|
000005b0  00 00 00 00 00 84 00 00  00 00 00 00 00 00 00 00  |................|
000005c0  00 00 04 00 00 00 00 00  00 ff 00 00 01 00 00 00  |................|
000005d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000600

sudo cat /sys/kernel/debug/legion/ecmemory | hexdump -C

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000300

dmesg

[   43.363141] legion_laptop: loading out-of-tree module taints kernel.
[   43.363146] legion_laptop: module verification failed: signature and/or required key missing - tainting kernel
[   43.364349] legion_laptop: legion_laptop starts loading
[   43.364399] legion PNP0C09:00: legion_laptop platform driver probing
[   43.364401] legion PNP0C09:00: Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 82SB; DMI_BIOS_VERSION:JNCN44WW(V2.04)
[   43.364402] legion_laptop: Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 82SB; DMI_BIOS_VERSION:JNCN44WW(V2.04)
[   43.364403] legion PNP0C09:00: is_denied: 0; is_allowed: 1; do_load_by_list: 1; do_load: 1
[   43.364404] legion PNP0C09:00: Using configuration for system: JNCN
[   43.364404] legion_laptop: Creating RAM access to embedded controller
[   43.364412] legion_laptop: Succeffuly mapped embedded controller: 0xfc7e0800 (in RAM)/0x0 (in EC) to virtual 0x00000000be249f26
[   43.364459] legion PNP0C09:00: Read embedded controller ID 0x0
[   43.364460] legion PNP0C09:00: Skipped checking embedded controller id
[   43.364460] legion PNP0C09:00: Creating debugfs inteface
[   43.364466] legion_laptop: Creating sysfs inteface
[   43.364474] legion_laptop: Creating hwmon interface
[   43.364490] legion_laptop: Creating platform profile support
[   43.364492] legion_laptop: Init WMI driver support
[   43.364511] legion_wmi 887B54E3-DDDC-4B2C-8B88-68A26A8835D0: Register after probing for WMI.
[   43.364522] legion_wmi BFD42481-AEE3-4501-A107-AFB68425C5F8: Register after probing for WMI.
[   43.364531] legion_wmi D062906B-12D4-4510-999D-4831EE80E985: Register after probing for WMI.
[   43.364538] legion_wmi BFD42481-AEE3-4502-A107-AFB68425C5F8: Register after probing for WMI.
[   43.364543] legion_wmi BC72A435-E8C1-4275-B3E2-D8B8074ABA59: Register after probing for WMI.
[   43.364549] legion_wmi 10AFC6D9-EA8B-4590-A2E7-1CD3C84BB4B1: Register after probing for WMI.
[   43.364555] legion_wmi D320289E-8FEA-41E0-86F9-611D83151B5F: Register after probing for WMI.
[   43.364567] legion_laptop: Init keyboard backlight LED driver
[   43.364567] legion_laptop: Keyboard backlight handling disabled by this driver
[   43.364567] legion PNP0C09:00: Init keyboard backlight LED driver failed. Skipping ...
[   43.364568] legion_laptop: Init Y-Logo LED driver
[   43.364569] legion_laptop: ACPI evaluation error for: 8C5B9127-ECD4-4657-980F-851019F99CA5:1
[   43.364570] legion_laptop: Error for WMI method call to get brightness
[   43.364570] legion_laptop: Error reading brighntess for light: 3
[   43.364570] legion PNP0C09:00: Init Y-Logo LED driver failed. Skipping ...
[   43.364571] legion_laptop: Init IO-Port LED driver
[   43.364571] legion_laptop: ACPI evaluation error for: 8C5B9127-ECD4-4657-980F-851019F99CA5:1
[   43.364572] legion_laptop: Error for WMI method call to get brightness
[   43.364572] legion_laptop: Error reading brighntess for light: 5
[   43.364572] legion PNP0C09:00: Init IO-Port LED driver failed. Skipping ...
[   43.364573] legion PNP0C09:00: legion_laptop loaded for this device
[   62.602471] usb 9-1: new high-speed USB device number 2 using xhci_hcd
[   62.739515] usb 9-1: New USB device found, idVendor=0bda, idProduct=9210, bcdDevice=20.01
[   62.739526] usb 9-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   62.739529] usb 9-1: Product: RTL9210
[   62.739532] usb 9-1: Manufacturer: Realtek
[   62.739534] usb 9-1: SerialNumber: 012345678904
[   62.762817] usb-storage 9-1:1.0: USB Mass Storage device detected
[   62.762963] scsi host0: usb-storage 9-1:1.0
[   62.763017] usbcore: registered new interface driver usb-storage
[   62.764632] usbcore: registered new interface driver uas
[   63.787724] scsi 0:0:0:0: Direct-Access     Realtek  RTL9210 NVME     1.00 PQ: 0 ANSI: 6
[   63.788109] sd 0:0:0:0: Attached scsi generic sg0 type 0
[   63.790668] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/233 GiB)
[   63.791592] sd 0:0:0:0: [sda] Write Protect is off
[   63.791595] sd 0:0:0:0: [sda] Mode Sense: 37 00 00 08
[   63.792502] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   63.800882]  sda: sda1
[   63.800989] sd 0:0:0:0: [sda] Attached SCSI disk
[   63.992152] exFAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   80.143074] hid-generic 0003:1038:1838.0009: hiddev97,hidraw4: USB HID v1.11 Device [SteelSeries SteelSeries Aerox 3 Wireless] on usb-0000:07:00.3-1/input3
[   87.575267] legion_laptop: WMI evaluation error for: 92549549-4bde-4f06-ac04-ce8bf898dbaa:8
[   87.575272] legion_laptop: WMI evaluation error for: dc2a8805-3a8c-41ba-a6f7-092e0089cd3b:17
[   87.575404] legion_laptop: WMI evaluation error for: 92549549-4bde-4f06-ac04-ce8bf898dbaa:8
[   87.575406] legion_laptop: WMI evaluation error for: dc2a8805-3a8c-41ba-a6f7-092e0089cd3b:17
[   87.575501] legion_laptop: WMI evaluation error for: 92549549-4bde-4f06-ac04-ce8bf898dbaa:7
[   87.575503] legion_laptop: WMI evaluation error for: dc2a8805-3a8c-41ba-a6f7-092e0089cd3b:17
[   87.575598] legion_laptop: WMI evaluation error for: 92549549-4bde-4f06-ac04-ce8bf898dbaa:7
[   87.575600] legion_laptop: WMI evaluation error for: dc2a8805-3a8c-41ba-a6f7-092e0089cd3b:17
[   87.706737] legion_laptop: ACPI evaluation error for: 8C5B9127-ECD4-4657-980F-851019F99CA5:1
[   87.706758] legion_laptop: Error for WMI method call to get brightness
[   87.706761] legion_laptop: ACPI evaluation error for: 8C5B9127-ECD4-4657-980F-851019F99CA5:1
[   87.706762] legion_laptop: Error for WMI method call to get brightness
[   87.706763] legion_laptop: ACPI evaluation error for: 8C5B9127-ECD4-4657-980F-851019F99CA5:1
[   87.706764] legion_laptop: Error for WMI method call to get brightness
[   87.706792] legion_laptop: Unexpected value in MINIFANCURVE register:0
[   87.706838] legion_laptop: No access method for fancurve:0
[   87.706841] legion_laptop: Size of object: 48
[   87.706842] legion_laptop: ACPI evaluation error for: 92549549-4bde-4f06-ac04-ce8bf898dbaa:5
[   87.706844] legion_laptop fan table wmi buffer000000008376faa3: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   87.706847] legion_laptop fan table wmi buffer000000005492b2c3: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   87.706849] legion_laptop fan table wmi buffer00000000db07de67: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   87.706851] legion_laptop fan table wmi buffer0000000076dbb3fc: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   87.706852] legion_laptop fan table wmi buffer0000000022679490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[   87.706853] legion_laptop fan table wmi buffer000000007d15d8af: 00 00 00 00 00 00 00 00                          ........
[  141.120742] hid-generic 0003:1038:1838.000A: hiddev97,hidraw4: USB HID v1.11 Device [SteelSeries SteelSeries Aerox 3 Wireless] on usb-0000:07:00.3-1/input3
[  201.119339] hid-generic 0003:1038:1838.000B: hiddev97,hidraw4: USB HID v1.11 Device [SteelSeries SteelSeries Aerox 3 Wireless] on usb-0000:07:00.3-1/input3