Controladores NVidia patentados con EFI en Mac, para evitar el sobrecalentamiento


12

Tengo un Mac OS X 10.8 de arranque dual y Kubuntu 12.10 64x en mi MacBook blanco desde mediados de 2010 instalado. (Identificador del modelo: MacBook7,1. He actualizado mi RAM de 2GB a 8GB, si eso importa). Tengo los controladores NVIDIA patentados instalados en mi Kubuntu.

A juzgar por el widget del monitor de temperatura en Kubuntu, mi temperatura parece ser ~ 10 ℃ más alta en comparación con Mac OS X. En Mac OS XI uso el Monitor de temperatura . Estoy comparando los valores de CPU Core 0 y CPU Core 1 en Kubuntu con los valores de CPU Core 1 y CPU Core 2 en Mac OS X.

10 ℃ más pueden no ser un gran desastre de sobrecalentamiento, pero cuando hago cosas realmente intensas en mi computadora (como jugar Team Fortress 2 por un tiempo) mi CPU está a ~ 70 ℃ en OSX, y cuando juego un rato en Kubuntu , mi CPU es ~ 80 ℃. Me preocupa que la temperatura más alta pueda acortar la vida útil de mi computadora portátil.

Investigué un poco y descubrí que puede ser que lo instalé en modo BIOS, lo que causa el calor. No puedo instalarlo en modo EFI, porque los controladores propietarios de NVidia no funcionan en ese momento (ya lo intenté, dio una pantalla en negro). ¿Alguien sabe cómo hacer que los controladores propietarios de NVidia funcionen en modo EFI?

Editar: Ok, incluso si no hay una manera de usar los controladores propietarios de nvidia en modo EFI (no parece que haya una manera de hacerlo, no obtengo ninguna respuesta), ya estaría feliz si La calefacción podría repararse en modo BIOS. ¿Cómo puedo al menos arreglar la calefacción en modo BIOS? Intenté poner esto en mi xorg.conf en la sección Dispositivo para habilitar el ahorro de energía:

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

... pero eso no funcionó.

Ah, y no estoy usando rEF. Por cierto, ¿podría ser eso?

Respuestas:


18

Para mí, arrancar Ubuntu en modo UEFI con los controladores Nvidia cargados, también siempre resultó en la conocida pantalla negra cuando se inició X.

Eso fue hasta ayer!

Después de encontrar información muy prometedora en otro hilo sobre la instalación de Windows 7 en modo UEFI en una Mac. La gente de allí luchó con el soporte heredado int 10h de Windows 7 y descubrió que para evitarlo, uno puede realizar una instalación desatendida (porque la pantalla no funciona durante la instalación). La información crucial para arrancar con éxito Ubuntu en modo UEFI incluso con los controladores de Nvidia fue que al iniciar el arranque EFI (mientras se entrega a grub), el firmware de Apple en realidad no activa la tarjeta VGA como maestro de bus PCI-E . Los chicos de Windows explicaron cómo eludir esto usando un shell EFI que carga en cadena el administrador de arranque de Windows para al menos ejecutar la configuración en modo desatendido. Y aquí están las buenas noticias:¡Es fácil hacer esto en GRUB !

De hecho, en este momento estoy escribiendo esto en un MacBook Pro 7,1 (mediados de 2010) con Ubuntu Vivid arrancado en modo UEFI ( Xorg.0.log ). Sin embargo, debería ser fácil ejecutarlo o adaptarlo a cualquier distribución de Linux que proporcione una versión EFI de GRUB, por ejemplo, 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 abreviar la larga historia, tenemos que establecer dos registros PCI-E: uno que permite el masterización de bus en la tarjeta de video y el otro que permite el soporte VGA en el puente PCI-E de la tarjeta de video. Por lo tanto, en realidad no tiene nada que ver con los controladores de Nvidia y, dependiendo del punto de vista, ni siquiera con la implementación EFI obsoleta / paralizada / de Apple.

