Потратив несколько дней на то, как -tos и отладку проблемы с черным экраном при загрузке после установки драйверов NVIDIA, я, наконец, смог найти решение всех своих проблем. Основная причина, по которой я пишу этот пост, — сообщить вам, что учебник, найденный на официальном сайте Kali, не работает с 11 апреля 2018 года. упоминается на их веб-сайте, вы можете успешно установить пакеты — ocl -icd -libopencl1, драйвер nvidia -, инструментарий nvidia -cuda -— но вы можете столкнуться с проблемами во время перезагрузки. Вы можете получить черный экран и не сможете войти в систему через графический интерфейс. Итак, приступим:
Прежде всего, вот характеристики моей системы:
# uname -a
Linux europa 4.14.0-kali3-amd64 #1 SMP Debian 4.14.17-1kali1 (2018-02-16) x86_64 GNU/Linux
Выпуск:
# cat /etc/*release*
DISTRIB_ID=Kali
DISTRIB_RELEASE=kali-rolling
DISTRIB_CODENAME=kali-rolling
DISTRIB_DESCRIPTION="Kali GNU/Linux Rolling"
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2018.1"
VERSION_ID="2018.1"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.kali.org/"
SUPPORT_URL="http://forums.kali.org/"
BUG_REPORT_URL="http://bugs.kali.org/"
Прежде чем мы начнем, несколько замечаний:
ИСПОЛЬЗУЙТЕ НА СВОЙ РИСК
Это руководство относится к официальному драйверу NVIDIA
Учебник, найденный на официальном сайте Kali, НЕИСПРАВЕН! Это никогда не работает для ноутбуков с поддержкой оптимальной / гибридной графики.
Шаг 1 :Убедитесь, что у вас гибридная графика
# lspci | grep -E "VGA|3D"
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
01:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX150] (rev a1)
Шаг 2 :Отключить модерн
# echo -e "blacklist nouveau\noptions nouveau modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf
# update-initramfs -u && reboot
Шаг 3 :Система перезагрузится, и режим nouveau должен быть отключен. Убедитесь, что nouveau отключено:
# lsmod | grep -i nouveau
Если он ничего не показывает,это означает, что nouveau был успешно отключен.
Шаг 4 :Установите драйвер nvidia из репозитория Kali:
# apt-get install nvidia-driver nvidia-xconfig
Вы также можете загрузить последнюю версию файла.run с веб-сайта Nvidia. Выполните и продолжите установку. Будь то из репозитория Kali или веб-сайта Nvidia, процедура одинакова. Команда для установки файла.run:
sudo sh./Nvidia-driver-filename.run
Шаг 5 :Теперь нам нужно найти идентификатор шины нашей карты NVIDIA:
# nvidia-xconfig --query-gpu-info | grep 'BusID : ' | cut -d ' ' -f6
Это должно выглядеть примерно так:
PCI:1:0:0
Это наш идентификатор шины.
Шаг 6 :Теперь мы создаем файл /etc/X11/xorg.conf
с этим идентификатором шины в соответствии с руководством Nvidia:
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "**PCI:1:0:0**"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Замените строку внутри****на идентификатор вашей шины и сохраните файл в /etc/X11/xorg.conf
.
Шаг 7 :Теперь нам нужно создать несколько сценариев в соответствии с нашим менеджером отображения.
Поскольку я использую Kali Linux по умолчанию, то есть GDM, я создал два файла : /usr/share/gdm/greeter/autostart/optimus.desktop
и /etc/xdg/autostart/optimus.desktop
со следующим содержимым:
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
Шаг 8 :Теперь перезагрузите компьютер, и вы должны использовать драйвер Nvidia. Убедитесь, что все в порядке :установите утилиты mesa -, если они не были установлены ранее.
# apt-get install mesa-utils
# glxinfo | grep -i "direct rendering" direct rendering: Yes
Шаг 9 :Теперь вы можете установить инструменты и драйверы cuda:
# apt install -y ocl-icd-libopencl1 nvidia-driver nvidia-cuda-toolkit
Шаг 10 :Теперь, когда наша система готова к работе, нам нужно проверить правильность загрузки драйверов. Мы можем быстро проверить это, запустив инструмент nvidia -smi.
# nvidia-smi
Wed Apr 11 11:08:55 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.42 Driver Version: 390.42 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce MX150 Off | 00000000:01:00.0 Off | N/A |
| N/A 60C P0 N/A / N/A | 368MiB / 2002MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 763 G /usr/lib/xorg/Xorg 20MiB |
| 0 793 G /usr/bin/gnome-shell 19MiB |
| 0 1108 G /usr/lib/xorg/Xorg 82MiB |
| 0 1191 G /usr/bin/gnome-shell 242MiB |
| 0 2132 G gnome-control-center 1MiB |
+-----------------------------------------------------------------------------+
РЕШЕНИЕ ПРОБЛЕМЫ С РАЗРЫВОМ ЭКРАНА :После успешной загрузки с драйвером Nvidia вы, скорее всего, столкнетесь с проблемой разрыва экрана, т. е. сбоями при воспроизведении видео в VLC, видео с YouTube в Chrome/Firefox и т. д. К счастью, мы можем исправить это, включив PRIME Sync.
Убедитесь, что PRIME отключен
# xrandr --verbose | grep PRIME
должно получиться что-то вроде этого:
PRIME Synchronization: 0
PRIME Synchronization: 1
Первый — это наш подключенный дисплей. Таким образом, синхронизация PRIME отключена.
Отредактируйте /etc/default/grub
и добавьте nvidia-drm.modeset=1
в GRUB_CMDLINE_LINUX_DEFAULT
после quiet
. Как следующее:
︙
GRUB_CMDLINE_LINUX_DEFAULT="quiet nvidia-drm.modeset=1"
︙
Сохраните изменения и обновите grub с помощью команды:
# update-grub
Перезагрузите систему.
Убедитесь, что PRIME включен:
# xrandr --verbose | grep PRIME
Теперь он должен выводить:
PRIME Synchronization: 1
PRIME Synchronization: 1
Если у вас по-прежнему отображается 0, возможно, что-то не так с вашей системной конфигурацией / ядром. Поскольку это все еще экспериментальная функция от Nvidia, вам не повезло.
ЕСЛИ ВЫ ЗАСТРЕЛИ НА ЭКРАНЕ ЗАГРУЗКИ
Вернуть то, что мы сделали до сих пор:
Нажмите Ctrl + Alt + F2 или Ctrl + Alt + F3 , войдите под своим паролем.
# apt-get remove --purge nvidia-*
# rm -rf /etc/X11/xorg.conf
Удалите те файлы диспетчера отображения, которые мы создали ранее (для GDM):
# rm /usr/share/gdm/greeter/autostart/optimus.desktop
# rm /etc/xdg/autostart/optimus.desktop
Теперь перезагрузите компьютер. Вы должны быть в состоянии вернуться к своей старой системе.
Если возникнут какие-либо проблемы, сообщите об этом на форуме Kali .
Выражаю искреннюю благодарность TiGER511 , проделавшему всю тяжелую работу.