Как установить драйверы Nvidia на ноутбук Dell Latitude - Ubuntu 16.04

Как установить драйверы Nvidia на ноутбук Dell Latitude - Ubuntu 16.04

После обновления с 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)

Использование optirunfor 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автоматически перезагружает эти драйверы.

Связанный контент