Ubuntu下显卡驱动安装

导读

本文将介绍如何在Ubuntu系统上,安装显卡驱动。

1. 下载驱动

  • 驱动程序下载

打开上面的驱动下载链接,根据自己的显卡型号进行选择对应配置,如下图,后点击搜索。

  • 下载

搜索后,点击下面下载案例即可下载。

2. 安装依赖

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

如果安装失败,则先进行pip3的升级更新,再重复上述操作。

sudo apt-get install python3-pip
  • 更新升级pip3:
sudo pip3 install --upgrade pip

3. 禁用系统默认显卡驱动

sudo gedit /etc/modprobe.d/blacklist.conf
 
# 在文件末尾写入
blacklist nouveau
options nouveau modeset=0
 
# 保存后手动更新;
sudo update-initramfs -u
 
# 电脑重启,输入下列指令进行确认,若无输出,则禁用成功:
lsmod | grep nouveau

4. 配置环境变量

  • gedit命令打开配置文件
sudo gedit ~/.bashrc
  • 末尾写入
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
  • 保存更新
source ~/.bashrc

5. 卸载原有驱动

sudo apt-get --purge remove nvidia*
sudo apt autoremove

6. 退出图形界面

  • 按住ctrl+alt+F1(1-6均可),进入x-server
sudo service lightdm stop
  • 如果提示unit lightdm.service not loaded
	则需要安装LightDm:
sudo apt install lightdm

安装完毕后跳出一个界面,选择lightdm,再sudo service lightdm stop

7. 安装驱动

sudo chmod +x NVIDIA-……………….run*
sudo sh NVIDIA-……………….run* --no-opengl-files --no-x-check --no-nouveau-check 

# –no-opengl-files 不安装OpenGL文件
# –no-x-check 安装驱动时不检查X服务,非必需。
# –no-nouveau-check 安装驱动时不检查nouveau,此参数非必需,因为之前已经手动禁用了nouveau。

安装过程中选项如下:

1.The distribution-provided pre-install script failed! Are you sure you want to continue? 

“Yes”

2.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”

3.Nvidia’s 32-bit compatibility libraries?

“No”

4.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”
  • 挂载NVIDIA驱动:
modprobe nvidia
  • 回到图形界面或直接将电脑重启
sudo service lightdm start            #回到图形界面
sudo reboot now                       #重启
  • 终端输入指令
sudo nvidia-smi
本文转载于网络 如有侵权请联系删除

