Para mim, inicializar o Ubuntu no modo UEFI com os drivers da Nvidia carregados também sempre resultava na conhecida tela preta quando o X era iniciado.
Isso foi até ontem!
Depois de encontrar algumas informações muito promissoras em outro tópico sobre a instalação do Windows 7 no modo UEFI em um Mac. As pessoas de lá lutaram com o suporte legado necessário para as 10h do Windows 7 e descobriram que, para contornar isso, é possível executar uma instalação autônoma (porque o monitor não funciona durante a instalação). As informações cruciais para inicializar com êxito o Ubuntu no modo UEFI, mesmo com os drivers da Nvidia, eram que, após o início da inicialização do EFI (durante a entrega ao grub), o firmware da Apple na verdade não ativa a placa VGA como mestre do barramento PCI-E . A equipe do Windows explicou como contornar isso usando um shell EFI que carrega em cadeia o gerenciador de inicialização do Windows para, pelo menos, executar a instalação no modo autônomo. E aqui estão as boas notícias:é fácil fazer isso no GRUB !
Na verdade, estou digitando isso no MacBook Pro 7,1 (meados de 2010) executando o Ubuntu Vivid inicializado no modo UEFI ( Xorg.0.log ). No entanto, deve ser fácil rodar ou adaptar isso a qualquer distribuição Linux que forneça uma versão EFI do GRUB, por exemplo, 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
Para encurtar a história, precisamos definir dois registros PCI-E: um que permita o barramento master na placa de vídeo e o outro que permita o suporte a VGA na ponte PCI-E da placa de vídeo. Portanto, na verdade, não tem nada a ver com os drivers da Nvidia e, dependendo do ponto de vista, nem mesmo com a implementação desatualizada / aleijada da Apple, você o chama de EFI.
Foi assim que eu resolvi. Obviamente, o kudo vai principalmente para os caras no fórum MacRumors.
AVISO LEGAL As instruções a seguir são fornecidas como estão, sem garantias, nem assumimos qualquer responsabilidade. FAÇA ISSO POR SUA CONTA E RISCO!
1. Instale o Ubuntu no modo UEFI com os drivers da Nvidia
Não entrarei em detalhes aqui, porque existem muitos artigos na Web mostrando como fazer isso e os drivers nouveau executando sua máquina a quente ou com a tela preta após a instalação dos drivers da Nvidia (por exemplo, www.rodsbooks.com / ubuntu-efi ).
Observe, no entanto, que as instruções a seguir assumem que você instalou e inicializou com sucesso no modo UEFI. Você pode verificar isso verificando a existência do diretório / sys / firmware, criado apenas após a inicialização no modo EFI.
2. Encontre os identificadores de barramento PCI-E certos
Precisamos dos IDs da placa gráfica e da ponte PCI-E à qual ela está conectada. Emita o seguinte comando em um 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
Veja (1) a linha dizendo display e (2) a linha com ponte logo antes dessa linha de exibição. Anote os IDs de barramento PCI-E (formato XX: YY.Z) do dispositivo de ponte (aqui 00: 17.0) e o dispositivo de exibição (aqui 04: 00.0) e lembre-se de qual é qual. Nota : esses IDs podem ser diferentes em sua máquina, dependendo do modelo e da revisão do Mac.
3. Crie um script GRUB para configurar os registradores PCI-E durante a inicialização
Inicie um editor de texto com o sudo nano /etc/grub.d/01_enable_vga.conf e copie / cole o conteúdo abaixo. Substitua 00: 17.0 pelo ID PCI-E do seu dispositivo de ponte anotado na etapa 2. Substitua 04: 00.0 pelo ID PCI-E do seu dispositivo de exibição anotado na etapa 2.
cat << EOF
setpci -s "00:17.0" 3e.b=8
setpci -s "04:00.0" 04.b=7
EOF
Por fim, torne o arquivo criado executável e atualize seus arquivos de configuração do grub usando os dois comandos a seguir .
~$ sudo chmod 755 /etc/grub.d/01_enable_vga.conf
~$ sudo update-grub
4. Reinicialize e verifique
Se, após a reinicialização, os valores do registro foram definidos como 8 (dispositivo de ponte) e 7 (dispositivo de exibição), tudo correu bem:
~$ sudo setpci -s "00:17.0" 3e.b
08
~$ sudo setpci -s "04:00.0" 04.b
07
5. Instale os drivers da Nvidia e divirta-se!
Use a GUI de drivers adicionais do Ubuntu para instalar os drivers da Nvidia. Eu recomendo seguir este artigo sobre como habilitar os controles de brilho, porque ele não funciona imediatamente.