Proprietäre NVidia-Treiber mit EFI auf dem Mac, um eine Überhitzung zu vermeiden

12

Ich habe ein Dual-Boot-Mac OS X 10.8 und Kubuntu 12.10 64x auf meinem weißen MacBook ab Mitte 2010 installiert. (Modellkennung: MacBook7,1. Ich habe meinen RAM von 2 GB auf 8 GB aktualisiert, falls dies wichtig ist.) Ich habe die proprietären NVIDIA-Treiber auf meinem Kubuntu installiert.

Dem Temperaturüberwachungs-Widget in Kubuntu nach zu urteilen, scheint meine Temperatur im Vergleich zu unter Mac OS X ~ 10 ° C heißer zu sein. Verwenden Sie unter Mac OS XI den Temperaturüberwacher . Ich vergleiche die Werte für CPU Core 0 und CPU Core 1 in Kubuntu mit den Werten für CPU Core 1 und CPU Core 2 in Mac OS X.

10 ℃ mehr sind vielleicht keine große Überhitzungskatastrophe, aber wenn ich auf meinem Computer wirklich intensive Dinge mache (z. B. Team Fortress 2 eine Weile spielen), ist meine CPU unter OSX bei ~ 70 ℃ und unter Kubuntu eine Weile , meine CPU ist ~ 80 ℃. Ich mache mir Sorgen, dass die höhere Temperatur die Lebensdauer meines Laptops verkürzen könnte.

Ich habe einige Nachforschungen angestellt und herausgefunden, dass ich es möglicherweise im BIOS-Modus installiert habe, was die Hitze verursacht. Ich kann es nicht im EFI-Modus installieren, da die proprietären NVidia-Treiber dann nicht funktionieren (habe es bereits versucht, es gab einen schwarzen Bildschirm). Weiß jemand, wie man die proprietären NVidia-Treiber im EFI-Modus zum Laufen bringt?

Bearbeiten: Ok, auch wenn es keine Möglichkeit gibt, die proprietären NVIDIA-Treiber im EFI-Modus zu verwenden (es scheint keine Möglichkeit zu geben, ich bekomme keine Antworten), würde ich mich schon freuen, wenn Die Heizung konnte im BIOS-Modus behoben werden. Wie kann ich die Heizung zumindest im BIOS-Modus reparieren? Ich habe versucht, dies in meine xorg.conf im Abschnitt "Gerät" einzufügen, um Energie zu sparen:

     Option         "DPMS" "1"
     Option         "RegistryDwords" "EnableBrightnessControl=1; PowerMizerEnable=0x1; PerfLevelSrc=0x2233; PowerMizerDefault=0x3"

... aber das hat nicht funktioniert.

Oh, und ich benutze übrigens nicht rEFIt, könnte es das sein?

Stommestack
quelle

Antworten:

17

Für mich führte das Booten von Ubuntu im UEFI-Modus mit geladenen Nvidia-Treibern immer zu dem bekannten schwarzen Bildschirm, wenn X gestartet wurde.

Das war bis gestern!

Nachdem Sie in einem anderen Thread einige vielversprechende Informationen zur Installation von Windows 7 im UEFI-Modus auf einem Mac erhalten haben. Die Leute dort hatten Probleme mit der erforderlichen Unterstützung von Windows 7 für 10 Stunden und stellten fest, dass man eine unbeaufsichtigte Installation durchführen kann, um dies zu umgehen (da die Anzeige während der Installation nicht funktioniert). Die entscheidende Information, um Ubuntu auch mit Nvidia-Treibern erfolgreich im UEFI-Modus zu starten, war, dass die Firmware von Apple beim Start des EFI-Starts (während der Übergabe an grub) die VGA-Karte nicht als PCI-E-Bus-Master aktiviert . Die Windows-Mitarbeiter erklärten, wie dies mithilfe einer EFI-Shell umgangen werden kann, die den Windows-Boot-Manager kettenlade, um das Setup zumindest im unbeaufsichtigten Modus auszuführen. Und hier ist die gute Nachricht:In GRUB ist das ganz einfach !

Tatsächlich schreibe ich dies gerade auf einem MacBook Pro 7.1 (Mitte 2010), auf dem Ubuntu Vivid ausgeführt wird und das im UEFI-Modus ( Xorg.0.log ) gestartet wurde . Es sollte jedoch einfach sein, dies auszuführen oder an jede Linux-Distribution anzupassen, die eine EFI-Version von GRUB bereitstellt, z. B. Ubuntu 14.04.2 LTS.

