mirror of
https://github.com/hirschmann/nbfc.git
synced 2026-04-25 16:45:53 +03:00
[GH-ISSUE #398] Advice on fixing ASUS gl753ve fan issues #356
Labels
No labels
Stale
bug
config
discussion
duplicate
enhancement
experimental
feature
help-wanted
info
invalid
invalid
pull-request
question
up-for-grabs
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nbfc-hirschmann#356
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @cdbrendel on GitHub (Dec 4, 2017).
Original GitHub issue: https://github.com/hirschmann/nbfc/issues/398
Hi there,
I'm in the early stages of attempting to develop a nbfc configuration for/fix the DSDT of an ASUS ROG gl753ve, a single-fan system with hybrid intel/nvidia graphics. It has terrible battery life/thermal performance on Linux out of the box (the nvidia card idling produces lots of heat and uses lots of power, even with nvidia/nouveau unloaded), so attempting to use bbswitch to disable the card led me here.
In normal operation (ie, before I mess with anything), the fan spins at a medium-low setting at idle and ramps up/down with processor utilization (I don't know if the kernel is doing this or if this is BIOS-controlled). This is fine.
However, when I use bbswitch to disable the dgpu (
\_SB.PCI0.PEG0.PEGP), the call seems to successfully power down the card, but after about 10 seconds the fan spins up from maybe 40% to 100% until shutdown (soft reboot doesn't fix it) despite various attempted fixes as outlined in Bumblebee-Project/Bumblebee#904 and Bumblebee-Project/Bumblebee#764.Broadly speaking, I'm wondering if anyone else is also trying to fix the thermal performance of this laptop, but I have a few narrower questions. Apologies if this is kind of nascently unorganized; I'm entirely inexperienced in working with ACPI/ACPI tables (@hirschmann's guide was very helpful) and this DSDT seems particularly fussy.
The register 0xEE is involved determining/reporting the fan speed--see the below graph of
ec-probe -t 40 -i 1 -r ...where the system is idle until I runstressstarting at about second 6. It looks to me like 0xEE is a fan speed target (I think this is LTCL in the DSDT, which is only referenced once in an IndexField), and the 0xE8, labeled PVOL in the DSDT, is perhaps processor voltage? 0xE2 (I think named EGCP) as well as 0xE3 and 0xEC (not named in the DSDT) also seem to increase withstress, but I have no idea what they are.Compare to this graph after I run
echo "OFF" > /proc/acpi/bbswitch(sorry, the lines are in different colors and on different ranges...). Here, 0xEE is consistently low (although the fan is audibly at 100%), but 0xE8 is consistently high (even though the processor is idling), which is entirely the opposite of what I'd expect based on the test above. What could possibly be going on with these registers? I have no idea. If 0xE8 reports processor voltage, could this false, elevated value be causing some other part of the system to set the fan to 100%? Or maybe it's not processor voltage at all.At any rate, reading these registers is of limited use since they appear to be read-only, and the majority of registers that can be written to seem to be stored in SystemMemory. I know that ec-probe doesn't attempt to mess with kernel address space, but is there any way to directly read these values using another tool to try to figure out what's going on in the values that some of these methods are using?
In the DSDT itself, I've been able to make a little progress in figuring out what some methods do. Using the acpi_call module, I found that the method
\_SB.PCI0.LPCB.EC0.RFOV 0, for example, reports the speed of fan 0 (the only one), and\_SB.PCI0.LPCB.EC0.WFOV 0 0spins the fan down to the lowest power state. However, after I've bbswitched the dgpu to off, any calls I make toWFOVare overwritten by something else in the system after 1 second (so, if I turn the fan to, say, value 0x30, it'll wind down and run slow for a split second, then immediately spin up to 0xFF again, despite lack of processing load or high temperature readings). Is there any way to listen in on acpi events to figure out what other call is presumably being made to overrule my call to WFOV, or any other suggestion to figure out what could be resetting the fan to 100%?I'm not really sure what I'm asking for other than hoping I could bounce what I've noticed off of you guys and figure out how I should proceed from here. I'm not even sure if nbfc will ultimately be able to manage this system's fan, but I think figuring out what's going on in the DSDT is the first step in any case.
Some other notes: the only configuration recommended by nbfc, Asus ROG GL702VM, doesn't work for this device.
sensorsonly provides valid output for coretemps; it tries to detect the CPU fan on an ISA bus, but the value is constantly -1.asus_wmi/asus_nb_wmiprovides an interface for a fan at hwmon3, but it has the same problem. System is Archlinux running kernel 4.14.3. I also am dual booting Windows 10 perfectly, so if jumping over there to investigate ACPI issues would be helpful, I can do that as well.Thanks in advance for any help.
@3230 commented on GitHub (Jan 5, 2018):
I have this laptop nd i tried to have a fanless one. But like you, it speeds when i start a new program or new action... Here is my config : Please if you have a good way tell me...
<?xml version="1.0"?> <FanControlConfigV2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <NotebookModel>GL753VE</NotebookModel> <Author>STEF</Author> <EcPollInterval>100</EcPollInterval> <ReadWriteWords>false</ReadWriteWords> <CriticalTemperature>92</CriticalTemperature> <FanConfigurations> <FanConfiguration> <ReadRegister>232</ReadRegister> <WriteRegister>238</WriteRegister> <MinSpeedValue>0</MinSpeedValue> <MaxSpeedValue>255</MaxSpeedValue> <IndependentReadMinMaxValues>false</IndependentReadMinMaxValues> <ResetRequired>true</ResetRequired> <FanSpeedResetValue>0</FanSpeedResetValue> <FanDisplayName>CPU FAN</FanDisplayName> <TemperatureThresholds> <TemperatureThreshold> <FanSpeed>0</FanSpeed> <UpThreshold>0</UpThreshold> <DownThreshold>0</DownThreshold> </TemperatureThreshold> <TemperatureThreshold> <FanSpeed>20</FanSpeed> <UpThreshold>75</UpThreshold> <DownThreshold>66</DownThreshold> </TemperatureThreshold> <TemperatureThreshold> <FanSpeed>40</FanSpeed> <UpThreshold>80</UpThreshold> <DownThreshold>72</DownThreshold> </TemperatureThreshold> </TemperatureThresholds> <FanSpeedPercentageOverrides /> </FanConfiguration> <FanSpeedPercentageOverride> <FanSpeedPercentage>0</FanSpeedPercentage> <FanSpeedValue>255</FanSpeedValue> <TargetOperation>ReadWrite</TargetOperation> </FanSpeedPercentageOverride> </FanConfigurations> <RegisterWriteConfigurations> <RegisterWriteConfiguration> <Description>CPU FAN</Description> <WriteOccasion>OnWriteFanSpeed</WriteOccasion> <WriteMode>Set</WriteMode> <Register>160</Register> <Value>0</Value> <ResetRequired>true</ResetRequired> <ResetWriteMode>Set</ResetWriteMode> <ResetValue>0</ResetValue> </RegisterWriteConfiguration> <RegisterWriteConfiguration> <Description>CPU FAN</Description> <WriteOccasion>OnWriteFanSpeed</WriteOccasion> <WriteMode>Set</WriteMode> <Register>166</Register> <Value>0</Value> <ResetRequired>true</ResetRequired> <ResetWriteMode>Set</ResetWriteMode> <ResetValue>0</ResetValue> </RegisterWriteConfiguration> </RegisterWriteConfigurations> </FanControlConfigV2>@lumiera commented on GitHub (Nov 18, 2018):
Possibly relevant? https://askubuntu.com/questions/921580/ubuntu-freezes-on-login-after-prime-select-intel/923216#923216
@github-actions[bot] commented on GitHub (Dec 6, 2019):
This issue is stale because it has been open more than 180 days with no activity. If nobody comments within 7 days, this issue will be closed
@3230 commented on GitHub (Dec 6, 2019):
I wait again to found a solution...
See you later...
@cdbrendel commented on GitHub (Dec 7, 2019):
I no longer own a gl753ve and can't debug this issue any more, but I never resolved it. @3230, did @lumiera's solution do anything for you?
@3230 commented on GitHub (Dec 7, 2019):
Hi, i did not see something by @lumiera ...
Thanks.