После обновления с Ubuntu 15.10 до 16.04.1, обе 64-разрядные, я застрял в бесконечном цикле входа в систему - каждый раз, когда я входил в систему на lightdm
, после входа экран становился черным, а затем возвращался к экрану входа. Вход в систему tty0
работал нормально. У меня ноутбук Del Latitude 3350 с Core i5 5200U и Nvidia GeForce 830M. Обновление решило, что мне нужны драйверы nvidia-361
, до того, как я начал использовать nvidia-352
. Во многих инструкциях, которые я встретил в начале, упоминалась безопасная загрузка в моем UEFI BIOS, но она уже была отключена (не помню, отключил ли я ее сразу после получения ноутбука или она была отправлена Dell в таком виде). Переустановка и/или перенастройка lightdm
не помогли. Они, по крайней мере, указали мне на удаление драйверов Nvidia, но это лишь частичное решение. Это не дубликат других вопросов, которые я видел на askubuntu, поскольку шаги, которые сработали для других, не сработали для меня. Возможно, наиболее близким руководством являетсяКак установить нормальные графические драйверы для оборудования Nvidia Optimus на *Ubuntu 16.04?. Однако это не делает графический процессор Nvidia пригодным для использования для меня, мне пришлось установить Bumblebee. Кроме того, это руководство ссылается на [Bumblebee на Lenovo T440p [NVidia GT 730M] с XUbuntu/Ubuntu 16.04 LTS]{http://lenovolinux.blogspot.co.za/2016/05/bumblebee-on-lenovo-t440p-nvidia-gt.html?m=1} за исключением того, что выполнение этих инструкций фактически оставило меня без работающего Bumblebee.
После долгих поисков в Google я обнаружил, что частичным решением было удалить драйверы Nvidia. В конце концов я нашелэтиинструкции, которые помогли мне войти в систему.
Важное замечание перед продолжением: похоже, вам нужно установить драйверы intel-microcode
с помощью вкладки «Дополнительные драйверы» в настройках системы. У меня они уже были установлены (вероятно, со времен Ubuntu 15.10), поэтому я никогда не проверял, что произойдет, если они не установлены.
Я использовал следующие команды для удаления Bumblebee и драйверов Nvidia, а затем переустановил драйверы Nvidia. Обратите внимание, что вам нужно добавить репозиторий графических драйверов, чтобы получить последние драйверы Nvidia:
sudo apt-get purge .*nvidia.* bumblebee.* .*primus.*
sudo apt-get --purge autoremove
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install nvidia-367 nvidia-prime nvidia-settings
В результате были установлены следующие пакеты:
bbswitch-dkms libcuda1-367 libjansson4 nvidia-367 nvidia-opencl-icd-367 nvidia-prime nvidia-settings screen-resolution-extra
Тогда я это сделал rm .nvidia-settings-rc
.
На этом этапе инструкции говорят запустить некоторые программы, которые используют GPU. Если я запускаю clinfo
(я использую GPU для разработки OpenCL), то все работает нормально. Другие программы OpenCL также работают нормально. Однако, если я запускаю, glxinfo
я получаю следующий вывод:
name of display: :0
Error: couldn't find RGB GLX visual or fbconfig
Я продолжил следовать инструкциям, чтобы запустить Bumblebee. sudo prime-select intel
было необходимо, потому что в противном случае после перезагрузки я снова попадаю в бесконечный цикл входа в систему. После перезагрузки я сделал sudo apt install bumblebee
следующее редактирование /etc/bumblebee/bumblebee.conf
, чтобы изменить все экземпляры nvidia-current
на nvidia-367
. Я также отредактировал /etc/modprobe.d/bumblebee.conf
, чтобы включить строку blacklist nvidia-367
. Поскольку нет пакетов nvidia-367-updates
или nvidia-experimental-367
для установки, я не добавил их в черный список.
После перезагрузки я могу запустить primusrun clinfo
и он выводит платформу Nvidia. Запуск программ OpenCL на GPU Nvidia также работает при использовании primusrun
. Однако primusrun glxinfo
выдает мне ошибку:
primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
Использование optirun
for any приводит к похожей ошибке, например, optirun clinfo
и optirun glxinfo
оба варианта дают:
[ 462.796690] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
[ 462.796725] [ERROR]Aborting because fallback start is disabled.
Я пробовал менять строку Bridge=
на Bridge=primus
и строку PMMethod=auto
на PMMethod=bbswitch
в /etc/bumblebee/bumblebee.conf
. Это не помогло.
Как мне заставить работать Bumblebee и драйверы Nvidia здесь, похоже, ни один набор инструкций не работает? Бонус: Как мне заставить драйверы Nvidia работать полностью при использовании prime-select nvidia
вместо Bumblebee?
решение1
Решения, которые я нашел до сих пор, заставляют Bumblebee работать (в основном) и предоставляют средства ручного отключения графического процессора Nvidia, когда он не используется. Я пока не смог заставить glxinfo
работать при использовании prime-select nvidia
вместо optirun
.
Я начал следитьэтиинструкции. Я добавил i915
и bbswitch
к /etc/modules
. Я запустил sudo gpasswd -a $USER bumblebee
и sudo systemctl enable bumblebeed
. Эти две команды, похоже, завершились успешно. После перезагрузки проблема осталась прежней. Если я делаю , sudo prime-select nvidia
а затем , glxinfo
то все равно получаю ошибку couldn't find RGB GLS visual or fbconfig
.
В этот момент я решил установить bumblebee-nvidia
- инструкции, на которые я ссылался в своем вопросе, говорили, что не надо, однако ссылка выше включала это. Удивительно, но это исправило большую часть моих проблем. Теперь выполнение optirun glxinfo
или primusrun glxinfo
выводит информацию о графическом процессоре Nvidia. optirun glxgears
и optirun glxheads
(а также использование primusrun
) работает нормально. Предупреждение: в предыдущей итерации попытки исправить эту проблему установка bumblebee-nvidia
сломала optirun
/ primusrun
.
Единственное, что не работает, это prime-select nvidia
. glxinfo
Затем я все еще получаю ошибку о невозможности загрузить модуль "мышь". Кроме того, если я запускаю, cat /proc/acpi/bbswitch
я продолжаю получать 0000:04:00.0 ON
, что, как я считаю, указывает на то, что мой графический процессор Nvidia все еще включен. Запуск lspci | grep NVIDIA
возвращает 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2)
, что подтверждает адрес PCIe моего графического процессора Nvidia.
Проблема с питанием, основанная на dmesg | grep bbswitch
, заключалась в том, что nvidia
модуль не давал GPU выключиться. Ручное выключение GPU Nvidia возможно путем запуска sudo rmmod nvidia_drm
, sudo rmmod nvidia_uvm
, sudo rmmod nvidia_modeset
и sudo rmmod nvidia
, а затем sudo tee /proc/acpi/bbswitch <<<OFF
. Не очень хорошо, поэтому я пошел искать автоматический метод, чтобы это работало.
Чтобы разобраться с тем, что Bumblebee не отключает мой графический процессор Nvidia, я попробовал выполнить инструкциииз проекта шмельно безуспешно. В частности, мой /etc/modprobe.d/bbswitch.conf
содержит options bbswitch load_state=0
и я добавил bbswitch load_state=0
в конец /etc/modules
. Я запустил sudo update-initramfs -u
, затем перезагрузил, но cat /proc/acpi/bbswitch
все еще показывает, что GPU включен. На данный момент я работаю над этим, используя скрипт с rmmod
командами для отключения GPU Nvidia. Запуск любой программы с optirun
или primusrun
автоматически перезагружает эти драйверы.