Последнее время у производителей появилась тенденция ставить на ноутбуки две видеокарты — одна какая-нибудь простенькая интеловская для экономии электроэнергии, а другая — навороченная для игр и видео. Насколько я знаю, таким точно грешит 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
| Заголовок(Раздел) |
| | Ноутбук + 2 видеокарты в Linux Из интернета |