Ubuntu18.04安装Nvidia驱动【全网不坑,超全步骤】(亲测~)

news2025/7/9 6:20:17

Ubuntu18.04安装Nvidia驱动【全网不坑,超全步骤】亲测~

  • 为了方便以后回忆以及给像我一样的菜鸡提供思路,给出具体的步骤:
    • No.1 查看自己的电脑显卡型号(已知麻烦自动略过)
    • No.2 下载电脑对应的Nvidia版本驱动
    • No.3 准备工作,下载依赖
    • No.4 开始安装

为了方便以后回忆以及给像我一样的菜鸡提供思路,给出具体的步骤:

No.1 查看自己的电脑显卡型号(已知麻烦自动略过)

直接上命令:

1)方法一:(可有有些人不适用,就像我)

lshw -c video

结果:

在这里插入图片描述

2)方法二:(适用)

lspci | grep -i nvidia

显示:

在这里插入图片描述
02:00.0 3D controller: NVIDIA Corporation Device 1d12 (rev a1)
我们要的就是:1d12
然后进入网址:PCI Devices

在这里插入图片描述
输入并查找,得到

在这里插入图片描述
3)方法三:(说是直接弹出结果,但我没试过)

nvidia-smi -L 

在这里插入图片描述

No.2 下载电脑对应的Nvidia版本驱动

进入官网:https://www.nvidia.cn/Download/index.aspx?lang=cn

在这里插入图片描述
PS:这里按照我的电脑选取了驱动程序
然后:

在这里插入图片描述
选择下载之后得到一个后缀名为run的文件:

在这里插入图片描述

No.3 准备工作,下载依赖

1)禁用BIOS中的安全启动模式secure boot,这是因为此方法使用第三方源安装显卡驱动,不禁止secure boot会导致安装的驱动不能使用,禁用也不会有多大安全隐患。
不禁用后面会导致安装出现error并且fail
具体做法是:
开机进入BIOS,然后选择安全模式,禁止。(图待补充ing…)

2)移除所有以前安装过的nvidia包,并禁用nouveau
移除:

sudo apt-get purge nvidia*

创建文件:

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

一般人很少用vim(vim是a或者i开启编辑,esc退出,输入:wq保存退出),我这里习惯用自带的gedit命令直接打开相当于记事本那样编辑:

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

插入以下两句代码:

 blacklist nouveau
 options nouveau modeset=0

在这里插入图片描述
执行命令禁止nouveau,并重启生效。

sudo update-initramfs -u
sudo reboot

重启后,输入:

lsmod | grep nouveau

验证。

3)在安装驱动之前需要安装gcc和相应的依赖:

sudo apt-get install build-essential 

我也不知道为什么这一行命令就把gcc给安装了,然后安装cmake:

sudo apt-get install cmake

查看gcc和cmake有没有安装成功:

gcc --version
cmake --version

4)没有lightdm需要安装一下:

sudo apt-get install lightdm

一直安装不下来,于是换镜像源,更换前最好先备份:

cp /etc/apt/sources.list /etc/apt/sources_bak.list

或者

mv /etc/apt/sources.list /etc/apt/sources.list.bak

打开文件:

sudo gedit /etc/apt/sources.list

替换…一开始换的是清华镜像源(有需要的同志也可以访问)
更换了之后需要:

sudo apt-get update

出现错误:

GPG error:
http://developer.download.nvidia.com/compute/cuda/repos/ubuntu180

然后这种错误,更换阿里源就好了:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更换了之后同样需要:

sudo apt-get update

再运行命令:

sudo apt-get install lightdm

安装。

No.4 开始安装

在第三步的基础上

1)进入tty2模式
按ctrl+alt+f1进入命令行界面,此时会要求你输入用户名+密码:
PS:ctrl+alt+f7可直接退出来,回归正常~
然后执行:

ubuntu@ubuntu:~$ sudo service lightdm stop

关闭图形界面,当然你也可以直接关闭,再ctrl+alt+f1进入命令行界面。

2)然后cd到.run文件所在的文件夹,执行:

