关于内核升级后部分硬件驱动失效的解决办法
Tofloor
poster avatar
忘记、过去
Moderator
2020-08-26 09:07
Author
本帖最后由 zty199 于 2020-8-26 18:47 编辑

今天更新系统后,自动安装了 5.4 版本内核,可以正常使用......但是按照 jingle 老大的提示安装了 5.7 版本内核后,NVIDIA显卡驱动和博通网卡驱动都不见了......可是重新安装又提示驱动已经安装。那么问题出在哪里了呢?




其实很简单,感觉上大概是驱动模块没有写入内核的问题。

NVIDIA显卡闭源驱动 举个例子,如果是从 5.3 内核走系统更新到 5.4,即使之前安装过显卡驱动也会提示找不到驱动(我魔改的显卡切换插件有这个驱动检测......)。这个时候直接执行 sudo apt reinstall nvidia-driver(这里假设你之前是在源里直接安装的440版本驱动)是没有反应的,只会提示你驱动已经是最新版本。

那么怎么把驱动加进内核呢?





百度了一下 DKMS 这个神奇的东西,具体的咱看不懂,用法还是能看懂的。

首先,grub 高级选项中选择进入驱动缺失的内核版本(比如 5.4.50 或者 5.7.7)。然后,终端执行 dkms status,能清晰地看到当前 DKMS 服务有几个驱动,对应内核版本。



比如 nvidia-current, 440.100, 5.4.50-amd64-desktop, x86_64: installed,表示 5.4.50 版本内核中加载了 NVIDIA闭源显卡驱动。那怎样添加驱动到 5.7.7 版本内核呢?

sudo dkms install module/ 即可,那么这里就是执行 sudo dkms install nvidia-current/440.100,即可添加驱动到当前启动的版本的内核了。





同理,博通网卡驱动也是这样。dkms status 能看到 bcmwl, 6.30.223.271+bdcom, 5.4.50-amd64-desktop, x86_64: installed,表示 5.4.50 版本内核中加载了博通网卡的驱动。执行 sudo dkms install bcmwl/6.30.223.271+bdcom 就可以添加到 5.7.7 版本内核了。

希望这个水贴能给更新内核之后硬件驱动出现问题的小伙伴们提供一点帮助~





Reply Favorite View the author
All Replies
jingle
deepin
2020-08-26 17:38
#1
Reply View the author
忘记、过去
Moderator
2020-08-26 21:43
#2
本帖最后由 zty199 于 2020-8-26 13:47 编辑

自己顶一下,看看有没有倒霉孩子手动升级内核之后驱动出问题的。
@yy390004766 @muihiuwev
Reply View the author
qxqzx
deepin
2020-08-27 01:49
#3
老哥,sudo dkms nvidia-current/440.100       最后这两个命令提示出错
Reply View the author
忘记、过去
Moderator
2020-08-27 02:46
#4
https://bbs.deepin.org/post/200399
老哥,sudo dkms nvidia-current/440.100       最后这两个命令提示出错

不好意思打错了......  sudo dkms install nvidia-current/440.100
感谢提醒~
Reply View the author
muihiuwev
deepin
2020-08-27 04:07
#5
本帖最后由 muihiuwev 于 2020-8-26 20:10 编辑


还是提示没有驱动,删除了 NVIDIA.sh 里面检测驱动部分的命令强制切换,直接黑屏了,只能tty再切回集显。
Reply View the author
忘记、过去
Moderator
2020-08-27 04:17
#6
本帖最后由 zty199 于 2020-8-26 20:18 编辑
https://bbs.deepin.org/post/200399
还是提示没有驱动,删除了 NVIDIA.sh 里面检测驱动部分的命令强制切换,直接黑屏了,只能tty再切回集显。
...

你这是kernel header没安装吧,内核里安装过的驱动显示是这样子的。


sudo apt install linux-headers-5.4.50-amd64-desktop linux-headers-5.4.50-deepin-amd64

装完了再执行 sudo dkms install nvidia-current/440.100
Reply View the author
muihiuwev
deepin
2020-08-27 04:24
#7
https://bbs.deepin.org/post/200399
你这是kernel header没安装吧,内核里安装过的驱动显示是这样子的。

谢谢老哥,成了!
Reply View the author