如何在 Linux 内核中启用 CONFIG_PREEMPT 选项?
Posted
技术标签:
【中文标题】如何在 Linux 内核中启用 CONFIG_PREEMPT 选项?【英文标题】:How to enable CONFIG_PREEMPT option in Linux kernel? 【发布时间】:2013-05-24 17:43:41 【问题描述】:我是 Linux 内核编程的新手,正在尝试在 x86_64 上使用旧内核 Linux 2.6.32。我想在其中启用 CONFIG_PREEMPT 选项,但找不到有关如何执行此操作的信息。我可以用我喜欢的选项编译一个新内核,但不知道在这种情况下我需要做什么。有谁能告诉我
如何启用 CONFIG_PREEMPT 选项?我需要用新的 menuconfig 重新编译内核吗?在那种情况下,哪个选项负责 CONFIG_PREEMPT?
我认为对于以前使用此功能的任何人来说都是微不足道的,所以请给我您宝贵的帮助!
【问题讨论】:
您真的找不到有关如何执行此操作的信息anywhere? 【参考方案1】:您可以使用make menuconfig
为内核启用CONFIG_PREEMPT;只需从菜单选项中选择它。要验证它是否已启用,请检查 make menuconfig
生成的 .config
文件中的以下行:
CONFIG_PREEMPT=y
如果您愿意,也可以手动进行修改(make menuconfig
只是一个用于创建.config
文件的 GUI)。
一切都配置好后,用通常的方式重新编译内核:
make && make modules_install && make install
【讨论】:
@TJ974 如果您发现 Vilhelm 的回答有用并且解决了您的问题,请考虑接受他的回答 :) @TJ974 如果您在这个问题上需要任何进一步的帮助,请告诉我。如果答案令人满意,请单击投票计数下方答案左侧的复选标记(文本左侧的大数字)“接受”答案。 要查找该 CONFIG_PREEMPT 选项的下落,请在 make menuconfig 中键入 /(斜杠)并搜索 PREEMPT。【参考方案2】:如果要添加完全优化的内核,需要添加补丁,可以到主网下载here 如果您不知道如何添加补丁,请通过this 线程。
【讨论】:
但是,如果你选择相同版本的补丁更好。【参考方案3】:通常可以安装相应的包,比如Debian上的linux-image-4.19.0-12-rt-amd64-unsigned
apt install linux-image-4.19.0-12-rt-amd64-unsigned
grep PREEMPT /boot/config-4.19.0-12-rt-amd64
sync && reboot
grep PREEMPT /proc/version
Linux version 4.19.0-12-rt-amd64 (debian-kernel@lists.debian.org) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP PREEMPT RT Debian 4.19.152-1 (2020-10-18)
【讨论】:
以上是关于如何在 Linux 内核中启用 CONFIG_PREEMPT 选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何为Usb网络上的81ry52芯片启用Linux内核驱动程序