Ubuntu 16.04下NVIDIA GTX 960M显卡驱动的安装
Ubuntu 16.04下NVIDIA GTX 960M显卡驱动的安装#
扩写于2017-12-6
记于2017-11-27
该方案亲测可行
准备工作###
在进行本方案前请首先屏蔽nouveau驱动,具体方法可自行百度。同时在启动系统时应按e修改引导参数,在quiet splash后加入nouveau.modeset=0,其余(诸如nomodeset等)选项可以去掉。
若之前曾未成功地安装过NVIDIA驱动,应首先卸载之(sudo apt-get remove --purge nvidia*
,若使用官方安装包安装,则参照官方说明进行卸载),若安装过bumblebee,也应卸载之(sudo apt-get remove --purge bumblebee
)。
此外,检查电脑是否拥有mokutil(即输入命令mokutil
查看是否能够找到命令),若不具有mokutil,本文中的方法虽能够安装驱动,但将无法正常恢复安全启动。检查是否安装有keyctl,若没有安装,使用sudo apt-get install keyutils
进行安装即可。
安装驱动###
从NVIDIA官网下载安装推荐驱动的方案似乎并不能完美安装驱动,会出现很多问题。建议直接使用apt安装官网推荐的驱动。笔者的NVIDIA GTX 960M推荐驱动为nvidia-384。即在终端运行
sudo apt-get install nvidia-384
即可。安装过程中可能提示需要关闭Secure Boot,否则可能无法正常加载驱动,此时选择同意关闭并设置密码。无须担心,事后可以恢复为安全启动。待安装完成后,重启电脑,若电脑带有mokutil,将进入shim界面验证密码关闭安全启动。之后应成功加载驱动并进入系统。
恢复安全启动###
使用openssl为新安装模组生成密钥####
首先创建configuration_file.config文件,内容如下:
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts
[ req_distinguished_name ]
O = KEYNAME
emailAddress = EMAIL
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
其中KEYNAME处随意填写一个名称即可,EMAIL处填入自己的邮箱地址(其实并无大碍)。
使用密钥进行签名####
保存后在当前目录下运行如下命令:
sudo openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config configuration_file.config -outform DER -out public_key.der -keyout private_key.priv #生成密钥
sudo mokutil --import public_key.der #导入密钥
这时密钥导入完毕。可以使用sudo keyctl list %:.system_keyring
命令查看密钥列表。下面对刚刚安装的模组进行签名。
通常,模组的ko文件应位于/lib/modules/4.10.0-38-generic/updates/dkms/
中。ls之并记录下所有nvidia开头的ko文件,以及bbswitch.ko文件,这些文件是应进行签名的文件。使用以下命令进行签名:
sudo /usr/src/linux-headers-4.10.0-38-generic/scripts/sign-file sha256 private_key.priv public_key.der /lib/modules/4.10.0-38-generic/updates/dkms/***.ko
其中***替换为你要签名的文件名。对于以上找到的所有文件均运行该命令。
重新打开安全启动####
运行以下命令:
sudo mokutil --enable-validation
设置密码并重启电脑,进入shim界面,输入密码,打开安全启动即可。
NVIDIA显卡驱动就此安装完毕。