PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Temperatur unter Linux zu hoch (XPS15)



Bayerfans04
06.09.11, 11:23
Hallo,

ich habe ein neues XPS 15 mit einem i7-2630QM und einer GeForce GT 540m, wobei Linux allerdings nur die integrierte Intel-GPU erkennt (Intel Sandybridge Mobile) (Beim Versuch, den nvidia Treiber zu installieren, fand X auch keine Screens)

Parallel habe ich Windows 7 installiert. Darunter läuft das Notebook in Ruhe nahezu komplett still. Die CPU-Temperaturen pendeln sich so um 45°C ein. Starte ich hingegen Fedora 15, läuft der Lüfter unentwegt, oft auch sehr laut.

Nachdem ich die Temperatursensoren detektiert habe (mit pwmconfig), kann ich mir nun die vier CPU-Temperaturen, sowie zwei weitere (temp und physical id, welche sind das eigentlich?) anzeigen. Interessant ist, dass die Kerntemperaturen immer um 55°C liegen, Core0 ist sogar immer etwas heißer (etwa 58°). Der Sensor temp zeigt sogar 64°C an. Die Auslastungen der CPUs liegt aber im Leerlauf nie über 5%. Ich dachte, das Betriebssystem hat (oft) gar keinen Einfluss auf die Lüftersteuerung / Sensoren, sodass die lauten Lüfter wohl nicht wegen falschen Sensorenwerten zustande kommen kann. Aber woher kommen dann die hohen Temperaturen? Wenn ich zu Windows boote, sehe ich zwar auch kurz Temperaturen um 55°, die dann aber schnell wieder fallen.

Kann es vielleicht sein, dass, weil Linux wohl die integrierte Grafikkarte benutzt, das ein GPU-Problem ist? Oder benötige ich noch irgendwelche Intel-Treiber?

Ich danke euch.

bisti
06.09.11, 15:04
ich habe ein neues XPS 15 mit einem i7-2630QM und einer GeForce GT 540m, wobei Linux allerdings nur die integrierte Intel-GPU erkennt (Intel Sandybridge Mobile) (Beim Versuch, den nvidia Treiber zu installieren, fand X auch keine Screens)
.

