警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
构建实时 Linux 内核[社区贡献]
本教程从在 Intel x86_64 上安装 Ubuntu 20.04.1 开始。实际内核为 5.4.0-54-generic,但我们将安装最新的稳定 RT_PREEMPT 版本。构建内核需要至少 30GB 可用磁盘空间。
检查 https://wiki.linuxfoundation.org/realtime/start 为最新稳定版本,在撰写本报告时为 "最新稳定版本 5.4-rt"。如果我们点击 链接,我们就能得到确切的版本。目前是 patch-5.4.78-rt44.patch.gz。

我们在主目录下创建一个目录,其中包含
mkdir ~/kernel
并用
CD ~/kernel
我们可以通过浏览器 https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ 看看版本是否在那里。您可以从网站下载,然后手动从 /Downloads 文件夹移动到 /kernel 文件夹,或者使用 wget 右键单击链接,使用 "复制链接位置 "进行下载。例如
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.78.tar.gz
拆开它
卷烟 -xzf linux-5.4.78.tar.gz
下载与我们刚才下载的内核版本相匹配的 rt_preempt 补丁,网址是 http://cdn.kernel.org/pub/linux/kernel/projects/rt/5.4/
wget http://cdn.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.78-rt44.patch.gz
拆开它
枪链 patch-5.4.78-rt44.patch.gz
然后切换到 linux 目录,使用
CD linux-5.4.78/
并用实时补丁为内核打上补丁
补丁 -p1 <; ../patch-5.4.78-rt44.patch
我们只想使用 Ubuntu 安装的配置,因此我们使用以下命令获取 Ubuntu 配置
cp /boot/config-5.4.0-54-generic .配置
在 Ubuntu 软件菜单中勾选 "源代码 "框
我们需要一些工具来构建内核,用
苏都 apt-get build-dep linux sudo apt-get 安装 libncurses-dev 软线 野牛 opensl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf fakeroot
要启用所有 Ubuntu 配置,我们只需使用
是 '' | 生产 oldconfig
然后,我们需要在内核中启用 rt_preempt。我们调用
生产 菜单
并设置如下
# 启用 CONFIG_PREEMPT_RT
->; 一般情况 设置
->; 优先权 模型 (完全 优先权 内核 (实时))
(X) 完全 优先权 内核 (实时)
# 启用 CONFIG_HIGH_RES_TIMERS
->; 一般情况 设置
->; 计时器 支系统
[*] 高 决议 计时器 支持
# 启用 CONFIG_NO_HZ_FULL
->; 一般情况 设置
->; 计时器 支系统
->; 计时器 打钩 处理 (全部 dynticks 系统 (无痒))
(X) 全部 dynticks 系统 (无痒)
# 设置 CONFIG_HZ_1000(注意:这已不在常规设置菜单中,请返回两次)
->; 处理器 类型 和 特征
->; 计时器 频率 (1000 HZ)
(X) 1000 HZ
# 设置 CPU_FREQ_DEFAULT_GOV_PERFORMANCE [=y]
->; 电源 管理 和 ACPI 选项
->; 中央处理器 频率 缩放
->; 中央处理器 频率 缩放 (CPU_FREQ [=y])
->; 默认值 CPUFreq 省长 (选择>; [=y])
(X) 性能
保存并退出 menuconfig。现在我们要构建内核,这需要花费一些时间。(在现代 CPU 上需要 10-30 分钟)
生产 -j `nproc` deb-pkg
构建完成后,检查 debian 软件包
ls ../*deb ../linux-headers-5.4.78-rt41_5.4.78-rt44-1_amd64.deb ../linux-image-5.4.78-rt44-dbg_5.4.78-rt44-1_amd64.deb ../linux-image-5.4.78-rt41_5.4.78-rt44-1_amd64.deb ../linux-libc-dev_5.4.78-rt44-1_amd64.deb
然后安装所有 debian 内核软件包
苏都 dpkg -i ../*.deb
现在实时内核应该已经安装好了。重启系统并检查新内核版本
苏都 重新启动 uname -a Linux ros2host 5.4.78-rt44 #1 SMP PREEMPT_RT Fri Nov 6 10:37:59 CET 2020 x86_64 xx