sudo chmod 777 NVIDIA-Linux-x86_64-510.73.05.run

修改驱动文件的权限

3)重头戏来了 执行安装:

sudo ./NVIDIA-Linux-x86_64-510.73.05.run

会载入一段时间,然后显示:

在这里插入图片描述
OK,下一步:

在这里插入图片描述
选择继续,然后OK一下,跳到:

在这里插入图片描述
敲重点敲重点敲重点

这里你如果选择右边的Install without signing最后会出现:

You appear to be running an X server; please exit X before

解决方法:
更新NVIDIA显卡的CUDA驱动出错,You appear to be running an X server; please exit X before
也就是卸载重来:

sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status
sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*

选择左边的:Sign the kernel module,OK,往下走:

在这里插入图片描述
选择生成新的密钥Generate a new key pair,这就会在/usr/share/nvidia/下生成一个nvidia*.der文件和nvidia*.key文件,前一个是私钥,后一个是公钥。
然后选择NO:

在这里插入图片描述
不要删除。
接着两次OK后,选择Install signed kernel module:

在这里插入图片描述
完成后,执行:

sudo mokutil --import /usr/share/nvidia/nvidia*.der

将密钥加到内核的信任列表中,此时会提示输入两次密码。
重启。
在进入系统前出现蓝色界面,选择Enroll MOK

在这里插入图片描述
选择继续:

在这里插入图片描述
然后Yes输入密码:

在这里插入图片描述
选择Reboot重启:

在这里插入图片描述
开机后:

在这里插入图片描述
输入:

sudo modprobe nvidia

挂载NVIDIA驱动,最后输入:

nvidia-smi 

显示:

在这里插入图片描述

在这里插入图片描述
完成。

因为是完成之后写的,写得不好还请各位大神多多海量~
制作稍许不易,顺手点赞交谊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/406397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue脚手架报错:‘v-model‘ directives require no argument 解决方案

1、报错: v-model directives require no argument 截图 2、原因: ESLint对vetur进行了eslint检查 3、解决方法 ① 修改模板中使用v-show 将 v-model:show"show" 改为 v-model"show" ② vetur插件的作者给出了解决办法 我们可…

【一起学Rust | 框架篇 | Viz框架】轻量级 Web 框架——Viz

文章目录前言特点一、Hello Viz1. 创建项目2. 引入viz3. 运行Hello Viz4. 运行结果注意二、Hello Viz代码详解导入组件处理请求主函数三、常见用法简单的处理程序实现处理程序特质路由传参链式组合程序中间件参数接收器路由一个简单的路由CRUD操作资源总结前言 Viz&#xff0c…

TS的类型声明

目录 1.TS把JS变成了静态类型的语言,可以给变量指定类型 2.JS中的函数是不考虑参数的类型和个数的,但是TS会考虑函数的参数类型和个数,且要规定返回值类型。 3.常见的TS类型 1.可以直接使用字面量进行类型声明 字面量声明的应用:可以使用…

讲解HTML和CSS(超详细)

讲解HTML和CSS(超详细)一、初始HTML和CSS1.html的发展历史2.html3.css二、HTML1.基本框架2.HTML5常用的标签和属性三、CSS1.css的使用2.css选择器总结提示:以下是我的一些经验之谈,下面案例可供参考 一、初始HTML和CSS 1.html的…

手撕前端面试题【javascript~ 总成绩排名、子字符串频次统计、继承、判断斐波那契数组等】

前端JavaScript面试题🍓🍓总成绩排名🍓🍓子字符串频次🍓🍓继承🍓🍓判断斐波那契数组🍓🍓js中哪些操作会造成内存泄漏?html页面的骨架,相当于人的…

Vue中的过滤器(filter)

一、Vue中的过滤器是什么 过滤器(filter)是输送介质管道上不可缺少的一种装置,大白话,就是把一些不必要的东西过滤掉,过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理,我们也可以理…

Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组

