最近给一个老笔记本安装docker,使用了ubuntu16.04加nvidia_docker,需要装载nvidia显卡驱动
最开始按照下面方法安装,下载的NVIDIA-Linux-x86_64-3xx.xx.run各种校验错误,唯一的一个没错的,也循环卡在登陆界面,进不去,明显驱动和什么不适配
1. ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。
编辑文件blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
若未安装vim则sudo apt-get install vim安装或使用vi
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
重启系统(一定要重启)
验证nouveau是否已禁用
lsmod | grep nouveau
没有信息显示,说明nouveau已被禁用,接下来可以安装nvidia的显卡驱动。
2. 在英伟达的官网上查找你自己电脑的显卡型号然后下载相应的驱动。网址:http://www.nvidia.cn/page/home.html
我下载的版本:NVIDIA-Linux-x86_64-396.18.run(注意不同的版本最后安装执行的具体选项不同)
下载后的run文件拷贝至home目录下。
3. 在ubuntu下按ctrl+alt+f1进入命令行界面,
然后在命令行界面下输入:
sudo service lightdm stop //这个是关闭图形界面,不执行会出错。
然后卸载掉原有驱动:
sudo apt-get remove nvidia-* (若安装过其他版本或其他方式安装过驱动执行此项)
4. 给驱动run文件赋予执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-396.18.run
安装:
sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files //只有禁用opengl这样安装才不会出现循环登陆的问题
-no-x-check:安装驱动时关闭X服务
-no-nouveau-check:安装驱动时禁用nouveau
-no-opengl-files:只安装驱动文件,不安装OpenGL文件
安装过程中的选项:(这是copy别人的,自己的没记住,我也是尝试选择了好多遍才安装好)
The distribution-provided pre-install script Failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia's 32-bit compatibility libraries? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续
这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。
5. 挂载Nvidia驱动:
modprobe nvidia
检查驱动是否安装成功:
nvidia-smi
如果出现如下提示,则说明安装成功:
sudo reboot 重启
错误1.
ERROR: Unable to load the kernel module 'nvidia.ko'. This happens most
frequently when this kernel module was built against the wrong or
improperly configured kernel sources, with a version of gcc that differs
from the one used to build the target kernel, or if a driver such as
rivafb/nvidiafb is present and prevents the NVIDIA kernel module from
obtaining ownership of the NVIDIA graphics device(s), or NVIDIA GPU
installed in this system is not supported by this NVIDIA Linux graphics
driver release.
遇到此问题,可以安装后面正文的方法,重新尝试安装,
还有一个类似于此的错误,也是ERROR后面一大堆,但是kernel module后面是“nvidia-drm”,此问题是由于之前安装过驱动的残留所致,请参考第3步后重新安装。
错误2. 在安装的最后一步,没有提示安装成功,而是显示
Error:Unable to load the 'nvidia-drm' kernel module .
之后试了下面方法,成功,nividia的驱动基本都适配其所有型号的显卡,但是有的在老显卡上是在装不上,我的这台笔记本是710m,所以只装上了nvidia-384,勉强达到了cuda9.0的需求
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-384 #
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev