硬件平台为戴尔G15,显卡为RTX3060,系统Ubuntu18.04,使用opencv版本为3.4.14并且安装opencv contrib。
1.安装nvidia显卡驱动
首先在bios设置中关闭secure boot,具体的关闭方法根据电脑不同有所区别。
关闭后进入nvidia官网下载显卡驱动。如果你后续要使用pytorch那这里就不建议安装最近的显卡驱动,截至2022年4月12日pytorch只支持到CUDA11.3。显卡驱动版本和CUDA的版本要求在这里查找:Release Notes :: CUDA Toolkit Documentation。我这里经过试错,选择了NVIDIA-Linux-x86_64-495.44版本的驱动,CUDA版本为cuda_11.3.0_465.19.01_linux。
如果之前安装过nvidia显卡驱动,需要完全删除原来的显卡驱动,执行:
sudo apt-get remove --purge nvidia*
然后安装一些必要依赖:
sudo apt-get install dkms build-essential linux-headers-generic
gcc-multilib xorg-dev freeglut3-dev libx11-dev libxmu-dev libxi-dev
libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev gcc-multilib xorg-dev
freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa
libglu1-mesa-dev -y
接下来查看系统内是否有多个内核版本,我之前系统内有三个版本的内核,安装完显卡驱动后出现了循环登陆进不去系统的现象。可能是个例,如果不用其他版本的内核,请将不用的内核删除。
接下来禁用Ubuntu自带的显卡驱动:
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
添加如下内容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
然后执行如下指令更新配置:
$ echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
$ sudo update-initramfs -u
$ reboot
重启进入系统后执行指令:
lsmod |grep nouveau
终端无输出则说明禁用成功。
接下来将下载好的驱动放到/home/username/目录下,并且执行。显卡驱动换为你下载的版本
sudo chmod 777 NVIDIA-Linux-x86_64-495.44.run
执行sudo init 3进入指令行界面,会出现登陆提示,输入用户名和密码即可登陆。如果屏幕黑屏无任何字符,则ctrl+F4,一样使用用户名密码登陆。登陆成功后
sudo ./NVIDIA-Linux-x86_64-495.44.run --dkms --no-opengl-files
一路回车不用看,安装结束后输入nvidia-smi,此时屏幕会显示你的显卡信息,则说明安安装成功。reboot重启