Skip to content
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

[Feature Request] Un-hardcoded fan curves definable within OS #213

Open
Raikiri opened this issue Jun 9, 2021 · 13 comments
Open

[Feature Request] Un-hardcoded fan curves definable within OS #213

Raikiri opened this issue Jun 9, 2021 · 13 comments

Comments

@Raikiri
Copy link

Raikiri commented Jun 9, 2021

Right now the only way of controlling the fan curves is by changing the hardcoded values in src/board/system76/oryp7/board.mk , recompiling, flashing, etc. It's not particularly user-friendly.

Is there a technical possibility of using a user-provided curve (somehow provided from inside OS) if it's available and use a hardcoded fan-curve as a fallback for all other cases?

I'm aware that there's an issue for pop-os pop-os/system76-acpi-dkms#9 that requests practically that but for pop-os exclusively. I think this issue deserves to have a resolution for all platforms.

@jacobgkau jacobgkau changed the title Is it possible to un-hardcode fan curves? [Feature Request] Un-hardcoded fan curves definable within OS Jun 9, 2021
@Raikiri
Copy link
Author

Raikiri commented Jun 9, 2021

Alternatively, if that's easier to implement, I'd be happy to edit them in bios too.

@MilesBHuff
Copy link

@Raikiri

I'm aware that there's an issue for pop-os

It's not just for Pop!_OS. A sysfs interface would expose fan controls for all distros. OP even explicitly mentions that they are running Manjaro.

@Raikiri
Copy link
Author

Raikiri commented Jun 12, 2021

@MilesBHuff
"all distros" != "all os's"
in this case "issue for pop os" assumes "issue on pop os issue tracker"

@MilesBHuff
Copy link

That is true. But I believe System76 recommends the proprietary BIOS when switching to Windows. If so, that's a non-starter. And who would put OSX on a Sys76 computer? That just leaves edge cases, like BSD.

@Raikiri
Copy link
Author

Raikiri commented Jun 12, 2021

i don't remember any recommendation related to using proprietary firmware with windows

@MilesBHuff
Copy link

It seems I may be mistaken. I thought I'd read that in a System76 support article; but I am unable to find anything of the sort at the moment.

@internalfx
Copy link

I would love to have a fan curve config file!

@CourchesneA
Copy link

That would be a great feature to have. I am having trouble with the current configuration of the fan curve and it would make my life much easier to have access to config files

@iburzynski
Copy link

I'd also like to see this feature. The hardcoded fan curve settings for oryp8 are awful, and cause my fan to constantly flicker on and off around the 55 degree threshold during normal use. I'm not able to modify the curve and flash the firmware because I'm using NixOS and can't build the firmware successfully with cargo.

@MilesBHuff
Copy link

MilesBHuff commented Feb 7, 2024

@iburzynski

The hardcoded fan curve settings for oryp8 are awful, and cause my fan to constantly flicker on and off around the 55 degree threshold during normal use.

They're just as bad on oryp7. I have much better fan settings here, but System76 refuses to adopt anything like them: #179

I'm not able to modify the curve and flash the firmware because I'm using NixOS and can't build the firmware successfully with cargo.

You don't need to build the entirety of the firmware; you only need to flash the ec, which is much easier.

@leviport
Copy link
Member

leviport commented Feb 7, 2024

We're not refusing anything. If we were, we would have closed your PR. We just haven't had time to test it yet.

@Raikiri
Copy link
Author

Raikiri commented Feb 8, 2024

@MilesBHuff

but System76 refuses to adopt anything like them: #179

It's been just 3 years, give them some time.

@crawfxrd
Copy link
Member

crawfxrd commented May 13, 2024

Fans should only run when system is in S0, so possible solution to move the fan table from EC flash to system flash:

  • Rewrite EC fan logic to only implement the mechanism for accessing duty/RPM value
    • Probably have EC turn on fans with some non-zero value in case firmware hangs
  • Rewrite coreboot+EC ACPI access for writing the target values
  • Implement edk2 driver+lib that reads/writes fan data in system NVRAM space (SMMSTORE) and controls fans through ACPI methods
  • Implement edk2 app 🤮 or system app that allows modifying the NVRAM data
  • Update system76-acpi for sysfs access

There probably needs to be an "auto/manual" fan mode" setting in this to allow switching between firmware controlled fan points and writing ACPI/sysfs values from a system application.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants