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

粗暴解决因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 |
+-----------------------------------------------------------------------------+

### IntelliJ IDEA 中通义 AI 功能介绍 IntelliJ IDEA 提供了一系列强大的工具来增强开发体验,其中包括与通义 AI 相关的功能。这些功能可以帮助开发者更高效地编写代并提高生产力。 #### 安装通义插件 为了使用通义的相关特性,在 IntelliJ IDEA 中需要先安装对应的插件: 1. 打开 **Settings/Preferences** 对话框 (Ctrl+Alt+S 或 Cmd+, on macOS)。 2. 导航到 `Plugins` 页面[^1]。 3. 在 Marketplace 中搜索 "通义" 并点击安装按钮。 4. 完成安装后重启 IDE 使更改生效。 #### 配置通义服务 成功安装插件之后,还需要配置通义的服务连接信息以便正常使用其提供的各项能力: - 进入设置中的 `Tools | Qwen Coding Assistant` 菜单项[^2]。 - 填写 API Key 和其他必要的认证参数。 - 测试连接以确认配置无误。 #### 使用通义辅助编程 一旦完成上述准备工作,就可以利用通义来进行智能编支持了。具体操作如下所示: ##### 自动补全代片段 当输入部分语句时,IDE 将自动提示可能的后续逻辑,并允许一键插入完整的实现方案[^3]。 ```java // 输入 while 循环条件前半部分... while (!list.isEmpty()) { // 激活建议列表选择合适的循环体内容 } ``` ##### 解释现有代含义 选中某段复杂的表达式或函数调用,右键菜单里会有选项可以请求通义解析这段代的作用以及优化意见。 ##### 生产测试案例 对于已有的业务逻辑模块,借助于通义能够快速生成单元测试框架及初始断言集,减少手动构建的成本。 ```python def test_addition(): result = add(2, 3) assert result == 5, f"Expected 5 but got {result}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值