如何安装实时内核?

Geo*_*rge 26 ppa compiling kernel realtime 12.04

我已经阅读了很多类似问题的线程,但是在阅读答案后,我很困惑。我在其中发现了很多带有存储库的 url,但是人们讨论了为一两个版本的 ubuntu 制作了哪些存储库,但我没有发现关于 11.10 版本的任何信息。提出这个要求是不是太早了?我应该降级我的 ubuntu 以获得实时内核吗?

pab*_*mme 29

RT 内核项目的长期目标是最终在标准内核中拥有所有 RT 功能,并且进展顺利。RT 补丁过去曾不定期发布,2011 年 8 月对 kernel.org 的黑客攻击导致 3.0 版本几个月都无法访问,但现在情况看起来不错:有一个 3.0 补丁,另一个 3.2 补丁(与内核一致) Ubuntu 11.10 和 12.04 中的版本),以及 3.4 中的另一个版本,请参见此处

如果您使用的是 Precise,则可以使用Alessio Bogani 的 Realtime PPA,他已将应用了 RT 补丁的 vanilla 内核打包并使其与 Precise 中的版本号保持同步。

如果您更喜欢手动构建 RT 内核,请先安装所需的软件包:

sudo apt-get install kernel-package fakeroot build-essential libncurses5-dev
Run Code Online (Sandbox Code Playgroud)

然后获取vanilla 内核RT 补丁(版本号有点旧,根据需要进行调整):

mkdir -p ~/tmp/linux-rt
cd ~/tmp/linux-rt
wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.tar.bz2
# Alternatively, try http://mirror.be.gbxs.net/pub/linux/kernel/projects/rt/3.4/patch-3.4-rt7.patch.bz2
# if the following is not available:
wget http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/patch-3.4-rt7.patch.bz2
tar xjvf linux-3.4.tar.bz2
cd linux-3.4
patch -p1 < <(bunzip2 -c ../patch-3.4-rt7.patch.bz2)
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令配置内核:

cp /boot/config-$(uname -r) .config && make oldconfig
Run Code Online (Sandbox Code Playgroud)

在出现提示时,您应该选择“完全抢占”(选项 5),并在每次提示时按 Enter 将其他所有内容保留为默认值。-lowlatency 内核的配置可能比 -generic 内核的配置更好。

然后使用以下命令构建内核:

sed -rie 's/echo "\+"/#echo "\+"/' scripts/setlocalversion
make-kpkg clean
CONCURRENCY_LEVEL=$(getconf _NPROCESSORS_ONLN) fakeroot make-kpkg --initrd --revision=0 kernel_image kernel_headers
Run Code Online (Sandbox Code Playgroud)

最后安装你的新内核:

sudo dpkg -i ../linux-{headers,image}-3.4.0-rt7_0_*.deb
Run Code Online (Sandbox Code Playgroud)

此时您应该能够重新启动到您的 RT 内核。如果您的内核无法引导,请确保您仔细检查引导参数,并在引导加载程序中相应地编辑它们。例如,ACPI 函数可能会影响您的实时系统(如 rt.wiki.kernel.org 所述)。在这种情况下,添加 acpi=off 可能是一种解决方案。

请注意,虽然 RT 补丁与 Nvidia 二进制驱动程序不兼容(但请参阅下面用户“rt-kernel”的帖子,以及此问题的解决方法),并且 Ubuntu 内核补丁将不存在,因此您可能有您以前没有遇到过的硬件问题。PPA 包和编译后的内核都是如此。当然,如果实时内核包给您带来麻烦,您始终可以启动到您的 -generic 内核并卸载它们。


bel*_*qua 2

据我所知,实时内核的开发还没有跟上Ubuntu的发布周期。如果您必须运行实时内核,则可能必须运行旧版本。

有关更多信息,请参阅https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel

请注意,目前似乎至少有一些关于低延迟内核的工作: https://launchpad.net/~abogani/+archive/ppa ?field.series_filter=oneiric 。