ВНИМАНИЕ статья устарела и применима была исключительно для ubuntu 13.04 на более новых версиях нужны другие драйвера или методы лечения.
Я уже писал статью про настройку гибридных видеокарт.
Гибридная видяшка нормально работала на старых релизах ubuntu 12.04 и 12.10, но вот вышла очередная ubuntu 13.04.
В этот раз в дистрибутив попал пакет с кривым драйвером для интегрированной видеокарты intel. И за компанию напишем новый скриптик для управления питанием гибридных видеокарт.
Замена драйвера intel
Кривизна драйвера проявляется тем что рабочий стол загружается но при этом отключено управление подсветкой. Если попытаться перейти в текстовый терминальный режим (CTRL + ALT + F1), а затем вернуться назад в графический режим (CTRL + ALT + F7) или просто выйти из текущего сеанса (Завершение сеанса …), то картинка на мониторе намертво зависает.
Почему глючит драйвер версии 2.21.6 из дистрибутива raring ringtail (13.04) разбираться долго и не очень интересно. Поэтому возьмем проверенный драйвер из предыдущего дистрибутива.
Качаем драйвер и дополнительную библиотеку для 64 битного дистрибутива:
wget http://mirror.yandex.ru/ubuntu/pool/main/x/xserver-xorg-video-intel/xserver-xorg-video-intel_2.20.9-0ubuntu2_amd64.deb wget http://mirror.yandex.ru/ubuntu/pool/main/u/udev/libudev-dev_175-0ubuntu13_amd64.deb
Если у вас 32 двух битный дистрибутив то качаем:
wget http://mirror.yandex.ru/ubuntu/pool/main/x/xserver-xorg-video-intel/xserver-xorg-video-intel_2.20.9-0ubuntu2_i386.deb wget http://mirror.yandex.ru/ubuntu/pool/main/u/udev/libudev-dev_175-0ubuntu13_i386.deb
Удалем глючный драйвер, ставим нормальный и в конце фиксируем текущюю версию чтобы при обновлении глючная версия не вернулась:
sudo aptitude remove xserver-xorg-video-intel sudo dpkg -i libudev0_175*.deb xserver-xorg-video-intel*.deb sudo aptitude hold xserver-xorg-video-intel
Теперь нужно изменим параметр в файле /etc/default/grub
GRUB_CMDLINE_LINUX="acpi_backlight=vendor"
Обновляем настройки grub и перезагружаемся.
update-grub reboot
После этого видеокарта должна заработать нормально.
Настройка vgaswitcheroo
Теперь займемся переключателем видеокарт. У меня одна из первых гибридных radeon 5470 который уже официально не поддерживаются поэтому оставим свободный драйвер который уже предустановленный. Как известно переключатель vgaswitcheroo работает только если удалить припроетарные драйвера и использовать свободные драйвера. В большенстве статей рекомендуют команды управления питанием разместить в файле автозагрузки /etc/rc.local который должен запускается последним.
Но если компьютер слишком быстро загружается и выключение питание произойдет до полной инициализации видеокарты то в dmesg может возникнуть неприятная ошибка:
May 27 19:54:38 sasha-Aspire-3820 kernel: [ 4.138564] hda-intel 0000:02:00.1: Disabling via VGA-switcheroo May 27 19:54:38 sasha-Aspire-3820 acpid: client connected from 1232[0:0] May 27 19:54:38 sasha-Aspire-3820 acpid: 1 client rule loaded May 27 19:54:38 sasha-Aspire-3820 kernel: [ 4.255588] radeon: switched off May 27 19:54:44 sasha-Aspire-3820 kernel: [ 9.370728] [drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting May 27 19:54:44 sasha-Aspire-3820 kernel: [ 9.370736] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing CBBA (len 62, WS 0, PS 0) @ 0xCBD6 May 27 19:54:49 sasha-Aspire-3820 kernel: [ 14.366132] [drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting May 27 19:54:49 sasha-Aspire-3820 kernel: [ 14.366139] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing CBBA (len 62, WS 0, PS 0) @ 0xCBD6 May 27 19:54:49 sasha-Aspire-3820 kernel: [ 14.366142] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing C294 (len 861, WS 0, PS 0) @ 0xC2F1 May 27 19:55:54 sasha-Aspire-3820 kernel: [ 79.322174] [drm:atom_op_jump] *ERROR* atombios stuck in loop for more than 5secs aborting May 27 19:55:54 sasha-Aspire-3820 kernel: [ 79.322184] [drm:atom_execute_table_locked] *ERROR* atombios stuck executing CBBA (len 62, WS 0, PS 0) @ 0xCBD6
При этом ядро пытается 75 секунд работать с выключенной видеокартой в результате при загрузке почти 2 минуты показывается черный экран. При выключении компьютера также возникают ошибки приводящие к задержке. Но и оставлять постоянно включенной вторую видеокарту не хочется она много батарейки кушает. Напишем небольшой скрипт который при загрузке выключает питание на второй (дискретной) видеокарте с задержкой 3 секунды и перед выключением компьютера восстанавливает питание обратно чтобы ядро нормально отработало.
Создадим файл /etc/init.d/gpuoff и напишем туда:
#! /bin/sh case "$1" in start) echo "Выключить питания второго GPU" sleep 3 chown sasha:sasha /sys/kernel/debug/vgaswitcheroo/switch echo OFF >> /sys/kernel/debug/vgaswitcheroo/switch ;; stop) echo "Включить питания второго GPU" echo ON >> /sys/kernel/debug/vgaswitcheroo/switch ;; status) cat /sys/kernel/debug/vgaswitcheroo/switch ;;esac
Сделаем скрипт исполняемым и добавить его в автозагрузку.
chmod 755 /etc/init.d/gpuoff update-rc.d gpuoff defaults
Теперь можно перезагружаться и проверить состояние видеокарт:
service gpuoff status
Получаем:
0:IGD:+:Pwr:0000:00:02.0 1:DIS: :Off:0000:02:00.0
Здесь «+» показывает активную видеокарту (сейчас intel). Pwr — говорит о том что питание на карту подается. Off — значит питание на карте (redeon) выключено и она не потребляет заряд батареи. В прочем это уже было в предыдущей статье ссылка на которую есть в начале статьи.
Чё за *****? Действовал так как по инструкции, по когда дошел до: «Удалем глючный драйвер, ставим нормальный и в конце фиксируем текущюю версию чтобы при обновлении глючная версия не вернулась:», то получил вот что:
elidann999@ubuntu:~$ sudo dpkg -i libudev0_175-0ubuntu13_*.deb xserver-xorg-video-intel_2.20.2-1ubuntu1_*.deb
dpkg: ошибка при обработке параметра libudev0_175-0ubuntu13_*.deb (--install):
нет доступа к архиву: Нет такого файла или каталога
dpkg: ошибка при обработке параметра xserver-xorg-video-intel_2.20.2-1ubuntu1_*.deb (--install):
нет доступа к архиву: Нет такого файла или каталога
При обработке следующих пакетов произошли ошибки:
libudev0_175-0ubuntu13_*.deb
xserver-xorg-video-intel_2.20.2-1ubuntu1_*.deb
И что теперь прикажете мне делать драйвер то у меня удалился — после перезагрузки мне что ли в консоли сидеть?
Для начала прочитай русским по белому текст ошибки и найди куда ты скачал файлы с драйверами и поставь их. Кроме того драйвер из дистрибутива всегда можно вернут выполнив обратное действие «sudo aptitude install xserver-xorg-video-intel». А так дрова на видео от интел это ещё легкий случай но нужно четко понимать какие команды что делаю без этого лучше вообще в консоль не лазить. Вот дрова на радеон поставить это действительно тяжело даже для профессионала. Когда настраиваешь иксы или меняешь дрова то тут по любому нужно быть готовым, что если что-то пойдет не так то восстанавливать придется из чистой консоли читая логи и исправляя ошибки. Поэтому прежде чем ковыряться под капотом нужно изучить хотя бы основы работы в консоли и как работает менеджер пакетов.
Может я конечно чего не понимаю…Но Уважаемый автор скажите пожалуйста для чего я удаляю пакет с дровами, а потом ставлю дебаг пакет? не вижу логики абсолютно.
Спасибо за внимательность ошибся когда имена файлов выбирал на зеркале, действительно лучше ставить обычные драйвера. В статье писано как более новый драйвер, который лично у меня сильно глючил, заменить на такой же но более старый ubuntu 12.10 он меньше глючит и подсветка регулируется. Если же все работает то лучше вообще ничего не трогать.
первые 2 сылки не работают
1 wget http://mirror.yandex.ru/ubuntu/pool/main/x/xserver-xorg-video-intel/xserver-xorg-video-intel_2.20.9-0ubuntu2_amd64.deb
2 wget http://mirror.yandex.ru/ubuntu/pool/main/u/udev/libudev-dev_175-0ubuntu13_amd64.deb
а я уже удалил драва интеловские. куды дальше?
И почему все сначала удаляют драва, а только потом качают замену.
Верни обратно интеловские драйвера:
sudo aptitude install xserver-xorg-video-intel
Но бывает гораздо хуже если поставить несовместимые драйвера тогда графики вообще нету и в консоли нужно уметь откатывать все обратно.
А так оно даже хорошо что ссылки уже не работают прежде чем что то сделать нужно понять что ты делаешь с системой и как потом вернуть все обратно. Например наивно надеяться что все заработает если поставить очень старые драйвера на свежий дистрибутив в 14.04 например уже много что поменялось в ядре и в xorg и нужно искать другие драйвера или конфиги.
Но если кому то очень хочется поэксперементировать со старыми дистрибутивами то можно покопаться в архивном зеркале http://archive.ubuntu.com/ubuntu/