Linux 5.9.1 上的實時更新檔不顯示 arm64 選項的完全搶占選項
我正在嘗試在 Raspberry Pi 4B 上獲得我自己的自定義實時 Linux。我的狀態是這樣的:
- 我建構了 Linux 5.9.1 版本,並擁有自己的 U-Boot RFS 版本,我可以使用它成功載入和啟動核心、掛載 RFS,以及訪問核心控制台。
- 我需要在我正在建構的 Linux 核心之上應用實時更新檔,因此我使用了適用於 Linux 5.9.1 的相應更新檔。由於我正在建構 64 位核心,因此我使用以下命令進入核心配置並更新可搶占選項:
make ARCH=arm64 CROSS_COMPILE=aarch64-rpi3-linux-gnu- menuconfig
但我在這裡看不到完全可搶占的核心選項:.config - Linux/ arm64 5.9.1 Kernel Configuration
一般設定────────────────────────────────────────────── ──────────────────
┌────────────────────── Preemption Model ───────────────────────┐ │ Use the arrow keys to navigate this window or press the │ │ hotkey of the item you wish to select followed by the <SPACE │ │ BAR>. Press <?> for additional information about this │ │ ┌───────────────────────────────────────────────────────────┐ │ │ │ ( ) No Forced Preemption (Server) │ │ │ │ ( ) Voluntary Kernel Preemption (Desktop) │ │ │ │ (X) Preemptible Kernel (Low-Latency Desktop) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────┤ │ <Select> < Help > │
當我執行時:
make menuconfig
儘管對於 x86 選項,我確實看到了該選項:.config - Linux/ x86 5.9.1 Kernel Configuration
一般設定────────────────────────────────────────────── ──────────────────
┌────────────────────── Preemption Model ───────────────────────┐ │ Use the arrow keys to navigate this window or press the │ │ hotkey of the item you wish to select followed by the <SPACE │ │ BAR>. Press <?> for additional information about this │ │ ┌───────────────────────────────────────────────────────────┐ │ │ │ ( ) No Forced Preemption (Server) │ │ │ │ ( ) Voluntary Kernel Preemption (Desktop) │ │ │ │ (X) Preemptible Kernel (Low-Latency Desktop) │ │ │ │ ( ) Fully Preemptible Kernel (Real-Time) │ │ │ │ │ │ │ │ │ │
Linux 核心:5.9.1 使用的 Linux RT 更新檔:patch-5.9.1-rt19.patch.xz
我也啟用了專家模式,如 unix.stackexchange .config - Linux/x86 5.9.1 Kernel Configuration 中的另一篇文章中所述
一般設定────────────────────────────────────────────── ────────────────── ┌──────────────────────────── 一般設置────────────────────────────────┐ │ 箭頭鍵導航菜單。選擇子菜單—>(或空││
子菜單—-)。突出顯示的字母是熱鍵。按下包括,│
│ 排除,模組化特徵。按退出,<?> │
│ 為幫助,</> 為搜尋。圖注: [ *] 內置 $$ $$排除模組│
│ ┌────^(-)────────────────────────────────── ──────────────────────────┐ │
│ │ [* ] 支持使用 LZMA 壓縮的初始 ramdisk/ramfs │ │
│ │ [ *] 支持初始 ramdisk /ramfs 使用 XZ 壓縮 │
│ │ [* ] 支持使用 LZO 壓縮的初始 ramdisk/ramfs │
│ │ [ *] 支持使用 LZ4 壓縮的初始 ramdisk/ramfs │ │
│ │ [* ] 支持使用 ZSTD 壓縮的初始 ramdisk/ramfs │ │
│ │
$$ $$啟動配置支持 │ │
│ │ 編譯器優化級別(優化性能(-O2))–│
│ │ - *- 配置標準核心功能(專家使用者) —> │ │
│ │ -* - 啟用 membarrier() 系統call │ │
│ │ - *- 載入所有符號以進行調試/ksymoops │ │
│ │ -* - 包括 kallsyms 中的所有符號 │ │
│ │ [ *] 啟用 bpf() 系統呼叫 │ │
│ │ $$ $$啟用 userfaultfd() 系統呼叫 │ │
│ │ [* ] 啟用 rseq() 系統呼叫 │ │
│ │ $$ $$ 啟用 rseq() 系統呼叫的調試 │ │
│ │ $$ * $$嵌入式系統 │ │
│ │ $$ $$PC/104 支持 │ │
│ │ 核心性能事件和計數器 —> │ │
我看到這個問題在之前為 Linux 5.6.19 發布的 RT 更新檔中沒有發生。我這邊的 64 位機箱有什麼遺漏嗎?
我在 Kernel.org 上提出了它,然後得到一個響應,顯然它是打算這樣做的。
https://lore.kernel.org/linux-rt-users/20200824154605.v66t2rsxobt3r5jg@linutronix.de/
這基本上意味著當我們使用帶有arm64架構的5.9.1版本時,我們需要禁用KVM,然後立即出現Fully preemptible選項。我能夠成功地對其進行測試。
跑,
make mrproper
現在執行,
make menuconfig
實時選項現在必須可見。