Как отключить nvidia 9600M GT на Macbook Pro 5,1 / 5,2 / 5,3

У меня MacbookPro 5,1 / 5,2 / 5,3, который поставляется с двумя графическими картами, и по умолчанию я получаю 9600M GT, который потребляет больше батареи, чем другой. Я не знаю, как деактивировать его и активировать второй.

Подробнее после ответа Бруно:

Я использую Ubuntu:

  • 11.10 64 бит с ядром 3.0.0-15-generic (Zegnus, MBP 5,1)
  • 12.04 64 бит с ядром 3.2-0-24-generic (Megagolgoth, MBP 5,3)

Я установил rEFIt 0.14 и GRUB2 EFI64

Я изменил запись в файле /boot/grub/grub.cfg, добавив

outb 0x750 0

, хотя в верхней части файла говорится:

DO NOT EDIT THIS FILE

It is automatically generated by grub-mkconfig using templates
from /etc/grub.d and settings from /etc/default/grub

Я сохраняю файл, загружаю, выбираю запись, а затем у меня черный экран и ничего больше не происходит.

Я пробовал https://help.ubuntu.com/community/UEFIBooting#Selecting_the_graphic_card тоже, с тем же результатом.

Спасибо.

1
задан 23 May 2012 в 02:07

6 ответов

Чтобы отключить Nvidia 9600M GT, вы должны добавить следующее в запись меню grub outb 750x0, то есть:

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
}

Дополнительно для выключения после возобновления после приостановки:

При возобновлении работы дискретный графический контроллер будет включен и активен. Нам нужно отключить его и вернуться к встроенному графическому процессору.

Это можно сделать с помощью очень простой небольшой программы:

#include <stdio.h>
#include <sys/io.h>

#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;
}

Сохраните это в файле с именем igd. с. Скомпилируйте его с помощью gcc -O2 igd.c -o igd. Это создаст исполняемый файл под названием igd. Выполненный с привилегиями суперпользователя, он отключит дискретный контроллер и переключится на интегрированный контроллер.

Теперь нам нужно выполнить это при возобновлении. Создайте файл с именем /etc/pm/sleep.d/10igd

Он должен содержать:

#!/bin/sh
#
/path/to/igd

Where / path / to - это путь к тому, куда вы помещаете исполняемый файл igd, который мы создали в предыдущем step.

chmod +x /etc/pm/sleep.d/10igd

Этот файл будет исполнен при приостановке и возобновлении. Сделано правильно, что скрипт 10igd проверяет, является ли это приостановкой / возобновлением / замораживанием / оттаиванием и выполняется только при необходимости. As-is, он выполняется на всех из них.

У меня есть все, что работает на моем mbp5,1: звук, подсветка ЖК-дисплея, подсветка клавиатуры, вентиляторы, работающие на низком уровне (после отключения 9600M GT ), Apple вроде короткой вырезки (CMD + C для копирования), Flash (почти стабильная) ... Так что просто спросите, нужна ли вам дополнительная помощь

3
ответ дан 2 August 2018 в 02:39

Чтобы отключить Nvidia 9600M GT, вы должны добавить следующее в запись меню grub outb 750x0, то есть:

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
}

Дополнительно для выключения после возобновления после приостановки:

При возобновлении работы дискретный графический контроллер будет включен и активен. Нам нужно отключить его и вернуться к встроенному графическому процессору.

Это можно сделать с помощью очень простой небольшой программы:

#include <stdio.h>
#include <sys/io.h>

#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;
}

Сохраните это в файле с именем igd. с. Скомпилируйте его с помощью gcc -O2 igd.c -o igd. Это создаст исполняемый файл под названием igd. Выполненный с привилегиями суперпользователя, он отключит дискретный контроллер и переключится на интегрированный контроллер.

Теперь нам нужно выполнить это при возобновлении. Создайте файл с именем /etc/pm/sleep.d/10igd

Он должен содержать:

#!/bin/sh
#
/path/to/igd

