首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在从源代码配置/编译时选择“完全抢占内核(实时)”时出错

在从源代码配置/编译时选择“完全抢占内核(实时)”时出错
EN

Unix & Linux用户
提问于 2020-04-23 18:35:37
回答 4查看 4.6K关注 0票数 3

我试图用最新的稳定PREEMPT_RT修补程序(5.4.28-rt19)编译5.4内核,但由于某些原因,无法在menconfig/menconfig中选择完全抢占内核(RT)选项。

我以前编译过4.19RT修补程序,它非常简单,只需将当前的配置(/boot/config-4.18-xxx)复制到新的.config中,这个选项就会显示出来。现在我只看到:

代码语言:javascript
复制
No Forced Preemption (Server)
Voluntary Kernel Preemption (Desktop)
Preemptible Kernel (Low-Latency Desktop)

如果我将F4按为"ShowAll",则会看到以下选项:

代码语言:javascript
复制
XXX Fully Preemptible Kernel (Real-Time) 

但不能选择。我尝试在.config中手动设置它,并使用各种抢占选项,如:

代码语言:javascript
复制
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-rt 19

EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2020-05-07 10:40:12

请在启动make nconfig/menuconfig后启用专家模式。然后,您将能够选择完全抢占内核(RT)选项。

票数 4
EN

Unix & Linux用户

发布于 2021-06-10 22:29:39

utk所采取的方法对我来说并不完全有效。

我在论文中使用了一个ARM64服务器(ThunderX CN8890),无论我做了什么,我都无法让完全抢占的内核(RT)出现在menuconfig中。

在检查了内核/kconfig.preempt之后,我得到了答案:

代码语言:javascript
复制
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

我启用了专家标志(在上面的注释中通过切换嵌入式系统krishna ),但是我的配置文件缺少了条目: CONFIG_ARCH_SUPPORTS_RT。

当我手动输入标志时,它将被一个make步骤覆盖。要启用此标志,默认情况下,打开文件arch/Kconfig并搜索条目: ARCH_SUPPORTS_RT。(在CTRL+W中进行搜索)

将条目更改为

代码语言:javascript
复制
config ARCH_SUPPORTS_RT
    bool

代码语言:javascript
复制
config ARCH_SUPPORTS_RT
    def_bool y

当您现在还启用了EXPERT (通用安装->嵌入式系统)标志时,您应该会看到通用安装->抢占模型下的选项“完全抢占内核(实时)”。

强迫国旗是解决这个问题的一个棘手的方法,但对我来说仍然有效。

票数 3
EN

Unix & Linux用户

发布于 2021-07-16 09:06:51

接受的答案将适用于内核版本,最多可达5.8。从5.9开始,需要在完全抢占选项出现之前禁用KVM。该选项可在以下文件中找到:

Virtualization -> Kernel-based Virtual Machine (KVM) support

多亏了https://unix.stackexchange.com/a/616822/231640https://lore.kernel.org/linux-rt-users/20200824154605.v66t2rsxobt3r5jg@linutronix.de我发现了这个

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/582075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档