Así es como lo resolví. Por supuesto, los kudo van principalmente a los chicos en el foro de MacRumors. DESCARGO DE RESPONSABILIDAD Las siguientes instrucciones se proporcionan tal cual, sin garantías ni asumo ninguna responsabilidad. ¡HAGA ESTO A SU PROPIO RIESGO!

1. Instale Ubuntu en modo UEFI con los controladores de Nvidia

No entraré en detalles aquí porque hay muchos artículos en la web que muestran cómo hacer esto y terminar con los controladores nouveau que ejecutan su máquina en caliente o con la pantalla en negro después de instalar los controladores de Nvidia (por ejemplo, www.rodsbooks.com / ubuntu-efi ).

Sin embargo, tenga en cuenta que las siguientes instrucciones asumen que ha instalado e iniciado correctamente en modo UEFI. Puede verificar eso comprobando la existencia del directorio / sys / firmware que solo se crea después de arrancar en modo EFI.

2. Encuentre los identificadores de bus PCI-E correctos

Necesitamos tanto las ID de la tarjeta gráfica como el puente PCI-E al que está conectada. Emita el siguiente comando en un 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

Eche un vistazo a (1) la línea que dice pantalla y (2) la línea con puente justo antes de esa línea de pantalla. Escriba los identificadores de bus PCI-E (formato XX: YY.Z) del dispositivo puente (aquí 00: 17.0) y el dispositivo de visualización (aquí 04: 00.0) y recuerde cuál es cuál. Nota : Esas ID pueden ser diferentes en su máquina, dependiendo de su modelo y revisión de Mac.

3. Cree un script GRUB para configurar los registros PCI-E durante el arranque

Inicie un editor de texto con sudo nano /etc/grub.d/01_enable_vga.conf y copie / pegue el contenido a continuación. Reemplace 00: 17.0 con la ID PCI-E de su dispositivo de puente que se indica en el paso 2. Reemplace 04: 00.0 con la ID PCI-E de su dispositivo de pantalla que se indica en el paso 2.

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

Finalmente, haga que el archivo creado sea ejecutable y actualice sus archivos de configuración de grub usando los siguientes DOS comandos.

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

4. Reiniciar y verificar

Si, después de reiniciar, los valores de registro se han establecido en 8 (dispositivo puente) y 7 (dispositivo de visualización), todo salió bien:

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

5. Instale los controladores de Nvidia y ¡disfrute!

Use la GUI de controladores adicionales de Ubuntu para instalar los controladores de Nvidia. Recomiendo seguir este artículo sobre cómo habilitar los controles de brillo porque no funciona de forma inmediata.


¿Hay alguna posibilidad de que pueda vincular a su archivo /etc/X11/xorg.conf?
Patrick

Lo siento, vendí la máquina unos meses después de escribir este artículo. Pero puede intentar preguntar en este hilo de foros de Arch: bbs.archlinux.org/viewtopic.php?id=162289&p=4 .
Andreas

1

Tuve un problema similar con mi computadora portátil, lo siguiente funcionó para mí, espero que te ayude.

En primer lugar, usar Júpiter ayudó a resolver la mayoría de los problemas de sobrecalentamiento y duración de la batería.
Mi computadora portátil funciona en un promedio de 50 grados centígrados y estaba funcionando a 68 grados centígrados antes de instalar Júpiter.

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

Después de instalar Jupiter, instalé Bumblebee para que mi tarjeta nvidia funcione y cambie entre intel y nvidea según sea necesario para ahorrar batería y funcionar más fría.

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

Reiniciar

Luego prueba para ver si funciona con

optirun glxspheres

Para instalar la GUI de Bumblebee: /ubuntu//a/170596/207851

Después de esto, mi computadora portátil funciona en promedio 47 grados centígrados y mi batería dura en promedio 3 horas (esto es con escuchar música y desarrollar / trabajar en 3D como Usar Blender).

Buena suerte y espero que esto ayude


0

Trataré de ayudarlo.

Primero tienes razón. No puede usar el modo EFI y los controladores propietarios. No solo eso, sino que muchas otras cosas se enloquecerán. Por ahora, su mejor opción de soporte es instalar en modo BIOS.

