Drivers NVidia proprietários com EFI no Mac, para evitar o superaquecimento

10

Eu tenho um Mac OS X 10.8 de inicialização dupla e o Kubuntu 12.10 64x no MacBook branco de meados de 2010 instalado. (Identificador do modelo: MacBook7,1. Atualizei minha memória RAM de 2 GB para 8 GB, se isso for importante.) Eu tenho os drivers NVIDIA proprietários instalados no meu Kubuntu.

A julgar pelo widget do monitor de temperatura no Kubuntu, minha temperatura parece ser ~ 10 ℃ mais quente em comparação com o Mac OS X. No Mac OS XI use Monitor de Temperatura . Estou comparando os valores de CPU Core 0 e CPU Core 1 no Kubuntu com os valores de CPU Core 1 e CPU Core 2 no Mac OS X.

10 ℃ mais pode não ser um desastre de superaquecimento muito grande, mas quando eu faço coisas realmente intensas no meu computador (por exemplo, jogar Equipe Fortress 2 a pouco tempo) meu processador está em ~ 70 ℃ no OSX, e quando ele está no Kubuntu, meu processador é ~ 80 ℃. Eu me preocupo que a temperatura mais alta possa encurtar a vida útil do meu laptop.

Eu fiz algumas pesquisas e descobri que pode ser que eu instalei no modo BIOS, o que causa o calor. Não consigo instalá-lo no modo EFI, porque os drivers NVidia proprietários não funcionam (já tentei isso, ele deu uma tela preta). Alguém sabe como fazer com que os drivers NVidia propietários funcionem no modo EFI?

Edit: Ok, mesmo que não exista uma maneira de usar os drivers proprietários nvidia no modo EFI (não parece que há uma maneira de fazer isso, eu não estou recebendo nenhuma resposta), eu já ser feliz se o aquecimento pode ser corrigido no modo BIOS. Como posso, pelo menos, corrigir o aquecimento no modo BIOS? Eu tentei colocar isso no meu xorg.conf na seção Device para ativar a economia de energia:

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

... mas isso não funcionou.

Ah, e eu não estou usando o rEFIt, a propósito, poderia ser isso?

    
por Jop V. 05.03.2013 / 12:47

3 respostas

11

Para mim, inicializar o Ubuntu no modo UEFI com os drivers da Nvidia carregados também sempre resultou na conhecida tela preta quando o X foi iniciado.

Isso foi até ontem!

Depois de encontrar informações muito promissoras no outro tópico sobre a instalação do Windows 7 em Modo UEFI em um Mac. As pessoas de lá lutaram com o suporte legado int de 10h do Windows 7 e descobriram que, para contornar isso, é possível executar uma instalação autônoma (porque a exibição não funciona durante a instalação). A informação crucial para inicializar com sucesso o Ubuntu no modo UEFI, mesmo com drivers da Nvidia , foi que, no início da inicialização EFI (ao passar para o grub), o firmware da Apple não ativa a placa VGA como PCI -E mestre de barramento . Os caras do Windows explicaram como contornar isso usando um shell EFI que sobrecarrega o gerenciador de inicialização do Windows para, pelo menos, executar a instalação no modo autônomo. E aqui está a boa notícia: é fácil fazer isso no GRUB !

Na verdade, estou digitando isso agora em um MacBook Pro 7,1 (meados de 2010) rodando o Ubuntu Vivid inicializado no modo UEFI ( Xorg. 0.log ). No entanto, deve ser fácil de executar ou adaptar isso a qualquer distribuição Linux que forneça uma versão EFI do GRUB, por ex. 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 longa história, temos que configurar dois registradores PCI-E: um que habilite o barramento-mestre na placa de vídeo e o outro que permita o suporte a VGA na ponte PCI-E da placa de vídeo. Então, 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 de EFI desatualizada / aleijada / de nome da Apple.

Foi assim que resolvi isso. Claro, o kudo vai principalmente para os caras no fórum MacRumors. EXONERAÇÃO DE RESPONSABILIDADE As instruções a seguir são fornecidas como estão, sem garantias nem assumem qualquer responsabilidade. FAÇA ISSO POR SUA CONTA E RISCO!

1. Instale o Ubuntu no modo UEFI com os drivers da Nvidia

Eu não vou entrar em detalhes aqui porque há muitos artigos na web mostrando como fazer isso e acabar com os drivers nouveau rodando sua máquina a quente ou com a tela preta depois de instalar os drivers Nvidia (por exemplo www.rodsbooks.com/ubuntu-efi ).

Observe, no entanto, que as instruções a seguir supõem que você instalou e inicializou com êxito no modo UEFI. Você pode verificar isso verificando a existência do diretório / sys / firmware que é criado apenas após a inicialização no modo EFI.

2. Encontre os identificadores de barramento PCI-E corretos

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

