Надеюсь все понимают, что интегрированная карта нужна тогда, когда надо сократить энергопотребление ноутбука, ну а дискретная для 3D, видео-игр и т.п. Но и тут в убунте не обошлось без затычек – после старта компьютера, всегда, по-умолчанию, активной является интегрированная карточка, но и дискретная при этом тоже включена, тоесть питание потребляют обе карточки, что очень сокращает время работы ноутбука от батареи. К сожалению производитель решил себя не утруждать и не добавил опции управления видеокартами в BIOS.
К счастью, некоторое время назад в ядро линукса был включен модуль vga_switcheroo, который позволяет управлять несколькими видеокартами, но и тут есть свои нюансы:
1) До сих пор нет утилит управления этим модулем;
2) Работает он только со свободными драйверами, тоесть через ATI Catalyst пока ничего сделать нельзя, в отличии от той же винды, например;
3) После переключения видеокарт, необходимо перелогиниваться (перезапускать X’сы).
Если с первым пунктом еще можно что-то решить, то по второму надо решать самому, сидеть на свободных драйверах, либо на проприетарных, без возможности переключения/отключения видеокарт.
Я поступаю следующим способом. Большую часть времени, когда под рукой есть розетка, я пользуюсь проприетарными драйверами, а вот если мне нужно куда-то поехать и нужно выдавить из нотика, как можно больше времени работы от батареи, я перехожу на свободные драйвера и выключаю дискретную видеокарту.
И так, перейдем от теории к практике.
1. Для манипулирования модулем vga_switcheroo, удаляем проприетарный драйвер через ‘Система‘->’Администрирование‘->’Дополнительные драйвера‘->’Проприетарный драйвер FGLRX для видеокарт ATI/AMD‘->’Удалить‘
2. Перезагружаемся и после перезагрузки проверяем, что у нас появился нужный файлик:
$
cat /sys/kernel/debug/vgaswitcheroo/switch
в ответ вы должны получить вывод о состоянии ваших видеокартах.
3. Добавляем в ‘/etc/rc.local’ строки, которые будут давать вашему пользователю права на этот файл после перезагрузки ноутбука, а также которые будут отключать не используемую в данный момент видеокарту.
$
sudo nano /etc/rc.local
Внимание !!! Не забывайте, что строки должны находиться перед закрывающей строкой ‘exit 0′. А вот и сами строки:
chown <username> /sys/kernel/debug/vgaswitcheroo/switch
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
где <username> – замените на ваше имя пользователя в системе.
4. Создадим скрипт, который нам позволит удобно переключать видеокарты.
4.1. Устанавливаем нужные пакеты, если они еще не стоят, и выкачиваем необходимые картинки:
$ $
$
$
$
sudo apt-get install wget gxmessage libnotify-bin
wget -P /home/»$USER»/.local/share/icons/
http://lh4.ggpht.com/_Dw3SC8gD9Jk/S-MGVcEfaiI/AAAAAAAAAIA/Pguy_uSeqSk/s800/hardware_down.pngwget -P /home/»$USER»/.local/share/icons/
http://lh5.ggpht.com/_Dw3SC8gD9Jk/S-MGVSO0JbI/AAAAAAAAAIE/_mdAnW7UiCQ/s800/hardware_up.pngwget -P /home/»$USER»/.local/share/icons/
http://lh4.ggpht.com/_Dw3SC8gD9Jk/TNbQXzK6hrI/AAAAAAAAAJ8/YlqK46MusuE/s800/hardware.pngwget -P /home/»$USER»/.local/share/icons/
http://lh5.ggpht.com/_Dw3SC8gD9Jk/S41DjuMt_MI/AAAAAAAAAF4/5pQm2-dX6Sg/s800/switch_before_shutdown.png4.2. Скачиваем скрипт ‘switch_between_cards.sh‘
4.3. Даем ему права на выполнение:
$
sudo chmod +x switch_between_cards.sh
5. Перезагружаемся и запускаем скрипт ‘switch_between_cards.sh’ для переключения видеокарт:
$
./switch_between_cards.sh
6. Казалось бы уже все, видеокарты переключаются, ненужные выключаются, но на самом деле остался еще один очень важный момент – перед выключением или полной перезагрузкой ноутбука, необходимо снова включать обе видеокарты. Дело в том, что если этого не сделать, то после последующего включения ноутбука, кулеры на видеокартах начинают вращаться на максимальной скорости, что, согласитесь, нам совсем не нужно. Есть два варианта решения этой проблемы, о них ниже.
6.1. Первый вариант.
Необходимо перед выключением/перезагрузкой ноутбука, выполнять следующую команду:
$
echo ON > sys/kernel/debug/vgaswitcheroo/switch
6.2. Второй вариант.
Скачиваем скрипт ‘switch_before_shutdown.sh‘. Делаем его исполняемым, по тому же принципу, что и первый скрипт. Теперь, когда нужно перезагрузиться или выключить компьютер – запускаем этот скрипт и выбираем нужное действие.
Скрипты для переключения видеокарт и выключения компьютера, были позаимствованы у Roberto Martinez
Ссылка на статью:
http://linuxesrf.wordpress.com/tag/vga_switcheroo/