Ahora en cuanto al calor. Tenga en cuenta que OS X funciona más frío porque saben que su "calentador de entrepierna" es desagradable a temperaturas más altas. Es decir, se enfrían demasiado para que pueda sentarse quieto con un disipador de calor de 17 "en su regazo. Dicho esto, puede controlar las cosas en Linux para que también pueda enfriarse demasiado (y mantener la temperatura más fría).

Este código es bastante bueno. Compílelo, ejecútelo y configúrelo para que comience en el arranque, y debería obtener "mejores" resultados.

También puede controlar manualmente la velocidad del ventilador.

primero

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

Luego haga eco de una velocidad al controlador del ventilador

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

6000 es la velocidad de RPM de su orientación (en los scripts anteriores). 6000 es el máximo "oficial". A esa velocidad obtendrá el sonido de despegue familiar, y su disipador de calor de 17 "se enfriará bastante. También quemará sus ventiladores bastante rápido. 2000 es el mínimo. Corro a 2000 un poco y rara vez veo más de 3000 incluso cuando se juega. Por supuesto, eso significa que se ejecuta más cálido que en OS X

La temperatura máxima oficial para la CPU en ese modelo es de 105 grados. Celsius. Así que tienes mucho margen de maniobra.

PD: Limpie sus vías respiratorias, solo para asegurarse.

PPS Aquí está mi configuración para mbpfan, es una que estoy usando para sobreenfriar (bastante) pero mantiene la laptop fría al tacto y mucho más fría que en 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  

Lo que hago es ejecutar algo que realmente acumule mi CPU y ejecutar las CPU al 100%. Luego haga funcionar los ventiladores a 6000 RPM y vea dónde se asienta la temperatura. Luego establezca esa temperatura como mi "high_temp".

Establezca "max_temp" en algo un poco más allá de eso. No muy lejos, pero más allá del ejemplo de enfriamiento excesivo.

Siguiente Encienda la CPU para ahorrar energía. Y déjelo inactivo con los ventiladores todavía en 6000. Ajuste esa temperatura a su "baja temperatura".

Finalmente, para la velocidad mínima del ventilador, ajústelo en algo que le guste. Básicamente lo suficientemente bajo como para no poder escucharlo.

Luego lo ejecutas por un tiempo y ves. Nuevamente, la temperatura máxima de la CPU para el modelo es de 105 grados, por lo que Linux no está equivocado al permitir que llegue a los 80. No dañará nada. Sin embargo, cambiar la velocidad del ventilador mantiene la carcasa más fría (que debido a que es el disipador de calor para la CPU y la GPU puede calentarse bastante en su regazo), y eso es pura preferencia.

Para mí, un mínimo de 50, un máximo de 60 y un máximo de 70 funciona bastante bien. Pero, de nuevo, este nivel de ajustes es para todos los gustos. Con esa configuración de enfriamiento excesivo, mi CPU nunca supera los 59. Por supuesto, también es bastante ruidoso.


"También quemarás a tus fans bastante rápido". ¿Eso significa que esto romperá mis fans? ¿O entendí mal? De lo contrario, intentaré esto.
stommestack

Correr a 6000 a tiempo completo los quemará bastante rápido. Ejecutarlos a una velocidad más normal (digamos 3000-4000) estará bien. Los fanáticos están destinados a alcanzar un máximo de 6000 no funcionar allí a tiempo completo.
coteyr

Intenté instalar eso, pero no hubo resultados. Mi MacBook aún está más caliente. Puedo sentir el calor
stommestack

¿Intentó hacer funcionar sus ventiladores manualmente a 6000 y limpiar su ruta de flujo de aire? La temperatura de mi CPU está actualmente en 59.5 y los cuatro núcleos están al 100%. No será mucho más frío que eso.
coteyr

No puede ser mi camino de flujo de aire porque bajo Mac OS X es realmente genial. Cuando sostengo mi dedo contra la tecla alt izquierda, puedo sentir calor en Ubuntu. Pero no en Mac OS X.
stommestack
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.