草庐IT

粗暴解决因ubuntu 18.04因内核升级导致的NVIDIA显卡驱动失效

Jabber_Jagger 2023-09-04 原文

粗暴解决因ubuntu 18.04因内核省级导致的NVIDIA显卡驱动失效
有一天电脑开机之后发现显示屏分辨率不对,接过一看系统信息发现显卡找不到了,再使用nvidia-smi查看显卡驱动果然打不开了.
以前出现过这种文体,好像是通过重装对应内核版本的dkms来解决,但是这次我发现dkms并没有问题,
sudo apt-get install dkms
安装信息如下:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
dkms is already the newest version (2.3-3ubuntu9.7).
The following packages were automatically installed and are no longer required:
  libfcitx-core0 libfcitx-qt0 libfcitx-qt5-1 libgettextpo0 liblua5.2-0 libmng2
  libpresage-data libpresage1v5 libqt4-dbus libqt4-declarative libqt4-network
  libqt4-script libqt4-sql libqt4-sql-mysql libqt4-xml libqt4-xmlpatterns
  libqtcore4 libqtdbus4 libqtgui4 linux-headers-5.4.0-132-generic
  linux-hwe-5.4-headers-5.4.0-120 linux-hwe-5.4-headers-5.4.0-121
  linux-hwe-5.4-headers-5.4.0-122 linux-hwe-5.4-headers-5.4.0-124
  linux-hwe-5.4-headers-5.4.0-126 linux-hwe-5.4-headers-5.4.0-128
  linux-hwe-5.4-headers-5.4.0-131 linux-hwe-5.4-headers-5.4.0-132
  linux-hwe-5.4-headers-5.4.0-42 linux-hwe-5.4-headers-5.4.0-77
  linux-image-5.4.0-121-generic linux-image-5.4.0-122-generic
  linux-image-5.4.0-124-generic linux-image-5.4.0-126-generic
  linux-image-5.4.0-128-generic linux-image-5.4.0-131-generic
  linux-image-5.4.0-132-generic linux-modules-5.4.0-121-generic
  linux-modules-5.4.0-122-generic linux-modules-5.4.0-124-generic
  linux-modules-5.4.0-126-generic linux-modules-5.4.0-128-generic
  linux-modules-5.4.0-131-generic linux-modules-5.4.0-132-generic
  linux-objects-nvidia-470-5.4.0-121-generic
  linux-objects-nvidia-470-5.4.0-122-generic
  linux-objects-nvidia-470-5.4.0-124-generic
  linux-objects-nvidia-470-5.4.0-126-generic
  linux-objects-nvidia-470-5.4.0-128-generic
  linux-objects-nvidia-470-5.4.0-131-generic
  linux-objects-nvidia-470-5.4.0-132-generic
  linux-signatures-nvidia-5.4.0-121-generic
  linux-signatures-nvidia-5.4.0-122-generic
  linux-signatures-nvidia-5.4.0-124-generic
  linux-signatures-nvidia-5.4.0-126-generic
  linux-signatures-nvidia-5.4.0-128-generic
  linux-signatures-nvidia-5.4.0-131-generic
  linux-signatures-nvidia-5.4.0-132-generic presage qdbus qml-module-qtquick2
  qt-at-spi qtcore4-l10n shim
Use 'sudo apt autoremove' to remove them.
0 to upgrade, 0 to newly install, 0 to remove and 221 not to upgrade.
因此感觉是因为内核版本升级之后导致的问题.
于是在搜索了全网所有的关于内核升级掉驱动的方法后,我决定按照自己的想法来试一下.
首先我电脑之前是采用ppa安装的方法,不一定适用于所有人.
输入uname -r查看当前内核名字
发现我的内核版本是 5.4.0-136-generic
而我没有删掉之前的内核,因此在grub界面中出现了一堆之前的版本,在使用挨个重启电脑打开不同内核之后,发现最后一次能够正确启动显卡驱动的版本是 5.4.0-132-generic 显卡驱动是 nvidia-driver-470
之后我又在5.4.0-136-generic下尝试了 ubuntu-drivers devices
发现给出的安装信息是这样的:
WARNING:root:_pkg_get_support nvidia-driver-515: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-525: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-510: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-390: package has invalid Support Legacyheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-515-server: package has invalid Support PBheader, cannot determine support level
WARNING:root:_pkg_get_support nvidia-driver-525-server: package has invalid Support PBheader, cannot determine support level
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001B06sv00001458sd0000374Cbc03sc00i00
vendor   : NVIDIA Corporation
model    : GP102 [GeForce GTX 1080 Ti]
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-515 - distro non-free
driver   : nvidia-driver-525 - third-party non-free
driver   : nvidia-driver-510 - distro non-free
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-515-server - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-525-server - distro non-free
driver   : nvidia-driver-470 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

也就是说,其实还是支持 nvidia-driver-470的,并且也是推荐.
结合上面的dkms安装信息,我推断是正确的,是因为内核的问题导致的

所以我输入了如下指令:
sudo apt-get install linux-objects-nvidia-470-5.4.0-136-generic
sudo apt-get install linux-signatures-nvidia-5.4.0-136-generic
重启之后发现并没有效果,在一筹莫展之际,我只能死马当活马医的试了一下这条安装命令:
sudo apt-get install nvidia-driver-470
发现有如下的安装信息:
The following additional packages will be installed:
  libnvidia-cfg1-470 libnvidia-compute-470 libnvidia-compute-470:i386
  libnvidia-decode-470 libnvidia-decode-470:i386 libnvidia-encode-470
  libnvidia-encode-470:i386 libnvidia-extra-470 libnvidia-fbc1-470
  libnvidia-fbc1-470:i386 libnvidia-gl-470 libnvidia-gl-470:i386
  libnvidia-ifr1-470 libnvidia-ifr1-470:i386
  linux-modules-nvidia-470-5.4.0-136-generic
  linux-modules-nvidia-470-generic-hwe-18.04-edge nvidia-compute-utils-470
  nvidia-kernel-common-470 nvidia-kernel-source-470 nvidia-utils-470
  xserver-xorg-video-nvidia-470
The following packages will be REMOVED
  linux-modules-nvidia-470-5.4.0-132-generic
The following NEW packages will be installed
  linux-modules-nvidia-470-5.4.0-136-generic
The following packages will be upgraded:
  libnvidia-cfg1-470 libnvidia-compute-470 libnvidia-compute-470:i386
  libnvidia-decode-470 libnvidia-decode-470:i386 libnvidia-encode-470
  libnvidia-encode-470:i386 libnvidia-extra-470 libnvidia-fbc1-470
  libnvidia-fbc1-470:i386 libnvidia-gl-470 libnvidia-gl-470:i386
  libnvidia-ifr1-470 libnvidia-ifr1-470:i386
  linux-modules-nvidia-470-generic-hwe-18.04-edge nvidia-compute-utils-470
  nvidia-driver-470 nvidia-kernel-common-470 nvidia-kernel-source-470
  nvidia-utils-470 xserver-xorg-video-nvidia-470
也就是说,其实真的是内核没有升级到对应版本的问题,单独安装时少安装了modules这个模块,
如是顺利进行到下面,自动安装升级和卸载内核后,重启之后问题解决.

nvidia-smi
Sun Jan  8 10:33:01 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   37C    P8    16W / 250W |    321MiB / 11175MiB |      8%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1848      G   /usr/lib/xorg/Xorg                139MiB |
|    0   N/A  N/A      2915      G   /usr/bin/gnome-shell               59MiB |
|    0   N/A  N/A      3372      G   /usr/lib/firefox/firefox          119MiB |
+-----------------------------------------------------------------------------+

有关粗暴解决因ubuntu 18.04因内核升级导致的NVIDIA显卡驱动失效的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby-on-rails - Rails 3 I18 : translation missing: da. datetime.distance_in_words.about_x_hours - 2

    我看到这个错误:translationmissing:da.datetime.distance_in_words.about_x_hours我的语言环境文件:http://pastie.org/2944890我的看法:我已将其添加到我的application.rb中:config.i18n.load_path+=Dir[Rails.root.join('my','locales','*.{rb,yml}').to_s]config.i18n.default_locale=:da如果我删除I18配置,帮助程序会处理英语。更新:我在config/enviorments/devolpment

  3. ruby-on-rails - 如果我将 ruby​​ 版本 2.5.1 与 rails 版本 2.3.18 一起使用会怎样? - 2

    如果我使用ruby​​版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby​​1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更

  4. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

  5. ruby-on-rails - 如何在 Ruby on Rails 中实现由 JSF 2.0 (Primefaces) 驱动的 UI 魔法 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。问题1)我想知道ruby​​onrails是否有功能类似于primefaces的gem。我问的原因是如果您使用primefaces(http://www.primefaces.org/showcase-labs/ui/home.jsf),开发人员无需担心javascript或jquery的东西。据我所知,JSF是一个规范,基于规范的各种可用实现,prim

  6. ruby-on-rails - Ruby on Rails I18n 插值 - 2

    大家好!我对我的:username字段进行了一个小的验证,它应该是4到30个字符。我写了一个验证::length=>{:within=>4..30,:message=>I18n.t('activerecord.errors.range')-我想显示一个错误各种错误的消息(不像,太长或太短),但这里有一个问题-我可以将最小值和最大值都传递给翻译,以便有类似的东西:用户名应该在4到30个字符之间。目前我有:range:"shouldbebetween%{count}and%{count}characters",这显然不起作用(只是为了检查)。是否可以从范围中获取这些值?谢谢大家的指教!

  7. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  8. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  9. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  10. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

随机推荐