Where / path / to - это путь к тому, куда вы помещаете исполняемый файл igd, который мы создали в предыдущем step.

chmod +x /etc/pm/sleep.d/10igd

Этот файл будет исполнен при приостановке и возобновлении. Сделано правильно, что скрипт 10igd проверяет, является ли это приостановкой / возобновлением / замораживанием / оттаиванием и выполняется только при необходимости. As-is, он выполняется на всех из них.

У меня есть все, что работает на моем mbp5,1: звук, подсветка ЖК-дисплея, подсветка клавиатуры, вентиляторы, работающие на низком уровне (после отключения 9600M GT ), Apple вроде короткой вырезки (CMD + C для копирования), Flash (почти стабильная) ... Так что просто спросите, нужна ли вам дополнительная помощь

3
ответ дан 4 August 2018 в 18:26

Чтобы отключить Nvidia 9600M GT, вы должны добавить следующее в запись меню grub outb 750x0, то есть:

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
}

Дополнительно для выключения после возобновления после приостановки:

При возобновлении работы дискретный графический контроллер будет включен и активен. Нам нужно отключить его и вернуться к встроенному графическому процессору.

Это можно сделать с помощью очень простой небольшой программы:

#include <stdio.h>
#include <sys/io.h>

#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;
}

Сохраните это в файле с именем igd. с. Скомпилируйте его с помощью gcc -O2 igd.c -o igd. Это создаст исполняемый файл под названием igd. Выполненный с привилегиями суперпользователя, он отключит дискретный контроллер и переключится на интегрированный контроллер.

Теперь нам нужно выполнить это при возобновлении. Создайте файл с именем /etc/pm/sleep.d/10igd

Он должен содержать:

#!/bin/sh
#
/path/to/igd

Where / path / to - это путь к тому, куда вы помещаете исполняемый файл igd, который мы создали в предыдущем step.

chmod +x /etc/pm/sleep.d/10igd

Этот файл будет исполнен при приостановке и возобновлении. Сделано правильно, что скрипт 10igd проверяет, является ли это приостановкой / возобновлением / замораживанием / оттаиванием и выполняется только при необходимости. As-is, он выполняется на всех из них.

У меня есть все, что работает на моем mbp5,1: звук, подсветка ЖК-дисплея, подсветка клавиатуры, вентиляторы, работающие на низком уровне (после отключения 9600M GT ), Apple вроде короткой вырезки (CMD + C для копирования), Flash (почти стабильная) ... Так что просто спросите, нужна ли вам дополнительная помощь

3
ответ дан 6 August 2018 в 02:53

Чтобы отключить Nvidia 9600M GT, вы должны добавить следующее в запись меню grub outb 750x0, то есть:

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
}

Дополнительно для выключения после возобновления после приостановки:

При возобновлении работы дискретный графический контроллер будет включен и активен. Нам нужно отключить его и вернуться к встроенному графическому процессору.

Это можно сделать с помощью очень простой небольшой программы:

#include <stdio.h>
#include <sys/io.h>

#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;
}

Сохраните это в файле с именем igd. с. Скомпилируйте его с помощью gcc -O2 igd.c -o igd. Это создаст исполняемый файл под названием igd. Выполненный с привилегиями суперпользователя, он отключит дискретный контроллер и переключится на интегрированный контроллер.

Теперь нам нужно выполнить это при возобновлении. Создайте файл с именем /etc/pm/sleep.d/10igd

Он должен содержать:

#!/bin/sh
#
/path/to/igd

Where / path / to - это путь к тому, куда вы помещаете исполняемый файл igd, который мы создали в предыдущем step.

chmod +x /etc/pm/sleep.d/10igd

Этот файл будет исполнен при приостановке и возобновлении. Сделано правильно, что скрипт 10igd проверяет, является ли это приостановкой / возобновлением / замораживанием / оттаиванием и выполняется только при необходимости. As-is, он выполняется на всех из них.

