更新内核后,我重启了电脑(电脑总是要求重启),现在我无法登录(我无法通过登录屏幕)。登录时的屏幕分辨率也发生了变化,这让我相信我通常使用的视频驱动程序发生了变化。
当我启动计算机时,屏幕一度变黑并显示以下消息:
[ 7.635692] nvidia:版本魔法'4.4.0-113-通用 SMP mod_unload modversions 686'应为'4.4.0-113-通用 SMP mod_unload modversions 686 retpoline'
[ 7.788685] nvidia:版本魔法'4.4.0-113-通用 SMP mod_unload modversions 686'应为'4.4.0-113-通用 SMP mod_unload modversions 686 retpoline'
关于如何解决此问题,您有什么建议吗?我是 Ubuntu 新手,因此非常感谢您的帮助!
答案1
我通过以下方式解决了这个问题这个帖子来自 bug 启动板。总结如下:
运行以下命令并查找该vermagic
行:
modinfo nvidia-384 -k 4.4.0-116-generic
它可能会显示:
vermagic: 4.4.0-116-generic SMP mod_unload modversions
。这里缺少 retpoline 字符串。您可以通过使用 DKMS 删除并重新构建模块来修复此问题
sudo dkms remove nvidia-384/384.111 -k 4.4.0-116-generic
sudo dkms install nvidia-384/384.111 -k 4.4.0-116-generic
之后 modinfo 命令将显示
vermagic: 4.4.0-116-generic SMP mod_unload modversions retpoline
如果你使用自定义版本的 gcc这个帖子也相关:
如果您使用的是 Ubuntu 版本的 gcc,那么当您获得较新的内核时,gcc 可能会更新。支持 retpoline 所需的 gcc 更改应该已反向移植到大多数活跃版本的 gcc。但是,如果您安装了自定义版本的 gcc,那么您的内核模块可能无法正确构建。
因此,如果上述步骤不起作用,您可能需要检查您正在使用的 gcc 版本。