[Vorstellung] NoteBook FanControl (NBFC)

Danke @Grantig für die Info!

Ein Neustart scheint die Register auch wieder zurückgesetzt zu haben.

Was wäre für einen n∞bie die beste bzw. einfachste Methode, einen Config File für ein weiteres Notebook zu erstellen (hier wie gesagt HP Omen)?

Danke für Tipps!
 
Grantig schrieb:
@vickoxy
Der build hat doch funktioniert. Du musst nur noch den weiteren Anweisungen unter "Build on Linux" auf github folgen.
Ich habe Folgendes ausgeführt:
Code:
root@linux:~/nbfc/Linux/bin/ReleaseLinux# sh start-nbfcservice.sh
root@linux:~/nbfc/Linux/bin/ReleaseLinux# mono nbfc.exe config --apply Acer Aspire VN7-591 V15 Nitro.xml
usage: nbfc.exe [--version] [--help] <command> [<args>]
Extra positional arguments found: Aspire VN7-591 V15 Nitro.xml
root@linux:~/nbfc/Linux/bin/ReleaseLinux# mono nbfc.exe start
Leider ändert sich Lüfterverhalten nicht. Mache ich etwas falsch?
Sensors melden aber auch keinen Lüfter:
Code:
root@linux:~/nbfc/Linux/bin/ReleaseLinux# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +40.0°C  (crit = +100.0°C)
temp2:        +35.0°C  (crit = +92.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +41.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:         +37.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:         +41.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:         +34.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:         +36.0°C  (high = +100.0°C, crit = +100.0°C)
 
Target fan speed 0 % wird nicht eingeregelt

Hallo,

ich habe dieses Klasse Programm auf meinem HP Elitebook 8570w im Einsatz.
Meine Config basiert im Grunde auf der des 8760w bzw. des ZBooks und ist eigentlich nur um die Regelschwellen von mir angepasst worden. Es funktionierte auch einige Zeit wie gewünscht, doch aus unbekanntem Grund stellt sich ein current fan speed von 25 % ein, obwohl der target fan speed bei 0 % liegt. Wenn ich den target fan speed slider bewege, wird auch bis auf 0 % jedes target erfolgreich eingeregelt. Wenn aufgrund höherer Temperatur ein höheres target gefordert wird, wird dieses auch eingeregelt.

Woran könnte das liegen?

Bereits ausprobiert:
- andere Ausgangsconfig
- Bios Option Lüfter immer an deaktiviert und wieder aktiviert
- EC Reset (ohne Akku lange Power Button drücken)

Gruß und danke
Vatte
 
@Grantig
Sorry if I wasn't clear. The image I attached in this post says for itself.

The program ignores the actual temperature and just reads the first threshold fan speed (in this case 42%).
The temperature is at 44°C so the target fan speed should be 100% as you can see in the fan configuration window:
threshold.png
 
@vickoxy
Ja, du musst Anführungszeichen um den config Namen machen, sonst interpretier tdie Shell jedes Wort als einzelnen Befehl. Das .xml ist überflüssig.

Also so:
Code:
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"

Außerdem solltest du den Service als root starten:
Code:
sudo start-nbfcservice.sh

@Vatte
Setz mal in deiner Config bei beiden Register write configurations "Write occasion" auf "OnWriteFanSpeed".

@Zuptr
The thresholds work as expected.
NBFC selects the first threshold. The second one will kick in if the temperature reaches 100 degree.

Temperature thresholds are explained in the NBFC wiki: https://github.com/hirschmann/nbfc/wiki/Temperature-threshold

I suggest you load the default thresholds and modify them according to your needs (that's what this button is there for ;))
 
Zuletzt bearbeitet:
Grantig schrieb:
@vickoxy
Ja, du musst Anführungszeichen um den config Namen machen, sonst interpretier tdie Shell jedes Wort als einzelnen Befehl. Das .xml ist überflüssig.

Also so:
Code:
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"

Außerdem solltest du den Service als root starten:
Code:
sudo start-nbfcservice.sh

Danke sehr! Der Lüfter reagiert positiv :p
Allerdings verstehe ich nicht warum ich bei diesem Befehl einen Fehler kriege:
Code:
root@linux:~/nbfc/Linux/bin/ReleaseLinux# sudo start-nbfcservice.sh
sudo: start-nbfcservice.sh: Befehl nicht gefunden

Befehl:
Code:
sh start-nbfcservice.sh
scheint allerdings zu funktionieren.

Und das Letzte-wie lasse ich diese Programme beim Reboot automatisch starten? Einfach mit
Code:
 mono nbfc.exe set --auto
oder soll ich ein Skriptum erstellen? Nach der Bereitschaft muss ich die Programme wieder starten...

Danke!
 
Zuletzt bearbeitet:
@ vickoxy
Du bekommst nen Fehler weil deine Shell nicht standardmäßig im aktuellen Ordner sucht, sondern nur in den Ordnern die im PATH stehen.
Das sollte klappen:
Code:
sudo ./start-nbfcservice.sh
"." ist das aktuelle Verzeichis.

Zum Autostart: kommt auf deine Distro an, bzw. welches init-System verwendet wird. Da musst du dich auf der Website zu deiner Distro schlau machen.
Falls sie auf systemd setzt: dafür hab ich hier im Thread schonmal ein .service file gepostet.

@Vatte
Wenns vorher funktioniert hat, dann hast du evtl. irgendwas installiert was dazwischenpfuschen könnte (z.B. Hardware Monitoriung tools)?
 
@Grantig; Danke für die Hilfe. Ich verwende Ubuntu 15.10 Desktop Edition (Standard Version mit Unity). Die Idee wäre-da Fancontrol wirklich funktioniert-diese Prozesse immer im Hintergrund laufend haben.Geht so was? D.h. dass ich sie nicht nach einem Reboot oder Bereitschaft wieder aktivieren muss.
Habe dein .service File gefunden. Bei mir schaut so aus:
Code:
[Unit]
Description=NoteBook FanControl Service
     
[Service]
ExecStart=/home/linux/nbfc/Linux/bin/ReleaseLinux/start-nbfcservice.sh
Type=forking
TimeoutStopSec=20
     
[Install]
WantedBy=multi-user.target

Nach dem Restart war Lüfter ruhig, aber nach Standby musste ich wieder diesen Befehl ausführen, damit alles wieder läuft:
Code:
root@linux:~/nbfc/Linux/bin/ReleaseLinux# mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"

Ich vermute, dass .service gestartet ist , aber .config file nicht. Ist dies irgendwie zu lösen?
Danke!

EDIT - Fast gelöst. Ich habe folgende .sh Datei (nbfc.sh) in home Verzeihnis erstellt und bei Startprogramme aktiviert:
Code:
#!/bin/bash
cd /home/linux/nbfc/Linux/bin/ReleaseLinux
sleep 5
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"

Notebook Verhalten ist ein bissl komisch:
- Nach dem Restart ist Lüfter ruhig
- Nach dem 1. Standby läuft Lüfter aber:
- Nach dem 2. Standby ist lüfter ganz ruhig (mehrmals getestet)
- ein paar mal schaltete sich der Lüfter ein, obwohl kein Last, aber nach dem Aufwachen aus Standby - wieder ruhig.

Eine Idee?
 
Zuletzt bearbeitet:
Du musst nicht vermuten, du kannst dir die laufenden Services auch auflisten lassen:
Code:
systemctl
Wenn du nach dem NBFC Service suchen willst:
Code:
systemctl | grep "Name deiner .service Datei (ohne Dateiendung!)"

Zum Standby Problem:
Ist ein Bug von NBFC unter Linux.
Workaround:
In der config die du nutzt überall <WriteOccasion>OnInitialization</WriteOccasion> durch <WriteOccasion>OnWriteFanSpeed</WriteOccasion> ersetzen.
 
@Grantig Oh... I did experiment with the preset and saw the instructions before but didn't understand. Now I got it! Thanks and sorry.

Using temperature thresholds should make that problem (fan randomly decreasing speed and not going back to normal) irrelevant!

Here is my config:
OBS: I leave the reader value at 0, because when I added the proper value the notebook would restart warning me that it hit 90°C multiple times. While not using a reader value the notebook works normally.

Code:
<?xml version="1.0"?>
<FanControlConfigV2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NotebookModel>HP Pavilion 14-v066br</NotebookModel>
  <Author />
  <EcPollInterval>290</EcPollInterval>
  <ReadWriteWords>false</ReadWriteWords>
  <CriticalTemperature>89</CriticalTemperature>
  <FanConfigurations>
    <FanConfiguration>
      <ReadRegister>0</ReadRegister>
      <WriteRegister>183</WriteRegister>
      <MinSpeedValue>50</MinSpeedValue>
      <MaxSpeedValue>100</MaxSpeedValue>
      <IndependentReadMinMaxValues>false</IndependentReadMinMaxValues>
      <MinSpeedValueRead>0</MinSpeedValueRead>
      <MaxSpeedValueRead>0</MaxSpeedValueRead>
      <ResetRequired>false</ResetRequired>
      <FanSpeedResetValue>0</FanSpeedResetValue>
      <TemperatureThresholds />
      <FanSpeedPercentageOverrides />
    </FanConfiguration>
  </FanConfigurations>
  <RegisterWriteConfigurations />
</FanControlConfigV2>



Thanks for the great software!
 
@ Grantig.
Hi, nach Restart funktioniert alles super. Leider nach dem Standby ist der Lüfter nur für 5-10 Minuten ruhig. Ich bin deinen Anweisungen gefolgt, hat aber keine Änderung gebracht. Nbfc soll laufen:
root@linux:~# systemctl | grep "nbfc"
nbfc.service loaded active running NoteBook FanControl Service
root@linux:~#
Noch eine Idee?

Mein .sh Skriptum schein auch nicht zu funktionieren nach dem Standby:
#!/bin/bash
sleep 25
cd /home/linux/nbfc/Linux/bin/ReleaseLinux
sleep 30
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"
Wenn ich aber die zwei Befehle im TErminal separat ausführe, dann läuft alles normal:
cd /home/linux/nbfc/Linux/bin/ReleaseLinux
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"
Wäre es möglich .sh file irgendwie besser einstellen?

EDIT:
Ich habe ein .desktop launcher erstellt für:
Code:
#!/bin/bash
sleep 25
cd /home/linux/nbfc/Linux/bin/ReleaseLinux
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"

D.h. nach Standby, wenn der Lüfter wieder einspringt, aktiviere ich per MAusklick diese Desktop App und dann funktioniert wieder. Aber warum funktioniert meine .sh als eine Startapp nach Standby? SOndern erst nach dem ich es als .desktop eingerichtet habe?
 
Zuletzt bearbeitet:
@Zuptr
No problem, you're not the first one who misunderstands my explanation of the config system, so I guess I have to explain it more clearly in the NBFC Wiki.

I'm glad you managed to create a config that works properly :)
I have just one question before I add it to the repo:
What is the "proper" ReadRegister (which makes your notebook restart)?
Have you tried 183 as ReadRegister?

Thanks for your effort!

@vickoxy
Sicher dass du WriteOccasion in der config auf OnWriteFanSpeed gesetzt hast?
Denn eigentlich macht in deinem Fall das erneute setzen der config nichts anderes als die RegisterWriteConfigurations auszuführen.

Warum dein Script nur dann funktioniert wenn du es manuell ausführst?
Ich vermute es wird nach dem Standby einfach garnicht ausgeführt, oder es wird evtl. zu früh ausgeführt.
 
Hier meine Dateien:
/home/linux/nbfc/Linux/bin/ReleaseLinux/Configs/Acer Aspire VN7-591 V15 Nitro.xml
Code:
<?xml version="1.0"?>
<FanControlConfigV2 xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <NotebookModel>Aspire VN7-591G</NotebookModel>
  <Author>JL</Author>
  <EcPollInterval>3000</EcPollInterval>
  <ReadWriteWords>false</ReadWriteWords>
  <CriticalTemperature>80</CriticalTemperature>
  <FanConfigurations>
    <FanConfiguration>
      <ReadRegister>149</ReadRegister>
      <WriteRegister>148</WriteRegister>
      <MinSpeedValue>255</MinSpeedValue>
      <MaxSpeedValue>98</MaxSpeedValue>
      <ResetRequired>true</ResetRequired>
      <FanSpeedResetValue>255</FanSpeedResetValue>
      <FanDisplayName>Left fan</FanDisplayName>
      <TemperatureThresholds>
        <TemperatureThreshold>
          <UpThreshold>0</UpThreshold>
          <DownThreshold>0</DownThreshold>
          <FanSpeed>0</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>66</UpThreshold>
          <DownThreshold>59</DownThreshold>
          <FanSpeed>10.191083</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>68</UpThreshold>
          <DownThreshold>63</DownThreshold>
          <FanSpeed>32.4840775</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>71</UpThreshold>
          <DownThreshold>67</DownThreshold>
          <FanSpeed>100</FanSpeed>
        </TemperatureThreshold>
      </TemperatureThresholds>
      <FanSpeedPercentageOverrides />
    </FanConfiguration>
    <FanConfiguration>
      <ReadRegister>152</ReadRegister>
      <WriteRegister>151</WriteRegister>
      <MinSpeedValue>255</MinSpeedValue>
      <MaxSpeedValue>98</MaxSpeedValue>
      <ResetRequired>true</ResetRequired>
      <FanSpeedResetValue>255</FanSpeedResetValue>
      <FanDisplayName>Right fan</FanDisplayName>
      <TemperatureThresholds>
        <TemperatureThreshold>
          <UpThreshold>0</UpThreshold>
          <DownThreshold>0</DownThreshold>
          <FanSpeed>0</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>66</UpThreshold>
          <DownThreshold>58</DownThreshold>
          <FanSpeed>10.191083</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>70</UpThreshold>
          <DownThreshold>60</DownThreshold>
          <FanSpeed>30.5732479</FanSpeed>
        </TemperatureThreshold>
        <TemperatureThreshold>
          <UpThreshold>71</UpThreshold>
          <DownThreshold>67</DownThreshold>
          <FanSpeed>80.891716</FanSpeed>
        </TemperatureThreshold>
      </TemperatureThresholds>
      <FanSpeedPercentageOverrides />
    </FanConfiguration>
  </FanConfigurations>
  <RegisterWriteConfigurations>
    <RegisterWriteConfiguration>
      <WriteMode>Set</WriteMode>
      <WriteOccasion>OnWriteFanSpeed</WriteOccasion>
      <Register>147</Register>
      <Value>20</Value>
      <ResetRequired>true</ResetRequired>
      <ResetValue>4</ResetValue>
      <ResetWriteMode>Set</ResetWriteMode>
      <Description>Set EC to manual control</Description>
    </RegisterWriteConfiguration>
    <RegisterWriteConfiguration>
      <WriteMode>Set</WriteMode>
      <WriteOccasion>OnWriteFanSpeed</WriteOccasion>
      <Register>150</Register>
      <Value>20</Value>
      <ResetRequired>true</ResetRequired>
      <ResetValue>4</ResetValue>
      <ResetWriteMode>Set</ResetWriteMode>
    </RegisterWriteConfiguration>
  </RegisterWriteConfigurations>
</FanControlConfigV2>

Mein
/home/linux/.nbfc.sh
:
Code:
#!/bin/bash
sleep 50
cd /home/linux/nbfc/Linux/bin/ReleaseLinux
mono nbfc.exe config --apply "Acer Aspire VN7-591 V15 Nitro"

Mein /home/linux/NBFC.Dektop (befindet sich sonst in /usr/share/applications damit ich es auch in Unity Starter einfügen und drücken kann wenn nötig.
Code:
[Desktop Entry]
Version=x.y
Name=NBFC
Comment=FanControl
Exec=/home/linux/.nbfc.sh
Icon=/home/linux/.icons/Faenza/apps/scalable/defcon.svg
Terminal=true
Type=Application
Categories=Utility;Application;

D.h. ich habe ausprobiert nur .sh und /usr/share/applications/NBFC.desktop in Startprogramme ausführen lassen. Nach Standby funktioniert nicht. Wenn ich aber manuell in terminal die BEfehle von .sh eingebe, alles ist super. Genauso wenn ich NBFC Desktop App klicke-funktioniert tadellos. :(
Was mache ich da falsch?

UPDATE!!!
Da ich Unity nicht mag, habe ich es gelöscht und XFCE installiert. Interessanterweise funktioniert nun NBFC perfekt auch nach Standby... Woran es liegt, keine Ahnung, aber nun-unter denselben Bedingungen wie früher-funktioniert alles tadellos...:p
Vielen Dank für eure Unterstützung, besonders an Grantig - falls es noch irgendetwas ändert (hoffentlich nicht), melde mich hier.
 
Zuletzt bearbeitet:
@Grantig Yes, I tried 183 and that was the result of it. And by "proper" I meant there is no other value besides 183 that makes sense to be the reader one. (and I tried the others too)
 
Grantig schrieb:
@Vatte
Wenns vorher funktioniert hat, dann hast du evtl. irgendwas installiert was dazwischenpfuschen könnte (z.B. Hardware Monitoriung tools)?

Dies ist leider auch nicht der Fall, höchsten Windows Updates sind dazu gekommen.
Wenn ein anderes Programm die Lüfter konstant auf 25 % zwingt, warum kann ich dann jeden beliebigen Wert (außer 0) manuell per Slider einstellen?

weitere erfolglose Lösungsversuche:
- CMOS Batterie entfernt
- BIOS Update durchgeführt

Gruß
Vatte
 
Cool, Artikel #5000, ich habs mir gleich in den Startpost editiert
Oh mann ich bin ein Depp xD

Vielen Dank und Glückwunsch zum 5000. Post :)
 
Zuletzt bearbeitet:
Zurück
Oben