-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trying to get a legion Y530-15ICH to work: fan curve points is 0 #16
Comments
Thanks a lot for the effort! This looks good. The Y530 seems to have a sligtly different embedded controller. The ACPI tables you have uploaded seem also different after a quick glance. I just had a very quick lock, but could not identify the memory adress where the RAM of the embedded controller (EC) is memory mapped. However, in most model configs this is not used. Instead the EC is accessed by writing to IO ports. Acessing via memory adress: usually totally safe even if there is a completely different chip/hardware used However I saw that the chip ID and version is reported as 8226/1a2 (that were already read via the IO port method after you have modified the code). That looks very promising because it is very similar to the already implemented embedded controller. Therefore, I suggest using the IO port method and not finding the memory address in the ACPI tables. Now, you update the adresses in the EC memory to adapt it to your version of the embedded controller. run
before and after you change the power mode with Fn+Q and post it here. Try to find which values change and which could represent the fan curve. Maybe the fan speed or temperatures are already correct? What is outputted when you run lmsensor? |
Hi, I think I have the same issue with my Legion Y540-15IRH-PG0. So I also replaced the value
Then I inspected Here are 3 dumps (I pressed Fn+Q between each):
|
"0x1d cycled between 0, 1 and 2 so I guess I have to set the ec_register_offsets_v0.ALT_POWERMODE value to 0xc41d? Yes, that would be true. You can try it. |
hey is there plans to fix the problem? |
Is it going to be fixed? |
same question as @BetThical |
+1 here with a y540 |
+1 |
+1 with my Lenovo Legion Y540-15IRH |
Great project! I'm trying to get my older gaming laptop working to use as a development machine. After setting it up I've found the fans to spin way too loudly so I poked around and happily found your project. Thanks for putting this together!
As I'm familiar with all things Linux I figured I'd try to get this working on my machine.
Following your instructions I got to the point where I needed to force the module to load due to this allowlist error:
[ 1412.449348] Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 81FV; DMI_BIOS_VERSION:8JCN56WW
[ 1412.449389] legion PNP0C09:00: legion_laptop platform driver 0.1 probing
[ 1412.449390] Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 81FV; DMI_BIOS_VERSION:8JCN56WW
[ 1412.449393] legion PNP0C09:00: is_denied: 0; is_allowed: 0; do_load_by_list: 0; do_load: 0
[ 1412.449394] legion PNP0C09:00: Module not useable for this laptop because it is not in allowlist. Notify maintainer if you want to add your device or force load with param force.
[ 1412.449395] legion PNP0C09:00: legion_laptop not loaded for this device
[ 1412.449428] legion: probe of PNP0C09:00 failed with error -12
I then had to replace the EC chip ID from 0x8227 to 0x8226 for my attempt at getting this working
sed -i 's|0x8227|0x8226|g' legion-laptop.c
dmesg
[ 1827.143935] legion_laptop 0.1 starts loading
[ 1827.143937] Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 81FV; DMI_BIOS_VERSION:8JCN56WW
[ 1827.143982] legion PNP0C09:00: legion_laptop platform driver 0.1 probing
[ 1827.143983] Read identifying information: DMI_SYS_VENDOR: LENOVO; DMI_PRODUCT_NAME: 81FV; DMI_BIOS_VERSION:8JCN56WW
[ 1827.143985] legion PNP0C09:00: is_denied: 0; is_allowed: 0; do_load_by_list: 0; do_load: 1
[ 1827.143987] legion PNP0C09:00: legion_laptop is forced to load.
[ 1827.143987] legion PNP0C09:00: legion_laptop is forced to load and would otherwise be not loaded
[ 1827.143988] legion PNP0C09:00: Using configuration for system: GKCN
[ 1827.144001] Succeffuly mapped embedded controller: 0xfe00d400 (in RAM)/0xc400 (in EC) to virtual 0x000000006aaf2a43
[ 1827.144381] legion PNP0C09:00: Read embedded controller ID 0x8226
[ 1827.144383] legion PNP0C09:00: Creating debugfs inteface
[ 1827.144389] Creating sysfs inteface
[ 1827.144392] Creating hwmon interface
[ 1827.144457] Creating platform profile support
[ 1827.144460] Init WMI driver support
[ 1827.144482] legion_wmi 887B54E3-DDDC-4B2C-8B88-68A26A8835D0: Register after probing for WMI.
[ 1827.144500] legion_wmi BFD42481-AEE3-4501-A107-AFB68425C5F8: Register after probing for WMI.
[ 1827.144522] legion_wmi D062906B-12D4-4510-999D-4831EE80E985: Register after probing for WMI.
[ 1827.144537] legion_wmi BFD42481-AEE3-4502-A107-AFB68425C5F8: Register after probing for WMI.
[ 1827.144549] legion_wmi BC72A435-E8C1-4275-B3E2-D8B8074ABA59: Register after probing for WMI.
[ 1827.144563] legion_wmi 10AFC6D9-EA8B-4590-A2E7-1CD3C84BB4B1: Register after probing for WMI.
[ 1827.144582] legion PNP0C09:00: legion_laptop loaded for this device
[ 1881.094692] Unexpected value in MINIFANCURVE register:0
Module successfully loads although fan curve points is 0
sudo cat /sys/kernel/debug/legion/fancurve
EC Chip ID: 8226
EC Chip Version: 1a2
legion_laptop version: 0.1
legion_laptop features: fancurve powermode platformprofile platformprofilenotify minifancurve
legion_laptop ec_readonly: 1
minifancurve feature enabled: 1
minifancurve on cool: error
lock fan controller: false
enable maximumfanspeed: false
enable maximumfanspeed status: 0
fan curve current point id: 0
fan curve points size: 0
Current fan curve in hardware (embedded controller):
rpm1|rpm2|acceleration|deceleration|cpu_min_temp|cpu_max_temp|gpu_min_temp|gpu_max_temp|ic_min_temp|ic_max_temp
I've followed the instructions from here #13 to disassemble the acpi tables and attached them to this email if that helps.
Y53015ICH.tar.gz
At this point I'm kind of stuck. Would greatly appreciate some direction to get this working.
Cheers!
Some system info
00:00.0 Host bridge: Intel Corporation 8th Gen Core 4-core Processor Host Bridge/DRAM Registers [Coffee Lake H] (rev 07)
00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630]
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 07)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:14.3 Network controller: Intel Corporation Cannon Lake PCH CNVi WiFi (rev 10)
00:15.0 Serial bus controller: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #0 (rev 10)
00:15.1 Serial bus controller: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #1 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake Mobile PCH SATA AHCI Controller (rev 10)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1d.5 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #14 (rev f0)
00:1e.0 Communication controller: Intel Corporation Cannon Lake PCH Serial IO UART Host Controller (rev 10)
00:1f.0 ISA bridge: Intel Corporation HM470 Chipset LPC/eSPI Controller (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
06:00.0 Non-Volatile memory controller: Toshiba Corporation BG3 NVMe SSD Controller (rev 01)
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
The text was updated successfully, but these errors were encountered: