-
Notifications
You must be signed in to change notification settings - Fork 61
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
Legion S7-15ACH6 | Module fails to load on Nobara 37 #13
Comments
It failed because it expected the ID of the embedded controller to be 0x8227, but it read 0x5576. This model HACN BIOS firmware also does not seems to supported by the Windows tools LegionFanControl. It is one of the rare cases. Maybe this model uses another chip. If you want to try to find the addresses in this chip, I could guide you through. It roughly works like that. Either, it can be easy, because you will find the embedded controller will use the same program/memory layout. Or, it is more complicated because it is completely different. Disassembling ACPI tables# Install requiered tools
sudo apt install acpica-tools # Create folder for all the new files
mkdir acpi_re
cd acpi_re
# List ACPI tables and copy them
ls /sys/firmware/acpi/tables/
sudo cp --no-preserve=mode /sys/firmware/acpi/tables/*SDT* .
# Disassemble tables to output DSDT.dsl
iasl -e SSDT* -d DSDT Then upload files. Find Mapped Memory Address of Embedded ControllerFind the part for the embedded controller. It will contain something like this.
Then find the regions used by the embedded controller. There are lots of other regions, but only You will find something similar to this:
This will show that registers/memory of the embedded controller is mapped to (CPU) Often, much more registers/memory of the embedded controller are mapped to (CPU). Observing what Changes to Associate Memory Addresses With FunctionsNow we can read the memory mapped regions. Then we change something, e.g.
... |
OK, thanks. Here you go, please see attached. I see the first section you mention, but grep'ing for 'ERAM' and 'EmbeddedControl' shows nothing. |
I had a lock at the files and found the string "embedded controller". It seems to be at the same memory address as others. I pushed a version (to main), that allows you just try it in readonly mode. Try
and check if this outputs a sensible fan curve. Otherwise, one would have to find different addresses in your different embedded controller. |
Thanks a lot, I really appreciate it. The module now loads, although there are some errors...
... but the fan curve isn't right, and using
|
It seems like your embedded controller uses different addresses or is a totally different chip. Try pulling, compiling, loading again (I fixed dumping the whole EC memory) and run cat /sys/kernel/debug/legion/ecmemory | hexdump -C before and after you change the power mode with Fn+Q. Try to find which values change and which could represent the fan curve. |
Hi, are there any updates for this issue? If you'd like any more data from real hardware I have this laptop and am open for any help. |
Hello, thanks for the great project, I couldn't believe my eyes when I saw the post on r/LenovoLegion, and I hope mods will sticky your thread soon for more visibilty.
I have a Legion S7-15ACH6 - Type 82K8 aka 2021 Slim 7 that unfortunately has problems loading the module. I have tried the 'forceloadmodule' option mentioned in another thread here, but no luck. Let me know if you need any further details from me, glad to provide whatever you need.
Info about the system:
Top of 'dmesg'
The text was updated successfully, but these errors were encountered: