Per me, l'avvio di Ubuntu in modalità UEFI con i driver Nvidia caricati, ha sempre portato alla nota schermata nera all'avvio di X.
Era fino a ieri!
Dopo aver incontrato alcune informazioni molto promettenti in un altro thread sull'installazione di Windows 7 in modalità UEFI su un Mac. La gente laggiù ha lottato con il supporto legacy richiesto per 10 ore di Windows 7 e ha scoperto che per ovviare a questo, è possibile eseguire un'installazione automatica (perché il display non funziona durante l'installazione). Le informazioni cruciali per avviare con successo Ubuntu in modalità UEFI anche con i driver Nvidia erano che all'avvio di EFI boot (mentre si passa a grub), il firmware di Apple in realtà non attiva la scheda VGA come master bus PCI-E . I ragazzi di Windows hanno spiegato come aggirare questo problema usando una shell EFI che carica a catena il boot manager di Windows per eseguire almeno l'installazione in modalità automatica. Ed ecco la buona notizia:è facile farlo in GRUB !
In effetti, sto scrivendo questo su un MacBook Pro 7,1 (metà 2010) con Ubuntu Vivid avviato in modalità UEFI ( Xorg.0.log ). Tuttavia, dovrebbe essere facile eseguirlo o adattarlo a qualsiasi distribuzione Linux che fornisca una versione EFI di GRUB, ad esempio 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
Per farla breve, dobbiamo impostare due registri PCI-E: uno che consente il mastering del bus sulla scheda video e l'altro che abilita il supporto VGA sul bridge PCI-E della scheda video. Quindi in realtà non ha nulla a che fare con i driver Nvidia e, a seconda del punto di vista, nemmeno con Apple obsoleto / paralizzato / si chiama implementazione EFI.
Ecco come l'ho risolto. Naturalmente, i kudo vanno principalmente ai ragazzi sul forum MacRumors.
ESCLUSIONE DI RESPONSABILITÀ Le seguenti istruzioni sono fornite così come sono, senza garanzie né assumo alcuna responsabilità. FAI QUESTO A TUO RISCHIO!
1. Installa Ubuntu in modalità UEFI con i driver Nvidia
Non entrerò nei dettagli qui perché ci sono molti articoli sul web che mostrano come farlo e finiscono con i driver nouveau che eseguono la macchina calda o con lo schermo nero dopo aver installato i driver Nvidia (ad es. Www.rodsbooks.com / ubuntu-efi ).
Si noti tuttavia che le seguenti istruzioni presuppongono che l'installazione e l'avvio siano stati eseguiti correttamente in modalità UEFI. È possibile verificarlo verificando l'esistenza della directory / sys / firmware che viene creata solo dopo l'avvio in modalità EFI.
2. Trova i giusti identificatori di bus PCI-E
Sono necessari sia gli ID per la scheda grafica sia il bridge PCI-E a cui è connessa. Emettere il seguente comando in una shell:
~$ 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
Dai un'occhiata a (1) la linea che dice display e (2) la linea con bridge proprio prima di quella linea di display. Annotare gli ID del bus PCI-E (formato XX: YY.Z) del dispositivo bridge (qui 00: 17.0) e del dispositivo di visualizzazione (qui 04: 00.0) e ricordare quale è quale. Nota : tali ID potrebbero essere diversi sul computer in uso, a seconda del modello e della revisione del Mac.
3. Creare uno script GRUB per l'impostazione dei registri PCI-E durante l'avvio
Avvia un editor di testo con sudo nano /etc/grub.d/01_enable_vga.conf e copia / incolla il contenuto di seguito. Sostituire 00: 17.0 con l'ID PCI-E del dispositivo bridge annotato nel passaggio 2. Sostituire 04: 00.0 con l'ID PCI-E del dispositivo display indicato nel passaggio 2.
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "04:00.0" 04.b=7
EOF
Infine, rendere eseguibile il file creato e aggiornare i file di configurazione di grub utilizzando i seguenti DUE comandi.
~$ sudo chmod 755 /etc/grub.d/01_enable_vga.conf
~$ sudo update-grub
4. Riavvia e controlla
Se, dopo il riavvio, i valori del registro sono stati impostati su 8 (dispositivo bridge) e 7 (dispositivo di visualizzazione), tutto è andato bene:
~$ sudo setpci -s "00:17.0" 3e.b
08
~$ sudo setpci -s "04:00.0" 04.b
07
5. Installa i driver Nvidia e divertiti!
Utilizzare la GUI dei driver aggiuntivi di Ubuntu per installare i driver Nvidia. Consiglio di seguire questo articolo su come abilitare i controlli di luminosità perché non funziona immediatamente.