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.