核心更新 3.13.0-143-generic Ubuntu 14.04 後登入循環

核心更新 3.13.0-143-generic Ubuntu 14.04 後登入循環

明天我辦公桌上的電腦有一個大問題。

Nvidia:版本魔術“3.13.0-143-genric SMP mod_unload modversions”應該是“3.13.0.143-generic SMP mod_unload modversions retpoline”

我知道這裡也解決了類似的問題(例如安裝 Nvidia 驅動程式 v 14.04 後無法登入

但我不太清楚如何更改命令以在我的系統上工作。

我有 Ubuntu 14.04...


我嘗試加載較舊的內核。效果很好。我檢查了 GUI 配置工具。在更新和驅動程式中,我可以選擇將我的 nvidia 驅動程式升級到最新版本 (384.111)。我嘗試了一下,一切仍然有效。

然後我又回到了最新的核心。

現在,我檢查了 modinfo,發現 nvidia 不在這裡。我嘗試了“sudo modprobe nvidia”(dkms 看到已安裝 nvidia 384.111)。

答案:modprobe:錯誤無法插入「nvidia_384」:執行格式錯誤

我在 /lib/modules/.../drivers/video/nivdia 中檢查了 nvidiafb.ko 並且該文件處於 -rw-r--r-- 模式...我不知道它是否應該處於 exec mod 中? ?

我現在被困住了

答案1

這是因為較新的核心具有 retpoline Spectre 緩解措施。您將需要使用庫存發行版 gcc 的修補版本來重建 nvidia.ko 核心模組。

這是錯誤和更多詳細資訊:https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937

答案2

我透過以下方式解決了問題這個帖子從 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 版本。

相關內容