Es ist ein sehr bekanntes Problem - linux kann Nvidia optimus nur mit der bestimmten Hardware benutzen. Bitte, guck mal hier (https://launchpad.net/~hybrid-graphics-linux) für die Information darüber.

Also, in Bezug auf deines Zweites Problem: es scheint, als linux kann nicht die Frequenz deines Computer stören, und dein CPU arbeitet mit der maximalen Frequenz. Zeig hier die Ausgaben von "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies", "cpufreq-info" und "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq" Kommandos um diese Theorie zu beweisen oder widerlegen.

Bayerfans04
06.09.11, 16:19
Danke für deine Antwort. Hier die Ausgaben:



[frank@XPS15 ~]$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
2001000 2000000 1900000 1800000 1700000 1600000 1500000 1400000 1300000 1200000 1100000 1000000 900000 800000


[frank@XPS15 ~]$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
800000


[frank@XPS15 ~]$ cpufreq-info
bash: cpufreq-info: command not found...
Soll das Paket »cpufrequtils« installiert werden, welches den Befehl »cpufreq-info« bereitstellt? [N/y]
* Ausführen... Die Transaktion scheiterte: all-packages-already-installed, The packages are already all installed

[frank@XPS15 ~]$ cpufreq-info
bash: cpufreq-info: command not found...
Soll das Paket »cpufrequtils« installiert werden, welches den Befehl »cpufreq-info« bereitstellt? [N/y]
[frank@XPS15 ~]$


letzteres ist merkwürdig, ich hatte das Paket eigentlich schon installiert, bekomme es aber nicht zum laufen.

Die ersten beiden Ausgaben scheinen ja zu unterstreichen, dass die Frequenzen geändert werden können, bzw. dass die CPU nicht mit maximaler Frequenz läuft.

Ich habe den Rechner mal unter Last gesetzt und der Prozessor wird mit maximaler Frequenz betrieben:


[frank@XPS15 ~]$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
2001000

Die Temperaturen gehen dann bis auf 80°C, im Leerlauf pendeln sie sich dann wieder auf kurz unter 60°C ein (und das, obwohl der Lüfter stark läuft).

Kann es vielleicht sein, dass die Sensoren unter Linux immer etwas mehr anzeigen? Subjektiv würde ich sagen, dass die Abluft keine 60°C heiß ist, eher 40°C. Aber das ist nur mein subjektives Empfinden..

Edit:

zum Problem mit der nvidia Karte: Ich habe mit acpi_call die Grafikkarte scheinbar ausschalten können, ich erhalte


[root@XPS15 acpi_call]# lspci -vnn | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:0116] (rev 09) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:0df4] (rev ff) (prog-if ff)

und meine Akkulaufzeit hat sich um eine Stunde verlängert!
Aber wieso ging dann der nvidia Treiber nicht, obwohl die Grafikkarte vorher aktiv war?

Zu meinen weiteren Erstaunen: nachdem ich ein paar Minuten vergangen sind, sind die Temperaturen etwas gefallen: der wärmste Kern besitzt nur noch 51°C! Scheinbar war die nvidia-Karte die ganze Zeit unter Vollast und hat den Prozessor erwärmt.

Eine weitere Frage habe ich dann noch: die Temperaturen liegen jetzt um die 50°C und sind zumindest in der Größenordnung wie bei denen unter Windows. Der Lüfter unter Windows springt aber bis etwa 55°C gar nicht an, unter Linux läuft er jetzt auch bei 50°C, wenn auch etwas leiser. Ist die Lüfteraktivität doch vom Betriebsystem abhängig?

bisti
06.09.11, 18:34
Kann es vielleicht sein, dass die Sensoren unter Linux immer etwas mehr anzeigen? Subjektiv würde ich sagen, dass die Abluft keine 60°C heiß ist, eher 40°C. Aber das ist nur mein subjektives Empfinden..


Es ist hochwahrscheinlich, dass unter deines System die Sensoren falsche Werte zeigen: z.B. an meinem Rechner(Asus MB) habe eine interessante Situation:



acpitz-virtual-0
Adapter: Virtual device
temp1: +40.0°C (crit = +75.0°C)

atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage: +1.10 V (min = +1.45 V, max = +1.75 V)
+3.3 Voltage: +3.36 V (min = +3.00 V, max = +3.60 V)
+5.0 Voltage: +4.95 V (min = +4.50 V, max = +5.50 V)
+12.0 Voltage: +12.35 V (min = +11.20 V, max = +13.20 V)
CPU FAN Speed: 3292 RPM (min = 0 RPM)
CHASSIS FAN Speed:2896 RPM (min = 0 RPM)
POWER FAN Speed: 0 RPM (min = 0 RPM)
CPU Temperature: +31.0°C (high = +90.0°C, crit = +125.0°C)
MB Temperature: +35.0°C (high = +45.0°C, crit = +90.0°C)

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp: +35.0°C
Core0 Temp: +24.0°C
Core1 Temp: +36.0°C
Core1 Temp: +25.0°C


Wie kannst du sehen, das "sensors" Programm nutzt 3 verschiedenen Treiber, und die richtige Werte zeigt nur "atk0110-acpi-0" Treiber. Und es gibt Situationen, wenn keiner der Treiber richtig funktioniert.



Aber wieso ging dann der nvidia Treiber nicht, obwohl die Grafikkarte vorher aktiv war?


Sowie ich weiß, wie nvidia optimus funktioniert, nvidia card wird benutzt nur für 3D oder so ähnliches(in Wirclichkeit, ich weiß das nicht genau, frag darüber in nvidia forums), und als primäre Grafikkarte arbeitet intel Grafikkarte immer.




Eine weitere Frage habe ich dann noch: die Temperaturen liegen jetzt um die 50°C und sind zumindest in der Größenordnung wie bei denen unter Windows. Der Lüfter unter Windows springt aber bis etwa 55°C gar nicht an, unter Linux läuft er jetzt auch bei 50°C, wenn auch etwas leiser. Ist die Lüfteraktivität doch vom Betriebsystem abhängig?


Es scheint, als Lüftersteuerung funktioniert auch nicht richtig. Lies hier (http://ez.lbm-services.de/index.php?/ger/ez-work/Lueftersteuerung-unter-Linux-lm-sensors-pwmconfig-fancontrol) für die Information darüber.

Bayerfans04
06.09.11, 19:00
Ich danke dir, ich werde das mal durcharbeiten.

Ich habe noch eine kleine andere Frage, die nur indirekt mit der Thematik etwas zu tun hat. Da ich unter Linux (zumindest jetzt) die nvidia Karte nicht brache und ohne ihr der lüfter etwas leiser ist / die Temperaturen etwas kleiner sind, wollte ich die Karte per Skript bei jedem Start deaktivieren. Das Skript



#!/bin/sh
sudo insmod /home/frank/git/acpi_call/acpi_call.ko
/home/frank/git/acpi_call/test_off.sh


funktioniert, insmod kennt sudo, sodass ich das Skript als als normaler Benutzer ausführen kann. Das Skript wird beim Autostart gestartet (habe ich in der gnome-session-properties eingetragen), die Grafikkarte wird aber nicht deaktiviert. Wenn ich manuell das Skript starte, klappt es. Habe ich etwas vergessen, oder gibt es eine andere Möglichkeit, das Skript automatisch zu starten?

bisti
06.09.11, 19:14
Ich denke, dass eine bessere Idee ist, diese Kommandos(ohne sudo) in /etc/rc.local Datei hinzufügen, damit die bei den "init"-Prozess gestartet werden können, mit der root-Berechtigung. Und "insmod" Kommando brauchst du nicht in deinem Script - alle Kernel-Moduln, die du brauchst, sind in /etc/modules Datei zu beschreiben.

Bayerfans04
06.09.11, 23:06
Ich habe zunächst (weil unter Fedora scheinbar keine /etc/modules existiert) die Kommandos


modprobe /home/frank/git/acpi_call/acpi_call.ko
/home/frank/git/acpi_call/test_off.sh

der /etc/rc.local hinzugefügt. Da es scheinbar keine Wirkung erzielte, hier der Auszug aus dem boot Log:



Starting /etc/rc.local Compatibility...
FATAL: Module /home/frank/git/acpi_call/acpi_call.ko not found.
The acpi_call module is not loaded


Wieso findet er das Modul nicht? Ein Tippfehler kann es nicht sein..

bisti
07.09.11, 07:44
"modprobe" Kommando sucht die Kernel-Moduln im "/lib/modules/`uname -r`" Verzeichnis, unabhängig davon, was du in der Kommandozeile geschrieben hast. Wenn dein Kernel-Modul in der "/home" Verzeichnis liegt, muß du "insmod" Kommando benutzen.

Bayerfans04
07.09.11, 09:37
Das versuchte ich am Anfang, aber da hing sich Linux mitten beim Booten auf und reagierte nicht mehr.

Um modprobe zu nutzen, habe ich dann das Modul nach /lib/modules/2.6.40.3-0.fc15.x86_64/kernel/ und zusätzlich auch in dessen Unterverzeichnis lib kopiert. Wenn ich dann "modprobe acpi_call.ko" ausführe, erscheint wieder die Fehlermeldung, dass er das Modul nicht laden kann.

bisti
07.09.11, 09:50
Versuchst du dann "depmod -a" Kommando zu ausführen, um dein Modul in die "modules.dep" Datei hinzuzufügen. Und ich habe vergessen, dass "modprobe"-Kommando den Modulname ohne ".ko" erfordert., entschuldigung.

Bayerfans04
07.09.11, 10:18
Ich habe es soweit geändert, er findet das Modul trotzdem nicht.

Hier nochmal die rc.local:



modprobe acpi_call
depmod -a
/home/frank/git/acpi_call/test_off.sh


Die acpi_call.ko habe ich in /lib/modules/2.6.40.3-0.fc15.x86_64/kernel/lib/ und in /lib/modules/2.6.40.3-0.fc15.x86_64/kernel/ reinkopiert (dort sind auch andere Module). Ist das so alles richtig?

bisti
07.09.11, 15:15
Erstens, das depmod Kommando muss von Hand gestartet werden, und bevor modprobe Kommando. Dieses Kommando nur vorbereitet verschiedenen Dateien und Variablen für modprobe, und muss nur einmal nach der Installation des Moduls gestartet werden.

Zweitens, versuchst du das modprobe Kommando mit Hilfe von dem "strace" Kommando ausführen:



strace -o /home/frank/modprobe.log modprobe acpi_call


Dann zeig hier die "modprobe.log" Datei.

Bayerfans04
07.09.11, 23:06
danke für deine Antworten. Die modprobe.log ist leer.

Ich denke, ich werde ein das Skript nach dem booten manuell ausführen, da ich einen weiteren Fehler erhalte: wenn ich das Skript (manuell) ausführe, kann ich keine USB-Geräte (USB-Stick oder Drucker) anschließen, dann friert der Rechner ein. Ich habe das jetzt mehr mals durchprobiert, nur wenn ich das Skript starte und z.B. einen USB-Stick anstecke. Kann es sein, dass dadurch irgendwelche Kernel-Module deaktiviert werden? Wenn das Gerät von Anfang an angesteckt ist (z.B. Maus), dann ist das hingegen kein Problem.