system76 / firmware-open

System76 Open Firmware
Other
966 stars 84 forks source link

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

Open Raikiri opened 3 years ago

Raikiri commented 3 years ago

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 https://github.com/pop-os/system76-acpi-dkms/issues/9 that requests practically that but for pop-os exclusively. I think this issue deserves to have a resolution for all platforms.

Raikiri commented 3 years ago

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

MilesBHuff commented 3 years ago

@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 commented 3 years ago

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

MilesBHuff commented 3 years ago

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 commented 3 years ago

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

MilesBHuff commented 3 years ago

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 commented 3 years ago

I would love to have a fan curve config file!

CourchesneA commented 3 years ago

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 commented 9 months ago

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 commented 9 months ago

@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: https://github.com/system76/ec/pull/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 commented 9 months ago

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 commented 9 months ago

@MilesBHuff

but System76 refuses to adopt anything like them: https://github.com/system76/ec/pull/179

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

crawfxrd commented 6 months ago

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

There will need to be an "auto/manual" fan control setting in this to allow switching between firmware controlled fan points and writing ACPI/sysfs values from an OS driver/application.