Hallo zusammen,
ich möchte das Thema Fan-Control bei Asus Laptops (in meinem Fall speziell der UX310UAK) noch einmal aufrollen. Der auch bei niedrigen Temperaturen ständig mitlaufende Lüfter nervt schon sehr.
Aktueller Stand
- Unter Linux habe ich es z. B. mit NBFC schon hinbekommen, eine sinnvolle Lüftercharakteristik zu definieren
- Der hier beschriebene SSDT-Patch funktioniert bei meinem Modell nicht, da die verwendeten Methoden (z. B. QMOD) nicht mehr vorliegen bzw. Asus allgemein die Lüftersteuerung geändert hat.
- Zufällig bin ich auf diese Posts gestoßen, welche für mich sehr vielversprechend klingen: https://github.com/daringer/as…44#issuecomment-307589414
Ich suche eine Möglichkeit um
- zunächst einen EC RAM Dump zu machen (das kann ich zur Not aber natürlich auch von einem Linux aus tun), um daraus die Register zu suchen, welche die Kennline bzw. Temperaturen definieren
- dIe im o. g. Github Verlauf dargestellten acpi_calls in mein System einzubinden. Ich stelle mir vor, dass dies eigentlich recht einfach gehen müsste, jedoch bin ich planlos bezüglich der Herangehensweise.
\_SB.PCI0.LPCB.EC0.WRAM 0x537 0x2d
\_SB.PCI0.LPCB.EC0.WRAM 0x538 0x30
\_SB.PCI0.LPCB.EC0.WRAM 0x539 0x33
\_SB.PCI0.LPCB.EC0.WRAM 0x53a 0x37
\_SB.PCI0.LPCB.EC0.WRAM 0x53b 0x3a
In der DSDT wird WRAM durchaus verwendet, z. B:
Code
- If ((IIA0 == 0x00110014))
- {
- Local0 = ^^PCI0.LPCB.EC0.RRAM (0x0520)
- If ((Local0 & 0x02))
- {
- Local0 = ^^PCI0.LPCB.EC0.RRAM (0x0522)
- If ((IIA1 == Zero))
- {
- Local1 = (Local0 & 0xFFFFFFFFFFFFFFBF)
- }
- ElseIf ((IIA1 == One))
- {
- Local1 = (Local0 | 0x40)
- }
- ^^PCI0.LPCB.EC0.WRAM (0x0522, Local1)
- Return (One)
- }
- Return (Zero)
- }
Hat jemand von euch eine Idee, wie ich einen Aufruf dieser WRAM Methode mit entsprechenden Parametern implementieren kann? Ich hätte jetzt aus dem Bauch heraus gesagt, dass das in eine SSDT muss, jedoch bräuchte ich dafür Hilfe.
Vielen Dank im Voraus!