文章目录前言一、什么是JSON对象?二、什么是json字符串?二、什么是JSON数组?三、复杂、嵌套的json字符串四、json字符串转换4.1 简单json字符串转换为java对象4.2 简单json字符串数组转换为list数组4.3 复杂嵌套json字符串数组转换为Java对象…

十大常用web前端UI组件库,赶紧收藏

今天主要介绍web前端常用的UI库,这些网站基本都是背靠互联网大厂,值得web前端开发者收藏,当然还是要多多学习使用。 Vant 一款有赞出品轻量、可靠的的移动UI组件库,目前支持 Vue2、Vue3、React,微信和支付宝小程序&a…

Vue基础语法知识(自用,完整版)

Vue基础语法知识 1、想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象 2、root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法 3、root容器中里的代码被称为【Vue模板】 4、Vue实例和容器是一一对应的 5、真实开发…

手机+PC电脑如何使用油猴插件和油猴脚本?

一、移动端使用油猴脚本 移动端可以不使用油猴插件,就可直接安装脚本(需要浏览器支持),这样天然支持油猴脚本的移动浏览器还是很多,比如:书签地球、X浏览去、M浏览器等,但是各个浏览器的支持情…

前端Vue项目部署到服务器过程,以及踩坑记录

目录 需求 过程 踩坑 nginx服务器404错误的原因 404 Not Found nginx服务器500错误的原因 500 Internal Server Error nginx反向代理 需求 前后端完成项目后,需要部署到本地的服务器上。 第一次部署,以下是从0开始慢慢学着弄的详细过程 过程 …

大白话理解-微信小程序获取授权

学习目录 微信小程序前端直接获取授权微信为什么要授权微信怎么授权?微信登录微信小程序前端直接获取授权 微信为什么要授权 微信用户授权,才可以操作微信官方的某些接口。简单来说就是:微信定义了很多接口,然后他们认为有一部分是涉及到用户使用安全的,所以把这一部分划…

Python 爬虫案例

一、用cookie池模拟登录 在网络请求交互中,为了维持用户的登录状态,引入了cookie的概念。当用户第一次登录某个网站时,网站服务器会返回维持登录状态需要用到的信息,这些信息就称为cookie。浏览器会将cookie信息保存在本地计算机…

微信小程序(分包)

文章目录分包概念作用分包后的项目构成分包的加载规则分包的体积限制配置方法小程序打包原则引用原则独立分包分包预下载分包 概念 分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需…

解决报错:Uncaught TypeError: Cannot read properties of undefined (reading ‘install‘)

在做vue2项目时出现如下错误,页面空白且控制台出现如下错误: 报错内容: Uncaught TypeError: Cannot read properties of undefined (reading install) at Vue.use (vue.runtime.esm.js?c320:5709:1) at eval (index.js?5aa4:7:1…

Http请求-hutool工具类的使用

Http请求-hutool工具类的使用 前言 在日常java后端开发的工作中经常会遇到后端发起HTTP请求的情况,这里可以使用一个简单的工具类。 官方网址:Http请求-HttpRequest (hutool.cn) 介绍 本质上,HttpUtil中的get和post工具方法都是HttpRequ…

【小程序从0到1】首页布局案例的实现

欢迎来到我的博客 📔博主是一名大学在读本科生,主要学习方向是前端。 🍭目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏 🛠目前正在学习的是🔥React/小程序React/小程序React/小程序&am…

let、const和var的区别(涉及块级作用域)

let 、const和var的区别 let、const、var在js中都是用于声明变量的,在没有进行ES6的学习前,我基本只会使用到var关键字进行变量的声明,但在了解了ES6之后就涉及到了块级作用域以及let,const了。 let与const let是用于替代var来…

Java实现本地缓存、分布式缓存及多级缓存

以下均为自己参考其它博主文章或自己理解整理而成,如有错误之处,欢迎在评论区批评指正! 0. 缓存简介 像MySql等传统的关系型数据库已经不能适用于所有的业务场景,比如电商系统的秒杀场景,APP首页的访问流量高峰场景&a…

火爆全网的人工智能真的有那么强嘛?

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…