Debian 8 Jessie на ноутбуке Acer ES1-711G

За несколько лет использования в работе и дома ноутбуков Lenovo я уже успел забыть, какие проблемы бывают при попытке установить на ноутбук Linux, так как с ноутбуками Lenovo у меня была единственная проблема – установить правильный WiFi-драйвер.

Но пришло время, когда мне достался ноутбук Acer ES1-711G, и пришлось вспомнить навыки гугления, чтения логов, курения мануалов, и экспериментов с системой. С ходу установить Debian не удалось. А когда удалось – возник ещё целый ряд проблем.

В интернете есть буквально пара-тройка записей посвящённых этому ноутбуку и проблемам, возникающим с ним, но целостной картины нигде нет. Поэтому здесь я соберу полную инструкцию. Может кому-то ещё это поможет.

Начальные условия

Ноутбук Acer ES1-711-P4G8

  • Никакой поддержки от компании-изготовителя, ни для чего кроме Windows 8 и Windows 10
  • В самих Windows8 и Windows10 в данном ноутбуке сразу после установки наблюдались страшные беспричинные тормоза, а также зависания при попытке обновить драйвера видеокарты
  • При этом, аппаратная часть проверена в сервис-центре и функционирует нормально

Характеристики

  • Intel Pentium N3540 4-х ядерный
  • Память DDR3L 8GB
  • Видеокарты Intel HD и Nvidia GeForce 820M
  • WiFi-карта Realtek RTL8723BE
  • HDD 500Gb

Установка системы

Устанавливать будем из интернета, так что понадобится сетевой провод до роутера, так как WiFi при начале установки запустить всё равно не получится.

1. Для установки системы Debian Jessie создаём с помощью unetbootin загрузочную флешку с Debian Wheezy. Это не ошибка, так и нужно сделать, потому что, если устанавливать Debian Jessie, то на стадии “Запуск dpkg” на 12% прогресса установка будет зависать. Это известный баг, который на данном ноутбуке вызван толи его WiFi-картой, толи USB-контроллером. Здесь можно почитать об этом.

2. Устанавливаем базовую систему, и больше ничего, никаких менеджеров рабочего стола и прочего, так как чем больше пакетов поставим, тем сложнее будет выполнить dist-upgrade (нам ведь всё-таки нужен Debian Jessie).

3. По окончанию базовой установки, и логину в систему, нужно прописать репозиторий Jessie:
Открываем /etc/apt/sources.list и пишем там:

deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free

deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

При этом, остальные записи, сообщающие о Debian Wheeze нужно закомментировать.

4. Запустить обновление:

apt-get update
apt-get dist-upgrade

5. По окончанию обновления системы устанавливаем все пакеты что вам были нужны изначально.

6. Для того, чтобы заработала WiFi-карта, на первое время достаточно установить пакеты linux-firmware-nonfree и firmware-ralink (далее будет подробнее)

Проблема с контроллером USB

Практически сразу выяснилось, что система работает довольно-таки нестабильно.
1) Система может зависнуть просто так во время работы.
2) При выключении/перезагрузке/уходе в ждучий режим – система зависает намертво.
3) В dmesg и при загрузке появляется большое количество сообщений об ошибках такого типа:

 ehci-pci 0000:00:1d.0: port 1 reset error -110
 ehci-pci 0000:00:1d.0: port 1 reset error -110
 ehci-pci 0000:00:1d.0: port 1 reset error -110
 ehci-pci 0000:00:1d.0: port 1 reset error -110
 usb usb1-port1: Cannot enable. Maybe the USB cable is bad?
 ehci-pci 0000:00:1d.0: port 1 reset error -110
 ehci-pci 0000:00:1d.0: port 1 reset error -110
 ehci-pci 0000:00:1d.0: port 1 reset error -110
 usb usb1-port1: Cannot enable. Maybe the USB cable is bad?

хотя никакого USB cable не подключено.

У всех этих проблем одна причина – контроллер USB не дружит с драйвером echi (этот драйвер отвечает за работу USB 2.0).
Раз не дружит – отключим его, у нас всё равно есть драйвер xhci, который занимается USB 3.0, и с радостью возьмёт на себя функции управления USB 2.0, как только такая возможность появится.

Есть 2 способа отключить драйвер ehci_pci при загрузке системы:

1) Добавить модуль в чёрный список, для этого можно выполнить такую команду:

# echo "blacklist echi_pci" > /etc/modprobe.d/disable_ehci_pci.conf

После этого, нужно перегенерировать загрузочный RAM-диск:

# update-initramfs

И перезагрузиться

# reboot

Мне этот способ не помог (но возможно поможет вам), поэтому я воспользовался вторым:

2) Добавить команду modprobe.blacklist=ehci_pci в команду загрузки grub.
Для этого открываем файл /etc/default/grub, находим там строчку

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