相关文章

  • 网页抓包

    网页抓包主要指的是对网页的跟踪,包括网页的访问时间、访问者的IP地址、访问者的浏览器等信息。在爬虫的过程中,我们看到的网页可能并非是一次就加载出来的,有的网页也可能会分好几步加载,因此跟踪网页的整个加载过程,只有完全掌握了网页抓包的操作,才能得到存放我们需要数据的页面。 网页抓包主要借助的是浏览器的开发者工具,接下来就按照我将使用本博客来对开发者工具进行介绍。 在博客的初始页面打开开发者工具,可以看到如下界面: 默认开发者工具栏出现在右侧,这里为了使用方便放在了下侧,功能一样的。 首先打开的是元素页,这个页面可以用来查看网页的html格式和css的源码,可以通过左上方小箭头样式来跟踪网页的结构,这对于我们快速定位爬取数据在html中的位置有很大的帮助,另外也可以借助右侧的css栏目来查看网页加载的css,每一个样式右上方的蓝色链接存放着css的链接,可以用来提取网页美化的样式。 接着是控制台一栏,这一栏我平时用的很少,可以类比为网页的命令行工具,可以用来调取各种你需要的内容(调试js代码,调取日志等) 再然后是源代码一栏: 这一栏是非常重要的一栏,存放着整个网页所有的源代码,包括整

  • LeetCode-面试题14-1-剪绳子

    #LeetCode-面试题14-1-剪绳子给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]...k[m]。请问k[0]k[1]...k[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例1输入:2 输出:1 解释:2=1+1,1×1=1复制示例2输入:10 输出:36 解释:10=3+3+4,3×3×4=36复制提示:2<=n<=58#解题思路方法1、动态规划整体目标为最大化f(n)=max(f(i)xf(n-i)),可以看成递归自顶向下解决,但是这样会有很多重复计算。一个更好的方法是自底向上,把小的子问题最优解,然后再往上计算,子问题要存储起来,避免重复的计算过程。对于f(0)~f(3),最优解的值是n-1,对于n>=4的数,比如4,可以切分为1,2,3的数字组合,于是dp[1],dp[2],dp[3]分别等于1,2,3。这里的dp[3]不等于最优解2,因为切分4并不需要对数字3再次切分。另外一种解释是把线切

  • 5G在美国的三个发展阶段

    在过去的几年里,美国有很多关于5g的炒作。不用担心炒作的事情,因为会有更多的炒作会到来。5G发展的第三个阶段,即将来临:)5G的第三阶段有望与漫威电影宇宙的第三阶段一样令人兴奋。像《蜘蛛侠:回家》(2017年)、《黑豹》(2018年)和《复仇者:终结游戏》(2019年)这样的大片在漫威电影宇宙的第三阶段大放异彩,在5G的第三阶段,我们可能会开始看到广泛的5G服务达到300-500Mbit/s。根据网络监控公司Ookla的数据,这比目前4G和5G的平均速度(约70Mbit/s)要快得多,而且速度是平均固定有线互联网连接速度的两倍多。为什么?这是因为美国所有大型5G提供商都将开始将中频谱(3GHz~6GHz)引入其5G网络。中带频谱被描述为5G的"金锁",因为它在覆盖广阔的地理区域和提供快速速度之间具有分界线。虽然关于中频谱的哪个"味道"是最好的,但有一点争论,但随着我们进入2022年,中频段的"味道"将足以开始在全国大部分地区的多个运营商中有所作为。下面是一张图表,显示AT&T、Verizon和T-Mobile将如何以及

  • Spring Boot 应用可视化监控,一目了然!

    1、SpringBoot应用暴露监控指标首先,添加依赖如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 复制采集应用的指标信息,我们使用的是prometheus,相应的我们引入包:<dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_spring_boot</artifactId> <version>0.0.26</version> </dependency> 复制然后,在启动类Application.java添加如下注解:@SpringBootApplication @EnablePrometheusEndpoint @Ena

  • Hexo和icarus主题那些坑:访问不了、打开慢、备案号

    把自己写的很戳的博客下架了,还是老老实实用Hexo吧,换了个icarus主题,发现一堆坑。DNS解释错误首先是github.io被解释成为127.0.0.1。至于原因:电脑解决这个问题很容易,设置一个DNS服务器就可以了,手机似乎我还没找到哪里可以设置蜂窝网络的DNS(iOS)。当然也可以手动把github.io的ip加到hosts文件中。github.io的地址是:185.199.109.153。但是,这只是自己能访问得到自己的博客,别人访问不到呀,掩耳盗铃~~~申请一个域名吧,然后直接把域名解释到185.199.109.153就好了~icarus主题打开慢换了icarus主题后,没有xx的情况下打开非常慢,基本打开不了。后来通过查看请求,发现是一些字体、css文件请求失败的原因:找到_config.icarus.yml,在最后的providers,修改:全部修改为loliproviders: #NameorURLtemplateoftheJavaScriptand/orstylesheetCDNprovider cdn:loli #NameorURLtemplateoftheweb

  • PHP的Mcrypt加密扩展知识了解

    PHP的Mcrypt加密扩展知识了解今天我们来学习的是PHP中的一个过时的扩展Mcrypt。在PHP7之前,这个扩展是随PHP安装包一起内置发布的,但是现在新版本的PHP中已经没有了,需要使用这个扩展的话我们需要单独安装,并且在使用的时候也是会报出过时的警告的。所以,我们学习使用这些函数的时候,就需要使用@来抑制错误信息。当然,之所以会对这套扩展发出过时警告,是因为PHP更加推荐使用OpenSSL来处理类似的加密能力。模块和算法Mcrypt主要是使用的Mcrypt工具来进行加密操作的,所以在CentOS或者其它操作系统中,我们需要安装libmcrypt-devel来使用这个扩展。如果yum中无法安装的话,直接更新yum源即可。Mcrypt包含很多的模块和算法。算法就不用多解释了,就是用来对数据进行加密的方式。而模块,包括CBC,OFB,CFB和ECB这几种,是一系列的分组、流式加密的模式,有推荐的模块,也有安全的模块,具体的区分大家可以自行查阅相关的资料,这里我们先看一下我们的环境中所支持的模块和算法。$algorithms=@mcrypt_list_algorithms(); pri

  • 13 . Python3之并发编程

    什么是操作系统?为什么要有操作系统?现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。  一般而言,现代计算机系统是一个复杂的系统。  其一:如果每位应用程序员都必须掌握该系统所有的细节,那就不可能再编写代码了(严重影响了程序员的开发效率:全部掌握这些细节可能需要一万年....)  其二:并且管理这些部件并加以优化使用,是一件极富挑战性的工作,于是,计算安装了一层软件(系统软件),称为操作系统。它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理刚才提到的所有设备。总结:程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件什么是操作系统?精简的说的话,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如下图. 操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作

  • 系统盘空间莫名消失怎么解

    问题原因 进程文件句柄数占用 磁盘分区inode满 挂载点覆盖:原有文件系统目录已经存在大量文件。从新挂载了新磁盘后,使用df命令统计的是新挂载目前使用空间磁盘空间满(不多说,是地球人都知道怎么处理)1.关于磁盘的inode满100%--i节点大爆发处理办法原因:通常是发现磁盘没有满但是无法写入文件。提示“nospaceleftondevice”用df-i查看,应该会发现相应的分区是100%一般都是crontab的job有问题,造成/var/spool/clientmqueue中产生许多的零碎文件。处理方法:dumpe2fs-h/dev/sda2|grep"Freeinodes"(空闲inodes查看)用rm-rf*会不能删除,并会有相应的提示,大意是参数太多。可以用多种方法,这里提及一个我随便写的,在/var/spool/clientmqueue/下执行命令:“lsattr./|awk-F"/"'{print$3}'|xargs-irm-rf{}”用lsattr列出./下面的文件名的属性,用awk取出名字,然后rm-rf。

  • VG浏览器生成EXE的自动运行及自动关闭

    一、自动运行:首先生成启动函数 方法一:双击窗体标题生成exe启动函数,也就是窗体载入函数 生成后的代码如下,在函数内输入要启动时执行的代码。方法二:你要可以通过以下方法生成启动函数,选中窗体后点击这里 点这里生成生成启动函数后,通过调用运行控件中的Start方法开始运行脚本,如workControl1.Start(); 最终代码如下 最后点击“生成EXE主程序”即可完成二、自动关闭首先单击选中运行模块后,点击“当前控件事件列表” 点击下图的“生成事件代码”,生成该运行模块脚本运行结束时的回调函数然后在里面输入关闭窗口代码this.Close();最后点击“生成EXE主程序”即可完成呵,备份一个自己做的提交百度的脚本:百度批量提交转载请注明:积木居»VG浏览器生成EXE的自动运行及自动关闭

  • CAS详解

    CAS在底层源码中是使用非常广的,像我之前的HashMap源码解析、volatile详解等文章都有提到CAS。本文将详细介绍CAS。一、什么叫CAS?CAS,是compareandswap的缩写,即比较并交换。它是一种基于乐观锁的操作。它有三个操作数,内存值V,预期值A,更新值B。当且仅当A和V相同时,才会把V修改成B,否则什么都不做。之前说到AtomicInteger用到了CAS,那么先从这个类说起。看如下代码:publicstaticvoidmain(String[]args){ AtomicIntegeratomicInteger=newAtomicInteger(5); System.out.println(atomicInteger.compareAndSet(5,50)); System.out.println((5,100)); }复制AtomicInteger有一个compareAndSet方法,有两个操作数,第一个是期望值,第二个是希望修改成的值。首先初始值是5,第一次调用compareAndSet方法的时候,将5拷贝回自己的工作空间,然后改成50,写回到主内存中的时

  • css中mask属性实现灯光闪动

    1.CSSmask属性面面观在过去,CSSmask属性在使用的时候就是mask:xxx,但是现在随着这个属性的规范化,mask属性实际上已经成为了诸多mask-*的缩写,这和background,border性质是一样的。具体是哪些属性的缩写呢,可以参见下面的列表:mask-imagemask-modemask-repeatmask-positionmask-clipmask-originmask-sizemask-typemask-composite2.CSS属性mask的使用/*html*/ <divclass="nav"> <ahref=""><imgsrc="logo.png"alt=""></a> </div> /*css*/ .nav{ height:92px; } .nava{ display:block; width:155px; height:92px; -webkit-mask:url('mask.png'

  • 程序猿是如何解决SQLServer占CPU100%的

    文章目录 遇到的问题 使用SQLServerProfiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 选择top记录时,尽量为order子句的字段建立索引 查看SQL语句CPU高的语句 通过建立相关索引来减少表扫描 其他优化手段 总结 遇到的问题 有同事反应服务器CPU过高,一看截图基本都是100%了,mygod,这可是大问题,赶紧先看看。 让同事查看系统进程,发现是SQLServer的CPU占用比较高。首先想到的是不是报表生成的时候高,因为这块之前出现过问题,关掉服务程序,还是高。难道是客户端程序引发的?但是这么多的客户端连接,难不成每个都叫人关闭,很简单,把网络断开即可。网络断开之后,CPU立马下降。那么问题到底在哪里呢,是时候祭出我们的利器了——SQLServerProfiler。 使用SQLServerProfiler监控数据库 让同事使用SQLProfiler监控了大概20分钟左右,然后保存为跟踪文件*.rtc。 我们来看看到底是哪句SQL有问题: SQL1

  • 微信支付报调用支付JSAPI缺少参数: sign

      检查后台返回参数中没有paySign字段

  • 毕设(10.26)

    新闻数据爬取 爬虫:    数据:  

  • 上午小测3 T1 括号序列 &amp;&amp; luogu P5658 [CSP/S 2019 D1T2] 括号树 题解

    前言: 一直很想写这道括号树。。毕竟是在去年折磨了我4个小时的题。。。。 上午小测3T1括号序列 前言: 原来这题是个dp啊。。。这几天出了好几道dp,我都没看出来,我竟然折磨菜。 考试的时候先打了个暴力,然后就开始往容斥上想。。。。 解析: 考虑dp。 令dp[i]表示以i为结尾的,合法的子串数量。 令match[i]表示进行括号匹配时,与i匹配的括号的编号。 (以上i都是右括号,如果是左括号置为0即可) 然后,就有:if(match[i])dp[i]=dp[match[i]-1]+1; 这个转移方程的含义如下: 首先是前面的判断语句。必须是在i有匹配的情况下。 这样就排除了两种不可能的情况,一种是i是左括号,另一种是i是右括号,但在进行括号匹配时,没有与其匹配的左括号。 显然以上两种情况,i都不可能成为一个合法字串的结尾。 然后是要先给dp[i]加上1。这是以match[i]为起点,i为终点的子串的贡献。 其次要加上dp[match[i]-1]; 这时分两种情况讨论。 第一种是s[match[i]-1]==')':好丑的图 此时以i为结尾的子串还可能继续向左延伸,只要加上dp[m

  • mysql操作过程中常见问题汇总

    问题1:[Err]1055-Expression#1ofORDERBYclauseisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'information_schema.PROFILING.SEQ' 答案:https://faceghost.com/article/365711   MySQL常见故障汇总(一) https://blog.csdn.net/double_happy111/article/details/105363384  

  • 【KMP】

    charS[100]="oooSusakeooo",P[100]="Susake"; ints_next[100]; intKMP(intpos,intlen1,intlen2){ inti=pos,j=1,k=0; s_next[1]=0; while(j<len1) if(k==0||P[k-1]==P[j-1])j++,k++,s_next[j]=k; elsek=s_next[k]; j=1; while(i<=len2&&j<=len1){ if(j==0||S[i-1]==P[j-1])i++,j++; elsej=s_next[j]; } returnj>len1?i-len1:0; } //KMP(0,strlen(P),strlen(S));复制   仰望星空.......不忘初心!

  • 【iOS 知识汇】自定view

    1.重写-(instancetype)initWithFrame方法,在此方法中创建并添加子控件。 2.提供一个便利的构造方法,通常为类方法,快速创建一个实例对象 3.重写-(void)layoutSubviews方法,在此方法中设置子控件的frame, 一定要调用[superlayoutSubviews] 4.设置模型属性,在set方法中,给对应的子控件赋值。复制

  • 【编程实践】母牛生小牛

    Description设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? Input本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50)。当N为0时,输入结束。 Output对每组数据,输出一个整数(独占一行)表示第N年时母牛的数量。 SampleInput1459200 SampleOutput12313872 Source 2005计算机系程序设计竞赛 分析:很明显用Fibonacci数列来解决,注意用3阶。 代码: 1#include<stdio.h> 2longlongfibonacci[52]; 3intmain() 4{ 5inti,n; 6fibonacci[1]=1; 7fibonacci[2]=1; 8fibonacci[3]=1; 9fibonacci[4]=2; 10for(i=5;i<52;i++) 11fibonacci[i]=fibonacci[i-4]+fibonacci[i-3]+fibonacci[i-2]; 12while(scanf("%d",&n)==1&&n

  • BOOL运算符号(从C#入门经典第五版中摘录)

    只总结自己觉得难的哈: (1)var1=!var2;  //(非) (2)var1=var2&var3;  //(与) (3)var1=var2|var3;  //(或) (4)var1=var2^var3; //(取异或)   “ ”或“与”异或“的区别就是....var2和var3中有且仅有一个是true,var1的值就是true。 &和|运算符也有两个类似的运算符,称为条件布尔运算符(见表4.3)。    这些运算符的结果与&和|完全相同,但得到结果的方式有一个重要区别:其性能比较好。两者都是检查第一个操作数的值(上表4.3中的var2),再根据该操作数的值进行操作,可能根本就不处理第二个操作数(表4-3中的var3)。    如果&&运算符的第一个操作数是false,就不需要考虑第二个操作数。    

  • NV SDK 10 (1) Clipmaps

    Clipmapssample: Abstract ClipmapsareafeaturefirstimplementedonSGIworkstationsthatallowmappingextremelyhighresolutiontexturestoterrains.TheoriginalSGIimplementationrequiredhighlyspecialized,customhardware.TheadvancedfeaturesoftheNVIDIA®GeForce®8800nowpermitthesamealgorithmusingconsumerhardware. AlthoughcurrentAPIsandtheGeForce8800directlysupporttextureswithdimensionsupto8192,thissizemaybeconsideredinsufficientwhenwetalkaboutwidelandscapes,say,inflightsimulators.Theideaofusingasingletextureforthew

相关推荐

推荐阅读