本文最后编辑日期为2018.09.08 晚8点半,因为之前写的内容不够准确,而且官方wiki又在今年8月更新了内容,所以这里对之前的内容进行大幅修改,仅保留正确可行的方法------N卡独显的安装!

2018.09.27 update ! this article just suitable debian-live iso , if you use 650M iso, you will get a error "can't load kernel modules". Please certain you iso image ,good luck!

1、打开终端,root登录,使用如下命令查看自己的显卡型号

$ lspci -nn | egrep -i "3d|display|vga"

2、记下Nvidia显卡的型号与最前边的编号,比如下边是我的输出,标红处为需要记下的,请参考

:02.0 VGA compatible controller []: Intel Corporation 3rd Gen Core processor Graphics Controller [:] (rev )
:00.0 VGA compatible controller []: NVIDIA Corporation GK107M [GeForce GT 645M] [10de:0fd9] (rev a1)

3、输入命令,查看,如果命令不存在请安装sudo apt-get install nvidia-detect

$ nvidia-detect

我的输出如下,重要处已标红:

Detected NVIDIA GPUs:
:00.0 VGA compatible controller []: NVIDIA Corporation GK107M [GeForce GT 645M] [10de:0fd9] (rev a1) Checking card: NVIDIA Corporation GK107M [GeForce GT 645M] (rev a1)
Your card is supported by all driver versions.
It is recommended to install the
nvidia-driver
package.

如果你的输出和我的相同,那么之后的安装完全和本教程一致即可,否则需要指定驱动版本号

如果不相同则说明您的显卡不支持最新的驱动,需要指定版本,这里的驱动版本请参考https://wiki.debian.org/NvidiaGraphicsDrivers#Drivers

查到了结果请记住该版本号,之后安装会用到!

4、使用vim或gedit等文本操作工具修改源

gedit /etc/apt/sources.list

在最下边加入一行(如果有的话就不用添加了)

deb http://httpredir.debian.org/debian/ stretch main contrib non-free

5、保存并退出,更新源列表,安装必要信赖,如果在第三部与我的结果不同,请在标红处添加驱动版本号,相同请直接复制命令

# apt-get update
# apt-get install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//')
# apt-get install -t stretch-backports nvidia-driver

安装进程中可能会有确认的界面,直接回车,如有冲突与请选择ok

6、安装完成,重启

reboot

7、此时正常的情况是可以进入桌面的,并且nouveau已经被之前的安装程序添加了禁用blacklist,此时N卡驱动并没有被DM(desktop manager)加载,这里我们几步配置以启用驱动

查看/etc/X11目录,查看有没有xorg.conf文件,没有则创建,添加如下代码

注意:BusID是我们之前在第2步记录的编号,但是有点区别,比如我的编号为01:00.0,那么我的BusID应为1:0:0

Section "Module"
Load "modesetting"
EndSection Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "1:0:0"
Option "AllowEmptyInitialConfiguration"
EndSection

保存并退出

8、创建切换N卡脚本

# vim /usr/local/bin/switch_nvidia.sh

添加内容,红字部分为dpi,普通屏幕无需修改,高分辨率的请自行参考资料

xrandr --setprovideroutputsource modesetting NVIDIA-
xrandr --auto
xrandr --dpi

保存并退出,授予执行权限

# chmod +x /usr/local/bin/switch_nvidia.sh

9、根据DM (Desktop Manager)的类型选择配置文件进行修改,请自行选择

(1)LightDM

  打开/etc/lightdm/lightdm.conf

  搜索display-setup-script=,一般是第二个,去除前边的#号注释,修改为如下:

display-setup-script=/usr/local/bin/switch_nvidia.sh

  保存后,重启lightdm

# systemctl restart lightdm.service

  界面会自动重启,重启之后驱动已经安装完毕

(2)SDDM

  打开/usr/share/sddm/scripts/Xsetup

  在文件最后添加并保存退出

/usr/local/bin/switch_nvidia.sh

  重启SDDM

# systemctl restart sddm

(3)SDM

  分别创建两个相同内容,但不同名的快捷方式(.desktop文件)

  /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

  保存并退出,重启SDM

# systemctl restart gdm3.service

10、检查驱动是否正常加载

glxinfo | grep rendering  

输出为yes即正常,我的输出如下:

$ glxinfo | grep rendering
direct rendering: Yes
GL_NV_path_rendering, GL_NV_pixel_data_range, GL_NV_point_sprite,
GL_NV_path_rendering, GL_NV_pixel_data_range, GL_NV_point_sprite,
GL_NV_packed_float_linear, GL_NV_path_rendering,

如果出现miss之类的输出,请检查第8步和第9步是否正确

除了这个方法验证,还有NVIDIA X Server Settings 程序是否如下显示而不是只打开的时候出现未加载提示并只显示两行

以上就是我综合了多篇wiki加上个人实践带给大家的N卡驱动安装教程。

本文未经许可可以转载,但请在明显的地方注明出处

debian 9 双显卡安装NVIDIA显卡驱动的更多相关文章

  1. Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动

    [日期:2013-05-24]   Linux系统:Ubuntu 13.04 安装 bumblebee 以管理双显卡,下面命令会自动安装NVIDIA显卡驱动 sudo add-apt-reposito ...

  2. Ubuntu16笔记本双显卡安装NVIDIA驱动

    blockquote { direction: ltr; color: rgb(0, 0, 0) } blockquote.western { font-family: "Liberatio ...

  3. Thinkpad W520 + Ubuntu 12.04LTS, 13.10, 14.04LTS安装Nvidia显卡驱动设置

    Thinkpad W520 + Ubuntu 12.04LTS, 13.10, 14.04LTS安装Nvidia显卡驱动设置 http://henzhai.com/tech/2012/07/w520- ...

  4. Ubuntu 解决wifi无法打开的问题 安装NVIDIA显卡驱动的正确姿势

    游戏本型号Y7000 win10 Ubuntu16.04双系统 解决wifi无法打开的问题 解决方法: 1.打开终端输入:rfkill list all 出现如下提示::       可以看到,优先级 ...

  5. ubuntu13.04 Thinkpad W520安装nvidia显卡驱动

    Ubuntu13.04 amd64 Thinkpad W520安装Nvidia显卡驱动 曾经在ubuntu11.10上成功安装Nvidia显卡驱动.但是自从机器(Thinkpad W520)更新到13 ...

  6. Ubuntu下安装nvidia显卡驱动

    layout: post title: Ubuntu下安装nvidia显卡驱动 date: 2015-10-02 17:19:06 categories: 常用命令 tags: 显卡 驱动 最近一直在 ...

  7. Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  8. Ubuntu16.04 安装NVIDIA显卡驱动

    1. 禁用系统默认的集成驱动 Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动.将驱动添加到黑名单blackl ...

  9. Ubuntu中安装NVIDIA显卡驱动

    1.参考: https://blog.csdn.net/xunan003/article/details/81665835 https://www.cnblogs.com/luofeel/p/8654 ...

随机推荐

  1. 微信小程序如何开发制作

    微信小程序如何开发制作 微容SMO是一款微信小程序的免费在线制作工具,用户在微容平台上无需编辑代码,可通过拖拽式操作即可完成小程序的制作,真正意义上实现了小程序零代码免费制作! 消除技术门槛:无需代码 ...

  2. Linux(CentOS6.5)下编译安装PHP5.6.22时报错”configure: error: ZLIB extension requires gzgets in zlib”的解决方式(确定已经编译安装Zlib,并已经指定Zlib路径)

    本文地址http://comexchan.cnblogs.com/,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢!   今天在CentOS6.5下编译安装PHP时,一直报错 confi ...

  3. 在开发中使用Mockito进行测试

    关于单元测试的一些问题 当我们Javaweb项目中编写单元测试的时候,通常会面临一个普遍的问题:需要测试的类会有很多依赖,而这些依赖的类或者对象又会有很多别的依赖,导致我们在写单元测试的时候几乎需要把 ...

  4. 关于pocsuite的使用

    0x00 前言 pocsuite的用处就不多说了,早些时候也看到黑哥和余弦大佬在微博上说zoomeye 和pocsuite升级了. 结合最近自己在审计cms,也想收集一下其他cms的poc,比如chy ...

  5. linux下分割文件

    split -l 115 XSMD.txt -d -a 2 XSMD.txt._   注:将一个文件XSMD.txt分割成两个文件,每个大小115

  6. Android-AnsyncTask异步任务

    同步和异步的概念区别: 同步,必须执行完成某个问题后才能继续执行其他的. 异步,我会去先执行其他问题,你执行完之后返回给我一个结果就可以. android中为什么要引用异步任务呢 android启动的 ...

  7. CentOS7下安装Docker-Compose

    Docker-Compose是一个部署多个容器的简单但是非常必要的工具. 安装Docker-Compose之前,请先安装 python-pip 安装 python-pip 1.首先检查linux有没有 ...

  8. Centos7(Linux)网络配置,自动获取ip地址

    Centos7.0 Vmware 网络桥接配置,利用DHCP自动获取ip地址 首先要将Vmware10.0.3设置为桥接模式. CentOS 7.0默认安装好之后是没有自动开启网络连接的! cd  / ...

  9. 入门干货之Grpc的.Net实现-MagicOnion

    此文章简单残暴,学习成本较低,你可以跟着我一起撸代码,一起吐槽,一起砸键盘.以下操作均为 core2.0 环境. 0x01.Grpc 1.介绍  Google主导开发的RPC框架,使用HTTP/2协议 ...

  10. HtmlWebpackPlugin实现资源的自定义插入

    目前碰到的问题 我们用html-webpack-plugin的inject属性去自动插入打包后的js, css到页面中,但是如果想给script标签添加一个crossorigin属性呢, 例如: &l ...