~$ dmesg | grep -i efi
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.19.0-15-generic.efi.signed root=UUID=7843c644-e6f4-4d64-9317-0b854cb524f2 ro quiet splash intremap=off acpi_osi=! acpi_osi=Darwin nomodeset vt.handoff=7
[    0.000000] efi: EFI v1.10 by Apple
[    0.000000] efi:  ACPI=0xbf96a000  ACPI 2.0=0xbf96a014  SMBIOS=0xbf71a000

Um es kurz zu machen, wir müssen zwei PCI-E-Register einrichten: eines, das das Bus-Mastering auf der Grafikkarte ermöglicht, und das andere, das die VGA-Unterstützung auf der PCI-E-Brücke der Grafikkarte ermöglicht. Es hat also eigentlich nichts mit den Nvidia-Treibern zu tun und je nach Sichtweise auch nicht mit Apples veralteter / verkrüppelter / Sie nennen es EFI-Implementierung.

So habe ich es gelöst. Natürlich geht das Lob in erster Linie an die Jungs im MacRumors-Forum. HAFTUNGSAUSSCHLUSS Die folgenden Anweisungen werden ohne Gewähr gegeben und ich übernehme keine Haftung. TUN SIE DAS AUF EIGENES RISIKO!

1. Installieren Sie Ubuntu im UEFI-Modus mit den Nvidia-Treibern

Ich werde hier nicht auf Details eingehen, da es im Internet viele Artikel gibt, die Ihnen zeigen, wie das geht, und bei denen die Nouveau-Treiber Ihren Computer heiß laufen lassen oder der schwarze Bildschirm nach der Installation der Nvidia-Treiber angezeigt wird (z. B. www.rodsbooks.com) / ubuntu-efi ).

Beachten Sie jedoch, dass die folgenden Anweisungen davon ausgehen, dass Sie erfolgreich im UEFI-Modus installiert und gestartet wurden. Sie können dies überprüfen, indem Sie überprüfen, ob das Verzeichnis / sys / firmware vorhanden ist, das erst nach dem Booten im EFI-Modus erstellt wird.

2. Suchen Sie die richtigen PCI-E-Bus-IDs

Wir benötigen sowohl die IDs für die Grafikkarte als auch die PCI-E-Bridge, mit der sie verbunden ist. Geben Sie den folgenden Befehl in einer Shell ein:

~$ sudo lshw -businfo -class bridge -class display
pci@0000:00:00.0              bridge         MCP89 HOST Bridge
pci@0000:00:03.0              bridge         MCP89 LPC Bridge
pci@0000:00:0e.0              bridge         NVIDIA Corporation
pci@0000:00:15.0              bridge         NVIDIA Corporation
pci@0000:00:16.0              bridge         NVIDIA Corporation
pci@0000:00:17.0     >!!<     bridge         MCP89 PCI Express Bridge
pci@0000:04:00.0     >!!<     display        MCP89 GeForce 320M

Schauen Sie sich (1) die Zeile mit der Aufschrift Anzeige und (2) die Zeile mit der Brücke direkt vor dieser Anzeigezeile an. Notieren Sie sich die PCI-E-Bus-IDs (Format XX: YY.Z) des Bridge-Geräts (hier 00: 17.0) und des Anzeigegeräts (hier 04: 00.0) und merken Sie sich, welches welches ist. Hinweis : Diese IDs können auf Ihrem Computer je nach Mac-Modell und Version unterschiedlich sein.

3. Erstellen Sie ein GRUB-Skript zum Einstellen der PCI-E-Register während des Startvorgangs

Starten Sie einen Texteditor mit sudo nano /etc/grub.d/01_enable_vga.conf und kopieren Sie den folgenden Inhalt. Ersetzen Sie 00: 17.0 durch die in Schritt 2 angegebene PCI-E-ID Ihres Bridge-Geräts. Ersetzen Sie 04: 00.0 durch die in Schritt 2 angegebene PCI-E-ID Ihres Anzeigegeräts.

cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "04:00.0" 04.b=7
EOF