У меня есть все, что работает на моем mbp5,1: звук, подсветка ЖК-дисплея, подсветка клавиатуры, вентиляторы, работающие на низком уровне (после отключения 9600M GT ), Apple вроде короткой вырезки (CMD + C для копирования), Flash (почти стабильная) ... Так что просто спросите, нужна ли вам дополнительная помощь

3
ответ дан 7 August 2018 в 20:32

Чтобы отключить Nvidia 9600M GT, вы должны добавить следующее в запись меню grub outb 750x0, то есть:

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
}

Дополнительно для выключения после возобновления после приостановки:

При возобновлении работы дискретный графический контроллер будет включен и активен. Нам нужно отключить его и вернуться к встроенному графическому процессору.

Это можно сделать с помощью очень простой небольшой программы:

#include <stdio.h>
#include <sys/io.h>

#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;
}

Сохраните это в файле с именем igd. с. Скомпилируйте его с помощью gcc -O2 igd.c -o igd. Это создаст исполняемый файл под названием igd. Выполненный с привилегиями суперпользователя, он отключит дискретный контроллер и переключится на интегрированный контроллер.

Теперь нам нужно выполнить это при возобновлении. Создайте файл с именем /etc/pm/sleep.d/10igd

Он должен содержать:

#!/bin/sh
#
/path/to/igd

Where / path / to - это путь к тому, куда вы помещаете исполняемый файл igd, который мы создали в предыдущем step.

chmod +x /etc/pm/sleep.d/10igd

Этот файл будет исполнен при приостановке и возобновлении. Сделано правильно, что скрипт 10igd проверяет, является ли это приостановкой / возобновлением / замораживанием / оттаиванием и выполняется только при необходимости. As-is, он выполняется на всех из них.

У меня есть все, что работает на моем mbp5,1: звук, подсветка ЖК-дисплея, подсветка клавиатуры, вентиляторы, работающие на низком уровне (после отключения 9600M GT ), Apple вроде короткой вырезки (CMD + C для копирования), Flash (почти стабильная) ... Так что просто спросите, нужна ли вам дополнительная помощь

3
ответ дан 10 August 2018 в 08:54

Чтобы отключить Nvidia 9600M GT, вы должны добавить следующее в запись меню grub outb 750x0, то есть:

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
}

Дополнительно для выключения после возобновления после приостановки:

При возобновлении работы дискретный графический контроллер будет включен и активен. Нам нужно отключить его и вернуться к встроенному графическому процессору.

Это можно сделать с помощью очень простой небольшой программы:

#include <stdio.h>
#include <sys/io.h>

#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;
}

Сохраните это в файле с именем igd. с. Скомпилируйте его с помощью gcc -O2 igd.c -o igd. Это создаст исполняемый файл под названием igd. Выполненный с привилегиями суперпользователя, он отключит дискретный контроллер и переключится на интегрированный контроллер.

Теперь нам нужно выполнить это при возобновлении. Создайте файл с именем /etc/pm/sleep.d/10igd

Он должен содержать:

#!/bin/sh
#
/path/to/igd

Where / path / to - это путь к тому, куда вы помещаете исполняемый файл igd, который мы создали в предыдущем step.

chmod +x /etc/pm/sleep.d/10igd

Этот файл будет исполнен при приостановке и возобновлении. Сделано правильно, что скрипт 10igd проверяет, является ли это приостановкой / возобновлением / замораживанием / оттаиванием и выполняется только при необходимости. As-is, он выполняется на всех из них.

У меня есть все, что работает на моем mbp5,1: звук, подсветка ЖК-дисплея, подсветка клавиатуры, вентиляторы, работающие на низком уровне (после отключения 9600M GT ), Apple вроде короткой вырезки (CMD + C для копирования), Flash (почти стабильная) ... Так что просто спросите, нужна ли вам дополнительная помощь

3
ответ дан 15 August 2018 в 21:41

Другие вопросы по тегам:

Похожие вопросы: