感谢 东北小狐狸 的 《debian 9 双显卡安装NVIDIA显卡驱动》,极大程度上地借鉴了这篇文章。
请完全阅读此文再动手!
首先,我也是刚接触linux,从debian开始的,光安装N卡驱动的坑就让我反复装了几次系统,都没一点脾气了,后面想想又实在不应该,希望后来者不要这般浪费时间了!所以这篇文章可能也只适合新手阅读。
在您动手安装Nvidia驱动之前,请务必先设置账户为自动登录,虽然这可能并不必需,但也很可能帮您避免踩坑。因为您的账户在安装驱动并加载重启DM后,可能会卡在登录页面前,还没有登录框的时候,不能登录及其他任何操作,只有进入tty1-6操作,至少我的如此。
每个人电脑软硬件环境不同,仅供参考!
1.类似某度经验的简单命令,通过仓库安装全失败了,症状为:有“NVIDIA X Server Settings”,但是打不开,点击一下就没反映了,弹不出窗口。回头来看,应该是驱动版本不合适!
2. 官网的.run文件安装,按照错误提示一个个的解决了,最后遇到个错误,度了半天有不少说是现在的linux版本升级了,与之前的run包不兼容,不知道真假,也实在是折腾太久了,放弃了,虽然最想还是通过.run安装。
0、如果您之前有失败安装经历,应该彻底卸载,最好重启
# apt-get remove --purge nvidia*
我怕不干净,前面也加了个*,不知道有没有其他影响
# apt-get remove --purge *nvidia*
# apt-get autoremove
最好重启,我的是新装的debian
1、打开终端,root登录,使用如下命令查看自己的显卡型号
$ lspci -nn | egrep -i "3d|display|vga"
2、记下Nvidia显卡最前边的编号,比如下边是我的输出,我的01:00.0为需要记下的,请参考
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0126] (rev 09)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF119M [GeForce 610M] [10de:1058] (rev a1)
3、输入命令,查看,如果命令不存在请安装sudo apt-get install nvidia-detect
$ nvidia-detect
我的输出如下:
Detected NVIDIA GPUs:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF119M [GeForce 610M] [10de:1058] (rev a1)
Checking card: NVIDIA Corporation GF119M [GeForce 610M] (rev a1)
Your card is only supported up to the 390 legacy drivers series.
It is recommended to install the
nvidia-legacy-390xx-driver
package.
您需要记住It is recommended to install the下一行的package,我的是nvidia-legacy-390xx-driver
4、gnome等可以通过 Software & Updates 设置 non-free,我的KDE 通过上面会要求输入root密码然后卡死,总是如此,郁闷!!!
使用vim修改源,如果命令不存在请安装sudo apt-get install vim
vim /etc/apt/sources.list
这是我的sources.list,忘了后面6行在哪粘的了,main是国内源,其他是官方的,官方可能较慢
#
# deb cdrom:[Debian GNU/Linux 10.2.0 _Buster_ - Official amd64 DVD Binary-1 20191116-09:57]/ buster contrib main
# deb cdrom:[Debian GNU/Linux 10.2.0 _Buster_ - Official amd64 DVD Binary-1 20191116-09:57]/ buster contrib main
deb http://mirrors.ustc.edu.cn/debian/ buster main
deb-src http://mirrors.ustc.edu.cn/debian/ buster main
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
# buster-updates, previously known as 'volatile'
deb http://mirrors.ustc.edu.cn/debian/ buster-updates main contrib
deb-src http://mirrors.ustc.edu.cn/debian/ buster-updates main contrib
deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/ buster/updates main contrib
deb-src http://security.debian.org/ buster/updates main contrib
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb http://deb.debian.org/debian/ buster-backports main contrib non-free
主要的一行,加在后面(vim “i”输入,“ESC”-“:”-“w”-"q"保持修改并退出)
deb http://deb.debian.org/debian/ buster main contrib non-free
5、更新源列表,安装必要依赖
# apt-get update
# apt-get install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//')
# apt-get install 您的nvidia包名
我的为
# apt-get install nvidia-legacy-390xx-driver
东北小狐狸 3的输出为:
Detected NVIDIA GPUs:
01:00.0 VGA compatible controller [0300]: 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.
所以如下,这是Ta bebian9的,10并不适用
# apt-get install -t stretch-backports nvidia-driver
安装进程中可能会有确认的界面,直接回车,如有冲突与请选择ok
6、安装完成,重启
7、此时正常的情况是可以进入桌面的(NVIDIA X Server Settings 程序打开的时候出现未加载提示并只显示两行),并且nouveau已经被之前的安装程序添加了禁用blacklist,此时N卡驱动并没有被DM(desktop manager)加载,这里我们几步配置以启用驱动
查看/etc/X11目录,查看有没有xorg.conf文件,没有则创建,添加如下代码
# vim /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-0
xrandr --auto
xrandr --dpi 96
保存并退出,授予执行权限
# chmod +x /usr/local/bin/switch_nvidia.sh
9、根据DM (Desktop Manager)的类型选择配置文件进行修改,请自行选择
后面括号我都标了的,但由于我也是新手,只是踩过这个坑所得,不一定正确,仅供参考。另外您要是安装了多个桌面环境,之前应该有选择用哪个具体DM,如果您不确定,可以逐个查看路径,路径都不存在应该就不是相应DM了
(1)LightDM(网上Ubuntu这个多,不知道是哪个DM)
打开/etc/lightdm/lightdm.conf
搜索display-setup-script=,一般是第二个,去除前边的#号注释,修改为如下:
display-setup-script=/usr/local/bin/switch_nvidia.sh
保存后,重启lightdm
# systemctl restart lightdm.service
界面会自动重启,重启之后驱动已经安装完毕
(2)SDDM(一般KDE)
打开/usr/share/sddm/scripts/Xsetup
在文件最后添加并保存退出
/usr/local/bin/switch_nvidia.sh
重启SDDM
# systemctl restart sddm
(3)SDM(一般Gnome)
分别创建两个相同内容,但不同名的快捷方式(.desktop文件)
vim /usr/share/gdm/greeter/autostart/optimus.desktop
和
vim /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、正常重启应该就可以了,但我遇到前面说的问题了,卡在登录框出现前的界面,不能进行其他操作,只有“Ctrl”+“Alt”+“F1-6”进入tty1-6,通过命令行撤销7后面的操作,再重启后设置账户为自动登录,再进行7后面的操作,再重启
正常应该是能进入桌面的,我也确实进入了桌面,但是只有桌面背景和鼠标光标,其他都没有了,鼠标右键有反映,快捷键无用,键盘“Super”屏幕会暗一点,但是没有出现其他
a.gnome的话,右键有设置,和显示设置,进入显示设置,重新设置显示器
b.kde右键,“添加部件”,“程序启动器”,以此进入设置显示
本来我是喜欢gnome的经典版,但是后面发现还有问题,无奈选择kde
gnome自动登录后,进入桌面可能还会出现登录框,可以登录,也可以取消,不影响使用,但是每次开机中出现也烦得很,可取消账户自动登录后,重启又会卡在登录框出现前,问题陷入循环
kde同样有问题,不过这是安装nvidia驱动前就有的问题了,打开Software & Updates(之前添加non-free用这个应该最简单)会要求输入root密码,输入回车即卡死,从不例外,无奈卸载Software & Updates,之后直接编辑sources.list
11、检查驱动是否正常加载
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 程序是否如下显示而不是只打开的时候出现未加载提示并只显示两行
我也是新手,本子又较老,遇到了很多问题,但每个人软件环境不一样,可能遇到的问题不尽相同,但是总有办法解决的,祝您好运,不要放弃!
文章可能有不少错误,还望斧正!
感谢 东北小狐狸 的 《debian 9 双显卡安装NVIDIA显卡驱动》,极大程度上地借鉴了这篇文章。