Machen Sie abschließend die erstellte Datei ausführbar und aktualisieren Sie Ihre Grub-Konfigurationsdateien mit den folgenden ZWEI Befehlen.

~$ sudo chmod 755 /etc/grub.d/01_enable_vga.conf
~$ sudo update-grub

4. Starten Sie neu und überprüfen Sie

Wenn nach dem Neustart die Registerwerte auf 8 (Bridge-Gerät) und 7 (Anzeigegerät) gesetzt wurden, ging alles in Ordnung:

 ~$ sudo setpci -s "00:17.0" 3e.b
 08
 ~$ sudo setpci -s "04:00.0" 04.b
 07

5. Installieren Sie Nvidia-Treiber und genießen Sie!

Verwenden Sie die Benutzeroberfläche für zusätzliche Treiber von Ubuntu , um die Nvidia-Treiber zu installieren. Ich empfehle, diesem Artikel zu folgen , um die Helligkeitssteuerung zu aktivieren, da dies nicht sofort funktioniert.

Andreas
quelle
Gibt es eine Möglichkeit, einen Link zu Ihrer Datei /etc/X11/xorg.conf zu erstellen?
Patrick
Entschuldigung, ich habe die Maschine einige Monate nach dem Schreiben dieses Artikels verkauft. Sie können jedoch versuchen, in diesem Arch- Forenthread nachzufragen : bbs.archlinux.org/viewtopic.php?id=162289&p=4 .
Andreas
1

Ich hatte ein ähnliches Problem mit meinem Laptop. Das Folgende hat bei mir funktioniert. Ich hoffe, es hilft Ihnen.

Erstens half die Verwendung von Jupiter bei der Lösung der meisten Probleme mit Überhitzung und Akkulaufzeit.
Mein Laptop läuft durchschnittlich 50 Grad Celsius und lief vor der Installation von Jupiter bei 68 Grad Celsius.

sudo add-apt-repository ppa: webupd8team / jupiter
sudo apt-get update
sudo apt-get install jupiter

Nachdem ich Jupiter installiert hatte, installierte ich Bumblebee, damit meine NVIDIA-Karte funktioniert, und wechselte nach Bedarf zwischen Intel und NVIDea, um die Akkulaufzeit zu verlängern und den Kühler zu betreiben.

add-apt-repository ppa: Hummel / Stall
sudo apt-get install nvidia-current
sudo apt-get install bumblebee bumblebee-nvidia

Starten Sie neu

Testen Sie dann, ob es funktioniert

optirun glxspheres

So installieren Sie die Bumblebee-Benutzeroberfläche: /ubuntu//a/170596/207851

Danach läuft mein Laptop durchschnittlich 47 Grad Celsius und mein Akku hält durchschnittlich 3 Stunden (dies ist mit Musikhören und Entwickeln / 3D-Arbeiten wie Using Blender).

Viel Glück und ich hoffe das hilft

Jonathan Moss
quelle
0

Ich werde versuchen zu helfen.

Zuerst bist du richtig. Sie können den EFI-Modus und die proprietären Treiber nicht verwenden. Nicht nur das, sondern auch viele andere Dinge werden kaputt gehen. Derzeit ist die Installation im BIOS-Modus die beste Option für den Support.

Nun zum Erhitzen. Denken Sie daran, dass OS X kühler läuft, da sie wissen, dass ihr "Schrittwärmer" bei höheren Temperaturen unangenehm ist. Das heißt, sie sind überkühlt, sodass Sie mit einem 17-Zoll-Kühlkörper auf Ihrem Schoß still sitzen können. Das heißt, Sie können die Dinge unter Linux steuern, damit Sie auch überkühlt werden (und die Temperatur kühler halten).

Dieser Code ist ziemlich gut. Kompilieren Sie es, führen Sie es aus und stellen Sie es so ein, dass es beim Booten startet, und Sie sollten "bessere" Ergebnisse erzielen.

Sie können die Lüftergeschwindigkeit auch manuell steuern.

zuerst

echo 1 > /sys/devices/platform/applesmc.768/fan1_manual  
echo 1 > /sys/devices/platform/applesmc.768/fan2_manual  

Geben Sie dann eine Geschwindigkeit an die Lüftersteuerung zurück

echo 6000 > /sys/devices/platform/applesmc.768/fan1_input  
echo 6000 > /sys/devices/platform/applesmc.768/fan2_input  