Dê uma olhada em (1) a linha que indica a exibição e (2) a linha com a ponte 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 na sua máquina, dependendo do seu modelo e revisão do Mac.

3. Crie um script GRUB para configurar os registradores PCI-E durante a inicialização

Abra 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 dispositivo de bridge anotado na etapa 2. Substitua 04: 00.0 com o 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 seguintes DOIS comandos.

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

4. Reinicie e verifique

Se, após a reinicialização, os valores de 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 Drivers adicionais do Ubuntu para instalar os drivers da Nvidia. Eu recomendo seguir este artigo sobre como habilitar controles de brilho porque não trabalhe fora da caixa.

    
por Andreas 24.04.2015 / 23:17
1

Eu tive um problema semelhante com meu laptop, o seguinte funcionou para mim, espero que ajude você.

Em primeiro lugar, o uso de Júpiter ajudou a resolver a maioria dos problemas de aquecimento e de vida útil da bateria. Meu laptop funciona em média 50 graus Celsius e estava funcionando a 68 graus Celsius antes de instalar o Jupiter.

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

Depois que instalei o Jupiter, instalei o Bumblebee para que minha placa nvidia funcionasse e alternasse entre Intel e nvidea conforme necessário para economizar a bateria e funcionar mais frio.

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

Reinicializar

Em seguida, teste para ver se funciona com

optirun glxspheres

Para instalar o Bumblebee GUI: link

Depois disso, meu laptop funciona em média 47 graus Celsius e minha bateria dura em média 3 horas (isso é com ouvir música e desenvolver trabalhos em 3D como o uso do Blender).

Boa sorte e espero que isso ajude

    
por Jonathan Moss 26.10.2013 / 22:37
0

Vou tentar ajudar.

Primeiro você está correto. Você não pode usar o modo EFI e os drivers proprietários. Não só isso, mas muitas outras coisas serão colocadas em funcionamento. Por enquanto, sua melhor opção para suporte é instalar no modo BIOS.

Agora, quanto ao calor. Tenha em mente que o OS X funciona mais frio porque eles sabem que o "aquecedor de virilha" é desagradável em temperaturas mais altas. Ou seja eles ficam frescos para que você possa ficar quieto com um dissipador de calor de 17 "no seu colo. Dito isso, você pode controlar as coisas no Linux para que você também possa esfriar demais (e manter a temperatura mais fria).

Este Código é muito bom. Compile-o, execute-o e configure-o para iniciar na inicialização, e você deverá obter resultados "melhores".

Você também pode controlar manualmente a velocidade do ventilador.

primeiro

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

Em seguida, faça uma eco no controlador do ventilador

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

6000 é o RPM que acelera sua segmentação (nos scripts acima). 6000 é o máximo "oficial". Nessa velocidade, você obterá o familiar som de decolagem, e seu dissipador de calor de 17 polegadas ficará bastante frio. Você também queimará seus fãs muito rapidamente. 2000 é o mínimo. Eu corro em 2000 um pouco e raramente vejo mais de 3000 mesmo quando joga, claro que isso significa que ele fica mais quente no OS X.

A temperatura máxima oficial para a CPU nesse modelo é de 105 graus. Celsius. Então você tem muito espaço de manobra.

P.S. Limpe suas vias aéreas, só para ter certeza.

P.P.S. Aqui está a minha configuração para mbpfan é um que eu estou usando para overcool (por um pouco), mas mantém o laptop legal ao toque, e muito coooler então no 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  

O que eu faço é executar algo que realmente sobrecarregará meu processador e executará as CPUs em 100%. Em seguida, execute os ventiladores a 6000 RPM e veja onde a temperatura se estabiliza. Em seguida, defina essa temperatura como meu "high_temp".

Defina o "max_temp" para algo um pouco além disso. Não para longe, mas ainda mais o exemplo de esfriamento excessivo.

Próximo Transforme a CPU em economia de energia. E deixe-o ocioso com os fãs ainda em 6000. Defina essa temperatura para o seu "low_temp".

Finalmente, para a velocidade mínima do ventilador, defina-o para algo "você gosta". Basicamente apenas baixo o suficiente para que você não possa ouvi-lo.

Então você o executa por um tempo e vê. Mais uma vez, a temperatura máxima do CPU para o modelo é de 105 graus, então o Linux não está errado por deixá-lo entrar nos anos 80. Não vai prejudicar uma coisa. Mude a velocidade do ventilador, mas mantenha o cooler da carcaça (que, por ser o dissipador de calor da CPU e da GPU, pode aquecer bastante no seu colo), e isso é pura preferência.

Para mim, um mínimo de 50, um máximo de 60 e um máximo de 70 funciona muito bem. Mas novamente este nível de ajustes é todo para provar. Com essa configuração super esfriada Meu CPU nunca fica acima de 59. Claro que também é bem alto.

    
por coteyr 11.06.2013 / 18:19