逛遍国内论坛都没解决kalilinux显卡驱动的痛,现在参考国外大神的文章完美解决了!
感谢此文章https://forums.kali.org/showthread.php?35748-TUTORIAL-Installing-official-NVIDIA-driver-in-Optimus-laptop
连续工作4天后,我终于能够在我的HP Envy 15笔记本电脑上安装并运行官方NVIDIA驱动程序。这是我的规格:
CPU: Intel core i7-4510U CPU
GPU #1: Intel HD Graphics 4400
GPU #2: NVIDIA GeForce GTX 850M
我的系统:
Code:
root@linux:~# uname -a
Linux linux 4.9.0-kali3-amd64 #1 SMP Debian 4.9.13-1kali3 (2017-03-13) x86_64 GNU/Linux
Code:
root@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=”2016.2″
VERSION_ID=”2016.2″
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驱动程序而非Bumblebee
*在Kali官方网站上找到的教程是不行!!!它永远不适用于支持集成显卡搭配独立显卡的笔记本电脑
1.确认您有混合图形
Code:
lspci | grep -E “VGA|3D”
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
0a:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 850M] (rev a2)
2.屏蔽nouveau
Code:
echo -e “blacklist nouveau\noptions nouveau modeset=0\nalias nouveau off” > /etc/modprobe.d/blacklist-nouveau.conf
update-initramfs -u && reboot
3.system将重启并且nouveau应该被禁用。如果禁用nouveau,则验证:
Code:
lsmod |grep -i nouveau
如果没有显示,则表示已成功禁用nouveau。
4.从kali repo安装nvidia驱动程序:
Code:
apt-get install nvidia-driver nvidia-xconfig
You can also download latest .run file from nvidia website.execute and procceed with installation.whether its from kali repo or nvidia website,procedure is same.
5.现在我们必须找到我们的nvidia卡的总线ID:
Code:
nvidia-xconfig –query-gpu-info | grep ‘BusID : ‘ | cut -d ‘ ‘ -f6
它应该显示如下:
Code:
PCI:10:0:0
这是Bus ID.
6.现在我们根据nvidia指南http://us.download.nvidia.com/XFree8…E/randr14.html生成带有此总线ID的/etc/X11/xorg.conf文件:
Code:
vim /etc/X11/xorg.conf
复制以下代码进去
Section “ServerLayout”
Identifier “layout”
Screen 0 “nvidia”
Inactive “intel”
EndSection
Section “Device”
Identifier “nvidia”
Driver “nvidia”
BusID “PCI:10: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
用您的总线ID替换粗体字符串并将其保存到/etc/X11/xorg.conf
7.现在我们必须根据我们的显示管理器https://wiki.archlinux.org/index.php…splay_Managers创建一些脚本。因为我使用默认的Kali linux是GDM,我创建了两个文件:
vim /usr/share/gdm/greeter/autostart/optimus.desktop
vim /etc/xdg/autostart/optimus.desktop
2个具有以下内容:
Code:
[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 Driver.Verify如果一切正常,检查硬件加速:启用基于硬件的 3D 加速可以在绘制 3D 图形时直接使用硬件进行处理,这大大加快了 3D 渲染的速度,要使用该功能,必需显卡支持硬件加速并安装了正确的驱动,可以使用 glxinfo 命令来获查看得 OpenGL 的详细信息:
root@kali:~# glxinfo | grep -i “direct rendering”
direct rendering: Yes
root@kali:~# glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 720M/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 390.87
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 390.87
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.87
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
可选:您现在可以安装cuda工具包:cuda toolkits:
Code:
apt-get install ocl-icd-libopencl1 nvidia-cuda-toolkit
固定屏幕撕裂问题:
使用Nvidia Driver成功启动后,您很可能会遇到屏幕撕裂问题,例如:在VLC中播放视频,在Chrome / Firefox上播放YouTube视频等。幸运的是,我们可以通过启用PRIME Sync来解决此问题。
1.验证PRIME是否被禁用
Code:
xrandr –verbose|grep PRIME
显示如下:
PRIME Synchronization: 0
PRIME Synchronization: 1
第一个是我们连接的显示器。因此PRIME同步被禁用。
2.编辑/etc/default/grub在GRUB_CMDLINE_LINUX_DEFAULT中
并在quiet后在附加nvidia-drm.modeset = 1.如下所示:
Code:
….
GRUB_CMDLINE_LINUX_DEFAULT=”quiet nvidia-drm.modeset=1″
…
3.保存更改。更新grub
Code:
update-grub
4.重启系统.
5.验证PRIME开启:
Code:
xrandr –verbose|grep PRIME
现在应该输出:
PRIME Synchronization: 1
PRIME Synchronization: 1
如果它仍然为你显示0,那么你的系统配置/内核可能有问题。由于这仍然是Nvidia的实验性功能,你运气不好。
***如果你被困在起始黑屏***
恢复到目前为止我们所做的工作:
按CTRL + ALT + F2或CTRL + ALT + F3,使用您的密码登录。
Code:
apt-get remove –purge nvidia *
rm -rf /etc/X11/xorg.conf
删除我们之前创建的那些显示管理器文件(对于GDM):
Code:
rm -rf /usr/share/gdm/greeter/autostart/optimus.desktop
rm -rf /etc/xdg/autostart/optimus.desktop
现在重新启动。你应该能够回到旧系统。
创作不易,希望能帮助喜欢kali的玩家