カーネルのビルド時に組み込みデバイスのカーネルパラメータを設定しましたが、ブートローダから追加のパラメータを渡すことでこれらのパラメータをオーバーライドできます。
渡された引数を無視するカーネルを構築する方法はありますか?
私がこれをしたい理由は2つあります。
まず、アップデートの配布を容易にするには、カーネルコンテンツをカーネル「パッケージ」に分離することが最善です。私たちは現在initramfsを使用していませんが(カーネルに組み込まれている場合)、着信引数を簡単にフィルタリングできる点になると思います。
第二に、セキュリティ戦略のもう一つの層です。既存のカーネルにバイナリパッチを適用したり、カスタムマザーボードを正常に起動したりできる新しいカーネルを構築することは、Secure Boot Chainを使用すると大きな障害になる可能性があります。
答え1
そんな構成は言葉にならないので存在しないと思います。カーネルに引数を渡さないようにするには、渡すコマンドライン引数が変更されないようにブートローダをロックします。
ブートローダはロードするカーネルを決定するため、カーネルのパラメータ変更を防止してもセキュリティは追加されません。一部のシステムで起動するカーネルを構築するのは簡単な作業ではありません。
セキュアブートチェーンがある場合、カーネルを交換することはできませんが、もちろんブートチェーン保護にはカーネルパラメータ保護も含まれます。これはカーネルではなくブートローダのセキュリティ属性です。
initramfsではカーネルパラメータを設定できません(もちろん、カーネルが起動した後に実行時に設定できるパラメータを除く)。遅すぎました。いくつかのカーネルパラメータを設定する必要がある場合は、ブートローダで設定する必要があります。これがまさにその仕事です。パッケージングの面では何の利点もありません。ブートローダを別々にパッケージ化し、ブートローダでいくつかのパラメータを調整したくない場合は、コマンドでカーネルをブロックせずにカーネルバイナリに正しいデフォルト値を設定できます。電話で保険の適用を受け入れます。