カーネルアップデート 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 モードにする必要があるかどうかはわかりません???

私は今行き詰まっている

答え1

これは、新しいカーネルに retpoline Spectre 緩和策が含まれているためです。ストック配布 gcc のパッチ適用バージョンを使用して nvidia.ko カーネル モジュールを再構築する必要があります。

バグと詳細は次のとおりです:参考:

答え2

私は次のように問題を解決しましたこの郵便受けバグランチパッドから。要約すると:

次のコマンドを実行し、次の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 のバージョンを確認する必要があるかもしれません。

関連情報