。。。绝大多数人都会照着官方的教程做,但是这个操作是针对只有一张nvidia显卡的台式机来说的,而不是笔记本的双显卡。。。。按照这个教程,装完之后是可以用这个gpu做运算的,但是不能用来做显示。。。插上外接显示器没有任何反应,用xrandr根本检测不到有外界显示器存在。
出现这个问题的原因是官方的配置里缺少了一步配置显示的操作。。。如果只有一张卡的话装系统的时候显示设置就配置好了,双显卡的话默认的显示用的是核显,独显根本没管,所以我们要手动操作一下。
注意:在参考本配置之前请务必先按照官网Doc走一遍,确保gpu驱动已经装好,可以进行运算测试之后再进行。
我的kali版本
Linux 5.3.0-kali2-amd64 #1 SMP Debian 5.3.9-3kali1 (2019-11-20) x86_64 GNU/Linux
- 首先安装kernel headers,不然驱动编译可能会出问题
apt install linux-headers-$(uname -r)
2. 如果nouveau驱动没有被禁用的话,禁用他。这个在网上google就可以找到很多适用与不同电脑的解决方法。
- 安装驱动本身
apt install nvidia-driver nvidia-xconfig
- 安装好之后,退出kali 图形界面,按Ctrl Alt F2(或者别的F3 F4之类的),切换到tty界面
首先停掉gdm 不要停掉!!!可能会在一部分机器上导致桌面无法重启。
#systemctl stop gdm 不要停止,原来的做法可能会出问题
手动加载nvidia-drm模块
modprobe nvidia-drm
- 首先获取显卡的总线的BusID
nvidia-xconfig --query-gpu-info | grep 'BusID : ' | cut -d ' ' -f6
一般得到一个类似于
PCI:1:0:0
的BusID
- 手动创建配置文件
/etc/X11/xorg.conf.d/xorg.conf
,这里网上有的版本是/etc/X11/xorg.conf
,原理都一样,版本的差异而已,把上文得到的你的BusID填进下面的示例,复制到这个配置文件。
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
# You may need to change the PCI value
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
- 把以下配置写进
/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
重启gdm之前的没有关,这一部可以不用操作
systemctl start gdm
- 此时重启电脑,就可以使用hdmi连接外接显示器了
参考:
https://forums.kali.org/showthread.php?35748-TUTORIAL-Installing-official-NVIDIA-driver-in-Optimus-laptop
https://medium.com/@jamesmacwhite/installing-the-nvidia-drivers-in-kali-linux-cd3560258e24
https://www.linuxquestions.org/questions/debian-26/glxinfo-command-not-found-nvidia-debian-469088/