Logo

Замена драйвера intel в ubuntu

ВНИМАНИЕ статья устарела и применима была исключительно для 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) выключено и она не потребляет заряд батареи. В прочем это уже было в предыдущей статье ссылка на которую есть в начале статьи.

 

 

6 комментариев

  1. Юрий:

    Чё за *****? Действовал так как по инструкции, по когда дошел до: «Удалем глючный драйвер, ставим нормальный и в конце фиксируем текущюю версию чтобы при обновлении глючная версия не вернулась:», то получил вот что:

    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». А так дрова на видео от интел это ещё легкий случай но нужно четко понимать какие команды что делаю без этого лучше вообще в консоль не лазить. Вот дрова на радеон поставить это действительно тяжело даже для профессионала. Когда настраиваешь иксы или меняешь дрова то тут по любому нужно быть готовым, что если что-то пойдет не так то восстанавливать придется из чистой консоли читая логи и исправляя ошибки. Поэтому прежде чем ковыряться под капотом нужно изучить хотя бы основы работы в консоли и как работает менеджер пакетов.

  2. Daniel42137:

    Может я конечно чего не понимаю…Но Уважаемый автор скажите пожалуйста для чего я удаляю пакет с дровами, а потом ставлю дебаг пакет? не вижу логики абсолютно.

    • Спасибо за внимательность ошибся когда имена файлов выбирал на зеркале, действительно лучше ставить обычные драйвера. В статье писано как более новый драйвер, который лично у меня сильно глючил, заменить на такой же но более старый ubuntu 12.10 он меньше глючит и подсветка регулируется. Если же все работает то лучше вообще ничего не трогать.

    • И почему все сначала удаляют драва, а только потом качают замену.
      Верни обратно интеловские драйвера:
      sudo aptitude install xserver-xorg-video-intel
      Но бывает гораздо хуже если поставить несовместимые драйвера тогда графики вообще нету и в консоли нужно уметь откатывать все обратно.
      А так оно даже хорошо что ссылки уже не работают прежде чем что то сделать нужно понять что ты делаешь с системой и как потом вернуть все обратно. Например наивно надеяться что все заработает если поставить очень старые драйвера на свежий дистрибутив в 14.04 например уже много что поменялось в ядре и в xorg и нужно искать другие драйвера или конфиги.
      Но если кому то очень хочется поэксперементировать со старыми дистрибутивами то можно покопаться в архивном зеркале http://archive.ubuntu.com/ubuntu/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *