Tengo un MacbookPro 5,1 / 5,2 / 5,3 que viene con dos tarjetas gráficas, y por defecto obtengo el 9600M GT que consume más batería que el otro. No tengo idea de cómo desactivarlo y activar el segundo.
Más detalles después de la respuesta de Bruno:
Estoy usando Ubuntu:
He instalado rEFIt 0.14, y GRUB2 EFI64
He modificado la entrada en el archivo /boot/grub/grub.cfg agregando
outb 0x750 0
aunque en la parte superior del archivo dice:
DO NOT EDIT THIS FILE It is automatically generated by grub-mkconfig using templates from /etc/grub.d and settings from /etc/default/grub
Guardo el archivo, inicio, selecciono la entrada y luego tengo una pantalla negra y no pasa nada más.
He intentado https://help.ubuntu.com/community/UEFIBooting#Selecting_the_graphic_card también, con el mismo resultado.
Gracias.
Para deshabilitar el Nvidia 9600M GT, debe agregar lo siguiente a la entrada del menú grub outb 750x0
, es decir:
menuentry 'Ubuntu, with Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os { outb 0x750 0 recordfail set gfxpayload=$linux_gfx_mode insmod gzio insmod part_gpt insmod ext2 set root='(hd0,gpt5)' search --no-floppy --fs-uuid --set=root bc495raf-515r-4r2b-b3de-0ec679a7303a linux /boot/vmlinuz-3.0.0-12-generic root=UUID=bc495raf-515r-4r2b- b3de-0ec679a7303a ro hpet=force initrd /boot/initrd.img-3.0.0-12-generic }
Además para el apagado después de reanudar después de suspender:
En la reanudación, el controlador de gráficos discretos se activará y activará. Necesitamos apagarlo y volver a la GPU integrada.
Esto se puede hacer con un pequeño progtwig muy simple:
#include #include #define PORT_SWITCH_DISPLAY 0x710 #define PORT_SWITCH_SELECT 0x728 #define PORT_SWITCH_DDC 0x740 #define PORT_DISCRETE_POWER 0x750 static int gmux_switch_to_igd() { outb(1, PORT_SWITCH_SELECT); outb(2, PORT_SWITCH_DISPLAY); outb(2, PORT_SWITCH_DDC); return 0; } static void mbp_gpu_power(int state) { outb(state, PORT_DISCRETE_POWER); } int main(int argc, char **argv) { if (iopl(3) < 0) { perror ("No IO permissions"); return 1; } mbp_gpu_power(0); gmux_switch_to_igd(); return 0; }
Guárdalo en un archivo llamado igd.c. gcc -O2 igd.c -o igd
con gcc -O2 igd.c -o igd
. Esto creará un ejecutable llamado igd
. Ejecutado con privilegios de superusuario, apagará el controlador discreto y cambiará al controlador integrado.
Ahora tenemos que ejecutar esto en el currículum. Cree un archivo llamado /etc/pm/sleep.d/10igd
Debe contener:
#!/bin/sh # /path/to/igd
Donde / ruta / a es la ruta donde colocó el ejecutable igd
que creamos en el paso anterior.
chmod +x /etc/pm/sleep.d/10igd
Este archivo se ejecutará en suspender y reanudar. Hecho correctamente, ese script 10igd verificará si se trata de una suspensión / reanudación / congelación / descongelación y solo se ejecutará cuando sea necesario. Como es, se ejecuta en todos ellos. No es un gran problema, no hará daño ejecutarlo durante la congelación o suspensión.
Tengo todo funcionando en mi mbp5,1: Sonido, Retroiluminación de LCD, Retroiluminación del teclado, Ventiladores que se agotan (desde que se deshabilitó 9600M GT), Apple como atajo (CMD + C para copiar), Flash (casi estable) ... Tan solo pregunta si necesitas más ayuda