За несколько лет использования в работе и дома ноутбуков 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
Почему именно 32-битный Bumblebee, 64-битный Bumblebee не поддерживает 32-битные игры ?
Привет. Если посмотреть внимательно, видно, что 32-битный только пакет primus-libs:i386, остальные же пакеты 64-битные. Без данного пакета 32-битные приложения с bumblebee работать не будут.
То есть 32-битные драйвера nvidia не нужно устанавливать для 32-битных игр, я правильно понимаю ?
Драйвера не нужно. Драйвера в 64-битной системе не могут быть 32-битными. А вот библиотеки для работы игры с графикой — могут. Если будешь играть только в 64-битные игры, то primus-libs:i386 не понадобится.
Кстати, а без файла xorg.conf будут работать оба драйвера с поддержкой оптимус ?
Без файла xorg.conf будет работать только карта Intel, карта Nvidia как-бы тоже будет работать, но ты этого не увидишь. Для проброса изображения с Nvidia на Intel как раз и используется bumblebee
Спасибо за помощь, у меня получилось: http://libreportal.net/advice/debiandevuan-jessie-8-gibridnaya-grafika-intel-nvidia.html
Ещё раз спасибо за информацию ! Исправлял не один раз ! Кстати, вот немного подправил свою статью по этой теме: https://linexp.ru/advice/debiandevuan-jessie-8-gibridnaya-grafika-intel-nvidia.html