И меняем её на:

GRUB_CMDLINE_LINUX_DEFAULT="quiet modprobe.blacklist=ehci_pci"

После чего обновляем Grub:

# update-grub

и перезагружаемся

# reboot

Решение проблем с WiFi

Встроенная карта WiFi Realtek RTL8723BE, после установки пакетов firmware-ralink и linux-firmware-nonfree начинает работать сама собой, но время от времени WiFi-соединение не переживает suspend/resume, а также, иногда просто перестают передаваться данные по WiFi, без каких-либо сообщений в логах. При этом не помогает ни выключение/включение устройства через ifconfig, ни выгрузка и загрузка обратно модуля ядра, отвечающего за данный WiFi-модуль.

Если погуглить по запросу “RTL8723BE linux problem” – выдаётся поразительно много результатов.

Из них мне подошёл вариант добавления параметров модуля ядра в настройки modprobe:

# echo "options rtl8723be fwlps=N ips=N" > /etc/modprobe.d/rtl8723be.conf

Кроме параметров fwlps и ips есть ещё параметры swlps и msi. Подробную информацию о том, что они означают, найти я не смог, однако обнаружил, что большинство решений проблем с WiFi на RTL8723BE заключаются в жонглировании этими параметрами.

Активация видеокарты Nvidia с технологией Optimus при помощи Bumblebee

На данном ноутбуке установлена интегрированная в процессор видеокарта Intel, и “дискретная” карта Nvidia 820M, обладающая неплохими графическими возможностями (хотя всё познаётся в сравнении). При этом, данная видеокарта работает на базе технологии Optimus для экономии батареи ноутбука. При работе в Windows, для большей части приложений используется видеокарта Intel (она ест батарейку медленно), а при запуске ресурсоёмких приложений, требующих хорошей графики, запускается видеокарта Nvidia, и обрабатывает только данные приложения (при этом интенсивно расходует заряд).

Для работы в Linux с таким железом есть несколько вариантов:

1) Самый простой, и не требующий настройки: по умолчанию будет сама собой работать карта Intel. Правда в этом случае вы не сможете пользоваться картой Nvidia, но зато батарейка будет съедаться помедленнее. По умолчанию система найдёт вашу видеокарту Intel и будет работать с ней как ни в чём не бывало.

2) Более сложный, позволяющий практически полностью сымитировать поведение драйвера Windows – использовать программу Bumblebee, которая позволяет запускать конкретные программы на видеокарте Nvidia, а все остальные – на Intel. При этом, правда, система сама не будет определять, какие программы считать ресурсоёмкими, а какие нет. Вам нужно будет запускать программы с помощью специального враппера, например, изменив команды в ярлыках нужных программ.

3) Ещё более сложный вариант, позволяющий всегда пользоваться только видеокартой Nvidia, иметь большой расход батареи, хорошее быстродействие видео-приложений, и не иметь некоторых проблем Bumblebee.

Я выбрал вариант с установкой Bumblebee, так как ни первый ни третий вариант меня не устраивали.

Установка Bumblebee

Информация об установке Bumblebee в Debian Jessie есть в вики https://wiki.debian.org/ru/Bumblebee, но я всё равно кратко перечислю последовательность действий:

Установим необходимые пакеты:
Внимание! Если в процессе установке вас спросят, нужно ли создавать xorg.conf – ОТКАЗЫВАЙТЕСЬ, так как данный xorg.conf не будет совместим с Bumblebee, а будет создан исходя из того, что у вас одна только видеокарта Nvidia.

# apt-get install bumblebee-nvidia primus

Если у вас 64-битная система, а вы хотите запускать 32-битные программы с хорошей графикой, то придётся установить 32-битные библиотеки (это актуально, например, для игр из Steam, там большая часть 32-битные):
Добавим архитектуру i386 (если ещё не добавлена)

# dpkg --add-architecture i386

Установим 32-битные пакеты:

# apt-get update 
# apt-get install bumblebee-nvidia primus primus-libs:i386

После установки нужно добавить вашего пользователя в группу bumblebee (вместо $USER вставьте имя вашего пользователя):

adduser $USER bumblebee

повторить это действие нужно для всех пользователей, которые имеют право запускать X-сервер, и которым вы хотите позволить пользоваться картой NVidia.

Ну и перезагрузка

# reboot

Готово!
Теперь, для запуска программы на видеокарте NVidia используйте команду

primusrun ИМЯ_КОМАНДЫ

например для запуска alien-arena нужно выполнить:

primusrun alien-arena

Установка Nvidia в качестве основной видеокарты

Полностью этот путь мне пройти не удалось, но для искателей приключений если инструкция, используемая в ArchLinux, которая практически полностью подходит и для Debian. Вот она: https://wiki.archlinux.org/index.php/NVIDIA_Optimus#Using_nvidia


So, what do you think ?