安定した最新のPREEMPT_RTパッチ(5.4.28-rt19)を使用して5.4カーネルをコンパイルしようとしていますが、何らかの理由で機能しません。完全プリエンプティブコア(RT)内部オプションnconfig/menconfigの作成。
以前は4.19 rtパッチをコンパイルしたことがありましたが、現在の構成(/boot/config-4.18-xxx)を新しい構成にコピーするのと同じくらい簡単で、.config
オプションが表示されました。これで、次のようにしか見えません。
No Forced Preemption (Server)
Voluntary Kernel Preemption (Desktop)
Preemptible Kernel (Low-Latency Desktop)
F4を押して「みんな見える”、次のオプションが表示されます。
XXX Fully Preemptible Kernel (Real-Time)
しかし、選択する方法はありません。.config
次のようなさまざまなPREEMPTオプションを使用して手動で設定してみました。
CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_PREEMPT_RT_FULL=y
しかし、それは決して見えませんでした。先ほど行ってコンパイルしましたがCONFIG_PREEMPT_RT_FULL=y
(保存する前に上書きしましたmake nconfig
)、まだ完全にプリエンプティブカーネルがインストールされていないようです。
4.19 の場合、uname -a
次のような内容が表示されます。
Linux 4.19.106-rt45 #2 SMP PREEMPT RT <date>
またはそれに似ていますが、今は次のように言います。
Linux 5.4.28-rt19 #2 <date>
私がここで何を見逃しているのか知っている人はいますか?
オペレーティングシステム:CentOS 8.1.1911
カーネル: 4.18.0-147.8.1 -> 5.4.28-rt19
答え1
make nconfig
起動時/開始後にエキスパートモードを有効にしてくださいmenuconfig
。その後、完全プリエンプティブコア(RT)オプションを選択できます。
答え2
utkが取ったアプローチは私にはまったく合っていませんでした。
論文ではARM64サーバー(ThunderX CN8890)を使用していますが、何をしてもメニュー構成に表示する完全プリエンプティブコア(RT)を取得できません。
kernel/Kconfig.preemptを確認した後、答えを得ました。
config PREEMPT_RT
bool "Fully Preemptible Kernel (Real-Time)"
depends on EXPERT && ARCH_SUPPORTS_RT
select PREEMPTION
->https://elixir.bootlin.com/linux/latest/source/kernel/Kconfig.preempt#L61
EXPERTフラグ(上記の説明ではkrishna chaitanyaによる組み込みシステムの切り替え)を有効にしましたが、構成ファイルにCONFIG_ARCH_SUPPORTS_RTエントリがありません。
フラグを手動で入力すると、makeステップで上書きされます。デフォルトでこのフラグを有効にするには、arch / Kconfigファイルを開き、ARCH_SUPPORTS_RTエントリを検索します。 (ナノで検索するにはCTRL + Wを押します)
次の項目を変更
config ARCH_SUPPORTS_RT
bool
到着
config ARCH_SUPPORTS_RT
def_bool y
EXPERT(一般設定 - >組み込みシステム)フラグも有効になったので、一般設定 - >プリエンプションモデルの下に「完全プリエンプティブカーネル(リアルタイム)」オプションを表示する必要があります。
フラグを強制することはこの問題を解決する奇妙な方法ですが、それでも私にとっては効果的です。
答え3
許容される回答は、最大5.8のカーネルバージョンで動作します。 5.9以降、フルプリエンプティブオプションが表示される前にKVMを無効にする必要があります。このオプションは以下にあります。
Virtualization -> Kernel-based Virtual Machine (KVM) support
これを見つけました、ありがとう。https://unix.stackexchange.com/a/616822/231640そしてhttps://lore.kernel.org/linux-rt-users/[Eメール保護]
答え4
ライブパッチがないか、RTパッチでLinuxカーネルソースを使用しているようです。 https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git/
また、見ることができますLinux Foundation Wikiのライブページ