dca:モジュール検証に失敗しました:署名および/または必須キーがありません。カーネルが汚染されていますか?

dca:モジュール検証に失敗しました:署名および/または必須キーがありません。カーネルが汚染されていますか?

dcaモジュールを挿入すると、rcS使用時に次のエラーが表示されますdmesg。インターネットでbzImageと のバージョンが一致しなかったために発生したという文を読んだところdca.ko、 と がbzImage同時にdca.koコンパイルされinsmod dca.koて端末ウィンドウで手動で実行してみましたが、dmesgエラーがありませんでした。問題は何ですか?読み込み時間が間違っているのでしょうかrcS

エラーは次のとおりdmesgです。

[    5.889617] dca: module verification failed: signature and/or required key missing - tainting kernel
[    5.889946] dca service started, version 1.12.1

insmod存在するrcS

insmod /lib/modules/6.4.0-rt8/dca.ko
insmod /lib/modules/6.4.0-rt8/i2c-algo-bit.ko
insmod /lib/modules/6.4.0-rt8/pps_core.ko
insmod /lib/modules/6.4.0-rt8/ptp.ko
insmod /lib/modules/6.4.0-rt8/igb.ko

ベストアンサー1

他のカーネルモジュールは兆候- 他の方法を選択しない場合は、カーネルビルドプロセスで自動的に生成されたキーを使用できます。

あなたの鍵dca.koは署名されていないか、少なくとも同じ鍵を使用しません。

セキュアブートを使用しないと、カーネルはブート用に構築されたキーのみを信頼しますが、オプションで検証できないカーネルモジュールを許可し、そのモジュールがロードされたときにカーネルを汚染としてマークすることができます。

セキュアブートが適用されると、カーネルshimx64.efiを構築するために使用される公理的に信頼できるキーに加えて、セキュアブート署名キーとそれによって保持されるマシン所有者キー(MOK)も通常、カーネルが信頼するキーのリストに追加されます。カーネルしなければならないまた、検証できないカーネルモジュールをロードしようとすることを拒否するように設定することもできます。それ以外の場合は、完全にSecure Bootと互換性がありません。

(自分のカーネルを構築するときにセキュアブートコンプライアンスをどれだけ厳密にしたいかを正確に決定できます。ただし、セキュアブートで実行できますが検証できないモジュールを許可するカーネルを展開する場合は、このクラスカーネルを「セキュアブートブラックリストに登録されたバイパスデバイス」であり、将来のセキュアブート認識システムのファームウェアリリースでは拒否されます。)

詳細については、次を参照してください。ドキュメント/管理者ガイド/module-signing.rstカーネルソースパッケージにあります。

汚染メッセージを削除するには、カーネルソースツリーのツールとビルドタイムオプションで指定された秘密キー(または設定されていない場合はカーネルソースツリーのデフォルトの自動生成キー)をdca.ko使用してモジュールに署名できます。カーネルモジュールの署名に使用されるハッシュアルゴリズムは、ビルドタイムオプションで指定されます。scripts/sign-fileCONFIG_MODULE_SIG_KEYcerts/signing_key.pemCONFIG_MODULE_SIG_HASH

おすすめ記事