6000 ist die Drehzahl, mit der Sie zielen (in den obigen Skripten). 6000 ist die "offizielle" max. Bei dieser Geschwindigkeit erhalten Sie den bekannten Startton und Ihr 17-Zoll-Kühlkörper wird ziemlich kalt. Sie werden auch Ihre Lüfter ziemlich schnell ausbrennen. 2000 ist das Minimum. Ich laufe bei 2000 ziemlich oft und sehe selten über 3000 Das bedeutet natürlich, dass es wärmer läuft als unter OS X.

Die offizielle Höchsttemperatur für die CPU in diesem Modell beträgt 105 Grad. Celsius. Sie haben also viel Spielraum.

PS Reinigen Sie Ihre Atemwege, nur um sicherzugehen.

PPS Hier ist meine Konfiguration für mbpfan, die ich zum Überkühlen verwende (um einiges), aber sie hält den Laptop kühl und viel kühler als in OS X.

[general]   
min_fan_speed = 3200    # default is 2000  
max_fan_speed = 6200    # default is 6200  
low_temp = 45       # try ranges 55-63, default is 63  
high_temp = 60          # try ranges 58-66, default is 66  
max_temp = 62           # do not set it > 90, default is 86  
polling_interval = 7    # default is 7  

Was ich tue, ist etwas auszuführen, das meine CPU wirklich aufhäuft und die CPUs zu 100% ausführt. Lassen Sie dann die Lüfter mit 6000 U / min laufen und sehen Sie, wo sich die Temperatur einstellt. Stellen Sie dann diese Temperatur als mein "high_temp" ein.

Stellen Sie das "max_temp" auf etwas darüber hinaus. Nicht zu weit, aber weiter als das Beispiel der Überkühlung.

Weiter Schalten Sie die CPU aus, um Strom zu sparen. Und lassen Sie es im Leerlauf stehen, während die Lüfter noch bei 6000 liegen. Stellen Sie diese Temperatur auf "low_temp" ein.

Stellen Sie es schließlich für eine minimale Lüftergeschwindigkeit auf etwas ein, das Ihnen gefällt. Grundsätzlich gerade so leise, dass man es nicht hören kann.

Dann lässt du es eine Weile laufen und siehst. Auch hier beträgt die maximale CPU-Temperatur für das Modell 105 Grad, sodass Linux nicht falsch ist, wenn es in die 80er Jahre geht. Es wird nichts schaden. Wenn Sie die Lüftergeschwindigkeit ändern, bleibt der Gehäusekühler jedoch kühler (da der Kühlkörper für CPU und GPU auf Ihrem Schoß ziemlich warm werden kann), und das ist reine Präferenz.

Für mich funktioniert ein Tief von 50, ein Hoch von 60 und ein Maximum von 70 ganz gut. Aber auch dieses Maß an Optimierung ist alles nach Geschmack. Mit dieser Überkühlungskonfiguration wird meine CPU nie über 59. Natürlich ist es auch ziemlich laut.

coteyr
quelle
"Sie werden auch Ihre Fans ziemlich schnell ausbrennen." Bedeutet das, dass dies meine Fans brechen wird? Oder habe ich falsch verstanden? Ansonsten werde ich das versuchen.
Stommestack
Wenn Sie mit 6000 Vollzeit arbeiten, brennen sie ziemlich schnell aus. Wenn Sie sie mit einer normaleren Geschwindigkeit (z. B. 3000-4000) ausführen, ist dies in Ordnung. Die Fans sollen bei 6000 ihren Höhepunkt erreichen und dort nicht ganztägig laufen.
Coteyr
Ich habe versucht, das zu installieren, aber keine Ergebnisse. Mein MacBook ist noch heißer. Ich kann die Hitze fühlen.
Stommestack
Haben Sie versucht, Ihre Lüfter manuell mit 6000 zu betreiben und Ihren Luftströmungsweg freizugeben? Meine CPU-Temperatur liegt derzeit bei 59,5 und alle vier Kerne bei 100%. Dann wird es nicht viel cooler.
Coteyr
Es kann nicht mein Luftströmungsweg sein, weil es unter Mac OS X wirklich cool ist. Wenn ich meinen Finger gegen die linke Alt-Taste halte, kann ich in Ubuntu Hitze spüren. Aber nicht in Mac OS X.
Stommestack