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-file
CONFIG_MODULE_SIG_KEY
certs/signing_key.pem
CONFIG_MODULE_SIG_HASH