Регистрация  
Global |

Облако тэгов
Май 2012
пнвтсрчтптсбвс
 123456
78910111213
14151617181920
21222324252627
28293031   
Опросы:
CMS работает как надо?

Да
Нет
Понятия не имею


Результаты
Погода
Курс валют
Баннер Profit-Partner.ru
Последние материалы

Последнее время у производителей появилась тенденция ставить на ноутбуки две видеокарты — одна какая-нибудь простенькая интеловская для экономии электроэнергии, а другая — навороченная для игр и видео. Насколько я знаю, таким точно грешит Lenovo.

Если на предустановленной Windows 7 Home x64 возможность переключаться между картами, разумеется, имелась, то Windows 7 Professional x32 вторую видеокарту включать уже не захотел. Не лучше обстояла ситуацию и в Ubuntu — видеокарты определяются-то обе, а вот использоваться предпочитает только дефолтная интеловская. И питание жрут, разумеется, обе — как результат, ноутбук работает намного меньше, чем должен. Как мы будем с этим бороться? 
Итак, у нас есть две видеокарты:

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
01:00.0 VGA compatible controller: ATI Technologies Inc M93 [Mobility Radeon HD 4500 Series] (rev ff)


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

Способ  потребует от нас немножко трафика и капельку времени. Дело в том, что не так давно вышла версия 2.6.34 ядра, в которую включен новый интересный модуль — vga_switcheroo, который как раз и призван переключать видеокарты. На Launchpad и kernel.ubuntu.com даже можно найти пакеты с этим ядром, но в дефолтном конфиге модуль выключен — вероятно потому, что удобных графических средств для переключения видеокарт пока не придумали.

Поэтому для начала скачаем исходный пакет с ланчпада (он предназначен для Maverick Meerkat, но и у нас отлично заработает):

$ wget https://launchpad.net/ubuntu/+archive/primary/+files/linux_2.6.34-2.9.dsc
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/linux_2.6.34-2.9.tar.gz

 

Распакуем его:

$ dpkg-source -x linux_2.6.34-2.9.dsc

Теперь зайдём в каталог linux-2.6.34 и откроем файл debian.master/config/config.common.ubuntu любым любимым редактором. Найдём строку "# CONFIG_VGA_SWITCHEROO is not set" и заменим её на «CONFIG_VGA_SWITCHEROO=y» (кавычки не нужны).

На всякий случай откроем ещё файл debian/config/enforce и допишем в нём строку «value CONFIG_VGA_SWITCHEROO y» — это поможет при сборке убедиться, что ни одна зараза не испортила выставленный параметр.
Собираем командой debuild (собираться будет долго, потому что при сборке пакета собирается ВСЁ) и устанавливаем:

$ sudo dpkg -i linux-headers-2.6.34-2_2.6.34-2.9_all.deb linux-headers-2.6.34-2-generic_2.6.34-2.9_i386.deb linux-image-2.6.34-2-generic_2.6.34-2.9_i386.deb

Если у вас 64-битная система, вместо i386 в имени файла будет, разумеется, amd64.

Как нам после перезагрузки в новое ядро переключить видеокарту? Посмотрим на сводку советского информбюро:

$ cat /sys/kernel/debug/vgaswitcheroo/switch
0:+:Pwr:0000:00:02.0
1: :Off:0000:01:00.0

Плюсик показывает нам активную видеокарту, пометка Pwr — что видеокарта включена, Off — что выключена. Что можно изменить? Есть замечательный список команд, которые можно передать vga_switcheroo:

DIS — немедленное переключение на дискретную видеокарту
IGD — немедленное переключение на интегрированную видеокарту
DDIS — отложенное переключение на дискретную видеокарту
DIGD — отложенное переключение на интегрированную видеокарту
ON — включить неиспользуемую видеокарту
OFF — выключить неиспользуемую видеокарту

Сразу скажу, немедленное переключение у меня никакого немедленного эффекта не даёт.
Поэтому скомандуем:

# echo ON > /sys/kernel/debug/vgaswitcheroo/switch # включим дискретную видеокарту
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch # попросим при случае переключить на дискретную видеокарту

Теперь нажимаем в системе «завершить сеанс», логинимся заново и выключаем интегрированную видеокарту:

# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

Смотрим на результат:

$ $ cat /sys/kernel/debug/vgaswitcheroo/switch
0: :Off:0000:00:02.0
1:+:Pwr:0000:01:00.0

Теперь можно поиграть в игры, посмотреть HD-видео и не тратить питание на интеловскую карту. А можно переключиться обратно и тратить еще меньше энергии на полноценную видеокарту, экономя батарейку. Долгих ей лет.

http://habrahabr.ru/ | 03-04-2011 16:56

Страницы по теме
Комментарии:
Пока комментариев нет
В ожидании праздника
Я свободен! Словно птица в небесах.
РЕКЛАМА

Баннер Profit-Project.ru



Контакты
Восемь-один-5-семерок